From 42ada1234591ab8867822568264b3538750aaa65 Mon Sep 17 00:00:00 2001 From: cyf009 <591388323@qq.com> Date: Tue, 10 Dec 2024 10:12:19 +0800 Subject: [PATCH] 1 --- .../template/web/api/ILoginController.java | 33 + .../web/dto/request/LoginRequest.java | 10 + .../web/dto/request/LoginTokenRequest.java | 8 + .../template/web/dto/request/MenuRequest.java | 8 + .../web/dto/result/LoginInfoResult.java | 12 + .../template/web/dto/result/MenuResult.java | 22 + .../web/dto/result/UserInfoResult.java | 19 + .../template/business/api/LoginService.java | 17 + .../business/service/LoginServiceImpl.java | 194 + .../seasky/template/utils/HttpClientUtil.java | 131 + .../seasky/template/utils/PropertyUtil.java | 30 + .../template/utils/StringToMd5Hash.java | 26 + .../web/controller/LoginController.java | 41 + .../main/resources/application-dev.properties | 13 +- WebSite/.editorconfig | 14 - WebSite/.env.development | 15 +- WebSite/.env.production | 7 +- WebSite/.env.staging | 8 - WebSite/.env.test | 8 - WebSite/.eslintrc.js | 27 +- WebSite/.gitignore | 22 +- WebSite/.prettierrc.js | 16 +- WebSite/.travis.yml | 5 - WebSite/Dockerfile | 9 - WebSite/LICENSE | 2 +- WebSite/README.md | 248 +- WebSite/babel.config.js | 6 +- WebSite/conf/init.sh | 7 - WebSite/conf/nginx.conf | 80 - WebSite/jest.config.js | 24 - WebSite/mock/account.js | 334 +- WebSite/mock/application.js | 169 - WebSite/mock/article.js | 128 - WebSite/mock/index.js | 38 +- WebSite/mock/mock-server.js | 32 +- WebSite/mock/remote-search.js | 51 - WebSite/mock/role/index.js | 101 - WebSite/mock/role/routes.js | 525 - WebSite/mock/user.js | 85 - WebSite/package-lock.json | 15911 ++++++---------- WebSite/package.json | 144 +- WebSite/plop-templates/component/index.hbs | 26 - WebSite/plop-templates/component/prompt.js | 55 - WebSite/plop-templates/store/index.hbs | 16 - WebSite/plop-templates/store/prompt.js | 62 - WebSite/plop-templates/utils.js | 9 - WebSite/plop-templates/view/index.hbs | 26 - WebSite/plop-templates/view/prompt.js | 55 - WebSite/plopfile.js | 9 - WebSite/postcss.config.js | 5 - WebSite/public/favicon.ico | Bin 67646 -> 4286 bytes WebSite/public/index.html | 23 +- WebSite/src/App.vue | 31 +- WebSite/src/api/article.js | 41 - WebSite/src/api/qiniu.js | 8 - WebSite/src/api/remote-search.js | 17 - WebSite/src/api/role.js | 38 - WebSite/src/api/user.js | 40 +- WebSite/src/assets/configs/default.json | 4 - WebSite/src/assets/configs/staging.json | 4 - WebSite/src/assets/configs/test.json | 4 - WebSite/src/components/BackToTop/index.vue | 128 - WebSite/src/components/Breadcrumb/index.vue | 142 - WebSite/src/components/Charts/Keyboard.vue | 169 - WebSite/src/components/Charts/LineMarker.vue | 276 - WebSite/src/components/Charts/MixChart.vue | 277 - .../src/components/Charts/mixins/resize.js | 66 - WebSite/src/components/DeptGroup/index.vue | 105 - WebSite/src/components/DndList/index.vue | 182 - WebSite/src/components/DragSelect/index.vue | 70 - WebSite/src/components/Dropzone/index.vue | 312 - WebSite/src/components/ErrorLog/index.vue | 92 - WebSite/src/components/GithubCorner/index.vue | 59 - WebSite/src/components/Hamburger/index.vue | 46 - WebSite/src/components/HeaderSearch/index.vue | 198 - WebSite/src/components/ImageCropper/index.vue | 1816 -- .../ImageCropper/utils/data2blob.js | 19 - .../ImageCropper/utils/effectRipple.js | 53 - .../components/ImageCropper/utils/language.js | 240 - .../components/ImageCropper/utils/mimes.js | 7 - WebSite/src/components/JcRange/index.vue | 170 - WebSite/src/components/JsonEditor/index.vue | 72 - .../JumpDialog/components/JumpDialogItem.vue | 39 - .../src/components/JumpDialog/event-bus.js | 9 - WebSite/src/components/JumpDialog/index.vue | 103 - WebSite/src/components/Kanban/index.vue | 98 - WebSite/src/components/LayoutCard/index.vue | 103 - WebSite/src/components/MDinput/index.vue | 364 - .../MarkdownEditor/default-options.js | 31 - .../src/components/MarkdownEditor/index.vue | 122 - .../src/components/ModifyPassword/index.vue | 132 - .../OrganizationSelectTree/index.vue | 55 - WebSite/src/components/Pagination/index.vue | 22 +- WebSite/src/components/PanThumb/index.vue | 146 - WebSite/src/components/RightPanel/index.vue | 149 - WebSite/src/components/Screenfull/index.vue | 63 - WebSite/src/components/SelectTree/index.vue | 201 - WebSite/src/components/SelectUser/index.vue | 97 - WebSite/src/components/Share/DropdownMenu.vue | 111 - WebSite/src/components/SizeSelect/index.vue | 60 - WebSite/src/components/Sticky/index.vue | 97 - WebSite/src/components/SvgIcon/index.vue | 25 +- WebSite/src/components/TextField/index.vue | 31 - .../src/components/TextHoverEffect/Mallki.vue | 113 - WebSite/src/components/ThemePicker/index.vue | 198 - .../Tinymce/components/EditorImage.vue | 126 - .../components/Tinymce/dynamicLoadScript.js | 61 - WebSite/src/components/Tinymce/index.vue | 254 - WebSite/src/components/Tinymce/plugins.js | 9 - WebSite/src/components/Tinymce/toolbar.js | 9 - WebSite/src/components/UnionUser/index.vue | 285 - WebSite/src/components/Upload/SingleImage.vue | 133 - .../src/components/Upload/SingleImage2.vue | 130 - .../src/components/Upload/SingleImage3.vue | 157 - WebSite/src/components/UploadExcel/index.vue | 158 - WebSite/src/directive/clipboard/clipboard.js | 57 - WebSite/src/directive/clipboard/index.js | 13 - WebSite/src/directive/el-drag-dialog/drag.js | 77 - WebSite/src/directive/el-drag-dialog/index.js | 13 - WebSite/src/directive/el-table/adaptive.js | 45 - WebSite/src/directive/el-table/index.js | 13 - WebSite/src/directive/permission/index.js | 13 - .../src/directive/permission/permission.js | 22 - WebSite/src/directive/sticky.js | 90 - WebSite/src/directive/waves/index.js | 13 - WebSite/src/directive/waves/waves.css | 26 - WebSite/src/directive/waves/waves.js | 80 - WebSite/src/filters/index.js | 124 - WebSite/src/icons/index.js | 14 +- WebSite/src/layout/components/AppMain.vue | 66 - WebSite/src/layout/components/Navbar.vue | 250 - .../src/layout/components/Settings/index.vue | 110 - .../layout/components/Sidebar/FixiOSBug.js | 26 - .../src/layout/components/Sidebar/Item.vue | 29 - .../src/layout/components/Sidebar/Link.vue | 35 - .../src/layout/components/Sidebar/Logo.vue | 95 - .../layout/components/Sidebar/SidebarItem.vue | 69 - .../src/layout/components/Sidebar/index.vue | 70 +- .../layout/components/TagsView/ScrollPane.vue | 96 - .../src/layout/components/TagsView/index.vue | 447 +- WebSite/src/layout/components/index.js | 19 +- WebSite/src/layout/index.vue | 103 +- WebSite/src/layout/mixin/ResizeHandler.js | 29 +- WebSite/src/main.js | 144 +- WebSite/src/permission.js | 74 - WebSite/src/router/index.js | 162 +- WebSite/src/router/modules/demo.js | 55 - WebSite/src/service/base/base.js | 34 - WebSite/src/service/index.js | 56 - WebSite/src/service/modules/account.js | 21 - WebSite/src/service/modules/user.js | 21 - WebSite/src/settings.js | 48 - WebSite/src/store/getters.js | 33 +- WebSite/src/store/index.js | 22 +- WebSite/src/store/modules/app.js | 209 +- WebSite/src/store/modules/errorLog.js | 28 - WebSite/src/store/modules/permission.js | 97 - WebSite/src/store/modules/settings.js | 33 - WebSite/src/store/modules/tagsView.js | 160 - WebSite/src/store/modules/user.js | 142 - WebSite/src/styles/element-ui.scss | 26 +- WebSite/src/styles/element-variables.scss | 6 +- WebSite/src/styles/index.scss | 4 +- WebSite/src/styles/reset.scss | 67 - WebSite/src/styles/sidebar.scss | 80 +- WebSite/src/styles/transition.scss | 81 +- WebSite/src/styles/variables.scss | 22 +- WebSite/src/utils/auth.js | 9 +- WebSite/src/utils/clipboard.js | 23 +- WebSite/src/utils/enum.js | 50 +- WebSite/src/utils/index.js | 632 +- WebSite/src/utils/loading.js | 2 +- WebSite/src/utils/request.js | 39 +- WebSite/src/utils/validate.js | 17 +- WebSite/src/vendor/Export2Excel.js | 220 - WebSite/src/vendor/Export2Zip.js | 24 - WebSite/src/views/charts/keyboard.vue | 22 - WebSite/src/views/charts/line.vue | 22 - WebSite/src/views/charts/mix-chart.vue | 22 - WebSite/src/views/clipboard/index.vue | 65 - .../views/components-demo/avatar-upload.vue | 69 - .../src/views/components-demo/back-to-top.vue | 162 - .../src/views/components-demo/count-to.vue | 244 - .../src/views/components-demo/dnd-list.vue | 46 - .../src/views/components-demo/drag-dialog.vue | 76 - .../src/views/components-demo/drag-kanban.vue | 83 - .../src/views/components-demo/drag-select.vue | 59 - .../src/views/components-demo/dropzone.vue | 39 - .../src/views/components-demo/json-editor.vue | 42 - .../src/views/components-demo/markdown.vue | 124 - WebSite/src/views/components-demo/mixin.vue | 200 - .../src/views/components-demo/split-pane.vue | 71 - WebSite/src/views/components-demo/sticky.vue | 149 - WebSite/src/views/components-demo/tinymce.vue | 43 - .../dashboard/admin/components/BarChart.vue | 111 - .../dashboard/admin/components/BoxCard.vue | 116 - .../dashboard/admin/components/LineChart.vue | 138 - .../dashboard/admin/components/PanelGroup.vue | 201 - .../dashboard/admin/components/PieChart.vue | 79 - .../admin/components/RaddarChart.vue | 119 - .../admin/components/TodoList/Todo.vue | 81 - .../admin/components/TodoList/index.scss | 320 - .../admin/components/TodoList/index.vue | 142 - .../admin/components/TransactionTable.vue | 55 - .../admin/components/mixins/resize.js | 65 - WebSite/src/views/dashboard/admin/index.vue | 145 - WebSite/src/views/dashboard/editor/index.vue | 77 - WebSite/src/views/dashboard/index.vue | 36 - WebSite/src/views/documentation/index.vue | 103 - .../views/error-log/components/ErrorTestA.vue | 13 - .../views/error-log/components/ErrorTestB.vue | 11 - WebSite/src/views/error-log/index.vue | 42 - WebSite/src/views/error-page/401.vue | 54 +- WebSite/src/views/error-page/404.vue | 11 +- WebSite/src/views/example/button/index.vue | 160 - .../example/dialog/components/Detail.vue | 39 - WebSite/src/views/example/dialog/index.vue | 116 - WebSite/src/views/example/form.vue | 205 - WebSite/src/views/example/icon.vue | 61 - WebSite/src/views/example/index.vue | 350 - WebSite/src/views/example/layout.vue | 187 - WebSite/src/views/example/table.vue | 169 - .../excel/components/AutoWidthOption.vue | 34 - .../views/excel/components/BookTypeOption.vue | 39 - .../views/excel/components/FilenameOption.vue | 32 - WebSite/src/views/excel/export-excel.vue | 142 - WebSite/src/views/excel/merge-header.vue | 116 - WebSite/src/views/excel/select-excel.vue | 128 - WebSite/src/views/excel/upload-excel.vue | 55 - WebSite/src/views/guide/index.vue | 43 - WebSite/src/views/guide/steps.js | 53 - WebSite/src/views/home/index.vue | 36 +- WebSite/src/views/icons/element-icons.js | 284 - WebSite/src/views/icons/index.vue | 112 - WebSite/src/views/icons/svg-icons.js | 10 - WebSite/src/views/login/auth-redirect.vue | 15 - .../views/login/components/SocialSignin.vue | 76 - WebSite/src/views/login/index.vue | 625 +- WebSite/src/views/nested/menu1/index.vue | 7 - .../src/views/nested/menu1/menu1-1/index.vue | 7 - .../src/views/nested/menu1/menu1-2/index.vue | 7 - .../nested/menu1/menu1-2/menu1-2-1/index.vue | 5 - .../nested/menu1/menu1-2/menu1-2-2/index.vue | 5 - .../src/views/nested/menu1/menu1-3/index.vue | 5 - WebSite/src/views/nested/menu2/index.vue | 5 - WebSite/src/views/outer/index.vue | 12 +- WebSite/src/views/pdf/content.js | 58 - WebSite/src/views/pdf/download.vue | 214 - WebSite/src/views/pdf/index.vue | 12 - .../permission/components/SwitchRoles.vue | 33 - WebSite/src/views/permission/directive.vue | 131 - WebSite/src/views/permission/page.vue | 19 - WebSite/src/views/permission/role.vue | 302 - .../src/views/profile/components/Account.vue | 38 - .../src/views/profile/components/Activity.vue | 202 - .../src/views/profile/components/Timeline.vue | 48 - .../src/views/profile/components/UserCard.vue | 145 - WebSite/src/views/profile/index.vue | 62 - WebSite/src/views/qiniu/upload.vue | 47 - WebSite/src/views/redirect/index.vue | 12 - WebSite/src/views/tab/components/TabPane.vue | 108 - WebSite/src/views/tab/index.vue | 71 - WebSite/src/views/table/complex-table.vue | 567 - WebSite/src/views/table/drag-table.vue | 167 - .../dynamic-table/components/FixedThead.vue | 70 - .../dynamic-table/components/UnfixedThead.vue | 56 - .../src/views/table/dynamic-table/index.vue | 23 - WebSite/src/views/table/inline-edit-table.vue | 161 - WebSite/src/views/theme/index.vue | 131 - WebSite/src/views/zip/index.vue | 101 - WebSite/tests/unit/.eslintrc.js | 5 - .../tests/unit/components/Hamburger.spec.js | 18 - WebSite/tests/unit/components/SvgIcon.spec.js | 22 - WebSite/tests/unit/utils/formatTime.spec.js | 29 - WebSite/tests/unit/utils/parseTime.spec.js | 27 - WebSite/tests/unit/utils/validate.spec.js | 28 - WebSite/vue.config.js | 171 +- 277 files changed, 8362 insertions(+), 33241 deletions(-) create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/api/ILoginController.java create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginRequest.java create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginTokenRequest.java create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/MenuRequest.java create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/LoginInfoResult.java create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/MenuResult.java create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/UserInfoResult.java create mode 100644 ServiceSiteCommon/src/main/java/com/seasky/template/business/api/LoginService.java create mode 100644 ServiceSiteCommon/src/main/java/com/seasky/template/business/service/LoginServiceImpl.java create mode 100644 ServiceSiteCommon/src/main/java/com/seasky/template/utils/HttpClientUtil.java create mode 100644 ServiceSiteCommon/src/main/java/com/seasky/template/utils/PropertyUtil.java create mode 100644 ServiceSiteCommon/src/main/java/com/seasky/template/utils/StringToMd5Hash.java create mode 100644 ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/LoginController.java delete mode 100644 WebSite/.editorconfig delete mode 100644 WebSite/.env.staging delete mode 100644 WebSite/.env.test delete mode 100644 WebSite/.travis.yml delete mode 100644 WebSite/Dockerfile delete mode 100644 WebSite/conf/init.sh delete mode 100644 WebSite/conf/nginx.conf delete mode 100644 WebSite/jest.config.js delete mode 100644 WebSite/mock/application.js delete mode 100644 WebSite/mock/article.js delete mode 100644 WebSite/mock/remote-search.js delete mode 100644 WebSite/mock/role/index.js delete mode 100644 WebSite/mock/role/routes.js delete mode 100644 WebSite/mock/user.js delete mode 100644 WebSite/plop-templates/component/index.hbs delete mode 100644 WebSite/plop-templates/component/prompt.js delete mode 100644 WebSite/plop-templates/store/index.hbs delete mode 100644 WebSite/plop-templates/store/prompt.js delete mode 100644 WebSite/plop-templates/utils.js delete mode 100644 WebSite/plop-templates/view/index.hbs delete mode 100644 WebSite/plop-templates/view/prompt.js delete mode 100644 WebSite/plopfile.js delete mode 100644 WebSite/postcss.config.js delete mode 100644 WebSite/src/api/article.js delete mode 100644 WebSite/src/api/qiniu.js delete mode 100644 WebSite/src/api/remote-search.js delete mode 100644 WebSite/src/api/role.js delete mode 100644 WebSite/src/assets/configs/default.json delete mode 100644 WebSite/src/assets/configs/staging.json delete mode 100644 WebSite/src/assets/configs/test.json delete mode 100644 WebSite/src/components/BackToTop/index.vue delete mode 100644 WebSite/src/components/Breadcrumb/index.vue delete mode 100644 WebSite/src/components/Charts/Keyboard.vue delete mode 100644 WebSite/src/components/Charts/LineMarker.vue delete mode 100644 WebSite/src/components/Charts/MixChart.vue delete mode 100644 WebSite/src/components/Charts/mixins/resize.js delete mode 100644 WebSite/src/components/DeptGroup/index.vue delete mode 100644 WebSite/src/components/DndList/index.vue delete mode 100644 WebSite/src/components/DragSelect/index.vue delete mode 100644 WebSite/src/components/Dropzone/index.vue delete mode 100644 WebSite/src/components/ErrorLog/index.vue delete mode 100644 WebSite/src/components/GithubCorner/index.vue delete mode 100644 WebSite/src/components/Hamburger/index.vue delete mode 100644 WebSite/src/components/HeaderSearch/index.vue delete mode 100644 WebSite/src/components/ImageCropper/index.vue delete mode 100644 WebSite/src/components/ImageCropper/utils/data2blob.js delete mode 100644 WebSite/src/components/ImageCropper/utils/effectRipple.js delete mode 100644 WebSite/src/components/ImageCropper/utils/language.js delete mode 100644 WebSite/src/components/ImageCropper/utils/mimes.js delete mode 100644 WebSite/src/components/JcRange/index.vue delete mode 100644 WebSite/src/components/JsonEditor/index.vue delete mode 100644 WebSite/src/components/JumpDialog/components/JumpDialogItem.vue delete mode 100644 WebSite/src/components/JumpDialog/event-bus.js delete mode 100644 WebSite/src/components/JumpDialog/index.vue delete mode 100644 WebSite/src/components/Kanban/index.vue delete mode 100644 WebSite/src/components/LayoutCard/index.vue delete mode 100644 WebSite/src/components/MDinput/index.vue delete mode 100644 WebSite/src/components/MarkdownEditor/default-options.js delete mode 100644 WebSite/src/components/MarkdownEditor/index.vue delete mode 100644 WebSite/src/components/ModifyPassword/index.vue delete mode 100644 WebSite/src/components/OrganizationSelectTree/index.vue delete mode 100644 WebSite/src/components/PanThumb/index.vue delete mode 100644 WebSite/src/components/RightPanel/index.vue delete mode 100644 WebSite/src/components/Screenfull/index.vue delete mode 100644 WebSite/src/components/SelectTree/index.vue delete mode 100644 WebSite/src/components/SelectUser/index.vue delete mode 100644 WebSite/src/components/Share/DropdownMenu.vue delete mode 100644 WebSite/src/components/SizeSelect/index.vue delete mode 100644 WebSite/src/components/Sticky/index.vue delete mode 100644 WebSite/src/components/TextField/index.vue delete mode 100644 WebSite/src/components/TextHoverEffect/Mallki.vue delete mode 100644 WebSite/src/components/ThemePicker/index.vue delete mode 100644 WebSite/src/components/Tinymce/components/EditorImage.vue delete mode 100644 WebSite/src/components/Tinymce/dynamicLoadScript.js delete mode 100644 WebSite/src/components/Tinymce/index.vue delete mode 100644 WebSite/src/components/Tinymce/plugins.js delete mode 100644 WebSite/src/components/Tinymce/toolbar.js delete mode 100644 WebSite/src/components/UnionUser/index.vue delete mode 100644 WebSite/src/components/Upload/SingleImage.vue delete mode 100644 WebSite/src/components/Upload/SingleImage2.vue delete mode 100644 WebSite/src/components/Upload/SingleImage3.vue delete mode 100644 WebSite/src/components/UploadExcel/index.vue delete mode 100644 WebSite/src/directive/clipboard/clipboard.js delete mode 100644 WebSite/src/directive/clipboard/index.js delete mode 100644 WebSite/src/directive/el-drag-dialog/drag.js delete mode 100644 WebSite/src/directive/el-drag-dialog/index.js delete mode 100644 WebSite/src/directive/el-table/adaptive.js delete mode 100644 WebSite/src/directive/el-table/index.js delete mode 100644 WebSite/src/directive/permission/index.js delete mode 100644 WebSite/src/directive/permission/permission.js delete mode 100644 WebSite/src/directive/sticky.js delete mode 100644 WebSite/src/directive/waves/index.js delete mode 100644 WebSite/src/directive/waves/waves.css delete mode 100644 WebSite/src/directive/waves/waves.js delete mode 100644 WebSite/src/filters/index.js delete mode 100644 WebSite/src/layout/components/AppMain.vue delete mode 100644 WebSite/src/layout/components/Navbar.vue delete mode 100644 WebSite/src/layout/components/Settings/index.vue delete mode 100644 WebSite/src/layout/components/Sidebar/FixiOSBug.js delete mode 100644 WebSite/src/layout/components/Sidebar/Item.vue delete mode 100644 WebSite/src/layout/components/Sidebar/Link.vue delete mode 100644 WebSite/src/layout/components/Sidebar/Logo.vue delete mode 100644 WebSite/src/layout/components/Sidebar/SidebarItem.vue delete mode 100644 WebSite/src/layout/components/TagsView/ScrollPane.vue delete mode 100644 WebSite/src/permission.js delete mode 100644 WebSite/src/router/modules/demo.js delete mode 100644 WebSite/src/service/base/base.js delete mode 100644 WebSite/src/service/index.js delete mode 100644 WebSite/src/service/modules/account.js delete mode 100644 WebSite/src/service/modules/user.js delete mode 100644 WebSite/src/settings.js delete mode 100644 WebSite/src/store/modules/errorLog.js delete mode 100644 WebSite/src/store/modules/permission.js delete mode 100644 WebSite/src/store/modules/settings.js delete mode 100644 WebSite/src/store/modules/tagsView.js delete mode 100644 WebSite/src/store/modules/user.js delete mode 100644 WebSite/src/styles/reset.scss delete mode 100644 WebSite/src/vendor/Export2Excel.js delete mode 100644 WebSite/src/vendor/Export2Zip.js delete mode 100644 WebSite/src/views/charts/keyboard.vue delete mode 100644 WebSite/src/views/charts/line.vue delete mode 100644 WebSite/src/views/charts/mix-chart.vue delete mode 100644 WebSite/src/views/clipboard/index.vue delete mode 100644 WebSite/src/views/components-demo/avatar-upload.vue delete mode 100644 WebSite/src/views/components-demo/back-to-top.vue delete mode 100644 WebSite/src/views/components-demo/count-to.vue delete mode 100644 WebSite/src/views/components-demo/dnd-list.vue delete mode 100644 WebSite/src/views/components-demo/drag-dialog.vue delete mode 100644 WebSite/src/views/components-demo/drag-kanban.vue delete mode 100644 WebSite/src/views/components-demo/drag-select.vue delete mode 100644 WebSite/src/views/components-demo/dropzone.vue delete mode 100644 WebSite/src/views/components-demo/json-editor.vue delete mode 100644 WebSite/src/views/components-demo/markdown.vue delete mode 100644 WebSite/src/views/components-demo/mixin.vue delete mode 100644 WebSite/src/views/components-demo/split-pane.vue delete mode 100644 WebSite/src/views/components-demo/sticky.vue delete mode 100644 WebSite/src/views/components-demo/tinymce.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/BarChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/BoxCard.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/LineChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/PanelGroup.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/PieChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/RaddarChart.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/TodoList/index.scss delete mode 100644 WebSite/src/views/dashboard/admin/components/TodoList/index.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/TransactionTable.vue delete mode 100644 WebSite/src/views/dashboard/admin/components/mixins/resize.js delete mode 100644 WebSite/src/views/dashboard/admin/index.vue delete mode 100644 WebSite/src/views/dashboard/editor/index.vue delete mode 100644 WebSite/src/views/dashboard/index.vue delete mode 100644 WebSite/src/views/documentation/index.vue delete mode 100644 WebSite/src/views/error-log/components/ErrorTestA.vue delete mode 100644 WebSite/src/views/error-log/components/ErrorTestB.vue delete mode 100644 WebSite/src/views/error-log/index.vue delete mode 100644 WebSite/src/views/example/button/index.vue delete mode 100644 WebSite/src/views/example/dialog/components/Detail.vue delete mode 100644 WebSite/src/views/example/dialog/index.vue delete mode 100644 WebSite/src/views/example/form.vue delete mode 100644 WebSite/src/views/example/icon.vue delete mode 100644 WebSite/src/views/example/index.vue delete mode 100644 WebSite/src/views/example/layout.vue delete mode 100644 WebSite/src/views/example/table.vue delete mode 100644 WebSite/src/views/excel/components/AutoWidthOption.vue delete mode 100644 WebSite/src/views/excel/components/BookTypeOption.vue delete mode 100644 WebSite/src/views/excel/components/FilenameOption.vue delete mode 100644 WebSite/src/views/excel/export-excel.vue delete mode 100644 WebSite/src/views/excel/merge-header.vue delete mode 100644 WebSite/src/views/excel/select-excel.vue delete mode 100644 WebSite/src/views/excel/upload-excel.vue delete mode 100644 WebSite/src/views/guide/index.vue delete mode 100644 WebSite/src/views/guide/steps.js delete mode 100644 WebSite/src/views/icons/element-icons.js delete mode 100644 WebSite/src/views/icons/index.vue delete mode 100644 WebSite/src/views/icons/svg-icons.js delete mode 100644 WebSite/src/views/login/auth-redirect.vue delete mode 100644 WebSite/src/views/login/components/SocialSignin.vue delete mode 100644 WebSite/src/views/nested/menu1/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-1/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-2/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue delete mode 100644 WebSite/src/views/nested/menu1/menu1-3/index.vue delete mode 100644 WebSite/src/views/nested/menu2/index.vue delete mode 100644 WebSite/src/views/pdf/content.js delete mode 100644 WebSite/src/views/pdf/download.vue delete mode 100644 WebSite/src/views/pdf/index.vue delete mode 100644 WebSite/src/views/permission/components/SwitchRoles.vue delete mode 100644 WebSite/src/views/permission/directive.vue delete mode 100644 WebSite/src/views/permission/page.vue delete mode 100644 WebSite/src/views/permission/role.vue delete mode 100644 WebSite/src/views/profile/components/Account.vue delete mode 100644 WebSite/src/views/profile/components/Activity.vue delete mode 100644 WebSite/src/views/profile/components/Timeline.vue delete mode 100644 WebSite/src/views/profile/components/UserCard.vue delete mode 100644 WebSite/src/views/profile/index.vue delete mode 100644 WebSite/src/views/qiniu/upload.vue delete mode 100644 WebSite/src/views/redirect/index.vue delete mode 100644 WebSite/src/views/tab/components/TabPane.vue delete mode 100644 WebSite/src/views/tab/index.vue delete mode 100644 WebSite/src/views/table/complex-table.vue delete mode 100644 WebSite/src/views/table/drag-table.vue delete mode 100644 WebSite/src/views/table/dynamic-table/components/FixedThead.vue delete mode 100644 WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue delete mode 100644 WebSite/src/views/table/dynamic-table/index.vue delete mode 100644 WebSite/src/views/table/inline-edit-table.vue delete mode 100644 WebSite/src/views/theme/index.vue delete mode 100644 WebSite/src/views/zip/index.vue delete mode 100644 WebSite/tests/unit/.eslintrc.js delete mode 100644 WebSite/tests/unit/components/Hamburger.spec.js delete mode 100644 WebSite/tests/unit/components/SvgIcon.spec.js delete mode 100644 WebSite/tests/unit/utils/formatTime.spec.js delete mode 100644 WebSite/tests/unit/utils/parseTime.spec.js delete mode 100644 WebSite/tests/unit/utils/validate.spec.js diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/api/ILoginController.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/api/ILoginController.java new file mode 100644 index 0000000..8872bf8 --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/api/ILoginController.java @@ -0,0 +1,33 @@ +package com.seasky.template.web.api; + +import com.seasky.core.common.Result; +import com.seasky.template.web.dto.request.LoginRequest; +import com.seasky.template.web.dto.request.LoginTokenRequest; +import com.seasky.template.web.dto.request.MenuRequest; +import com.seasky.template.web.dto.result.LoginInfoResult; +import com.seasky.template.web.dto.result.MenuResult; +import com.seasky.template.web.dto.result.UserInfoResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "登录") +@RequestMapping("login") +@RestController +public interface ILoginController { + @ApiOperation("获å–登录信æ¯") + @PostMapping("/getLogInfo") + Result<LoginInfoResult> GetLogInfo(@RequestBody LoginRequest qry); + @ApiOperation("获å–cooki") + @PostMapping("/sfpLoginVerify") + Result<String> SfpLoginVerify(@RequestBody LoginRequest qry); + @ApiOperation("获å–登录åŽä¿¡æ¯") + @PostMapping("/getLoginToken") + Result<UserInfoResult> GetLoginToken(@RequestBody LoginTokenRequest qry); + @ApiOperation("获å–登录åŽèœå•ä¿¡æ¯") + @PostMapping("/getMenuList") + Result<MenuResult> GetMenuList(@RequestBody MenuRequest qry); +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginRequest.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginRequest.java new file mode 100644 index 0000000..fc85d64 --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginRequest.java @@ -0,0 +1,10 @@ +package com.seasky.template.web.dto.request; + +import lombok.Data; + +@Data +public class LoginRequest { + public String principals; + public String credentials; + public String token; +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginTokenRequest.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginTokenRequest.java new file mode 100644 index 0000000..81b4da3 --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/LoginTokenRequest.java @@ -0,0 +1,8 @@ +package com.seasky.template.web.dto.request; + +import lombok.Data; + +@Data +public class LoginTokenRequest { + public String token; +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/MenuRequest.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/MenuRequest.java new file mode 100644 index 0000000..a8f2986 --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/request/MenuRequest.java @@ -0,0 +1,8 @@ +package com.seasky.template.web.dto.request; + +import lombok.Data; + +@Data +public class MenuRequest { + public String personId; +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/LoginInfoResult.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/LoginInfoResult.java new file mode 100644 index 0000000..452967e --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/LoginInfoResult.java @@ -0,0 +1,12 @@ +package com.seasky.template.web.dto.result; + +import lombok.Data; + +@Data +public class LoginInfoResult { + public String PersonId ; + public String principals ; + public String PersonName ; + public String credentials ; + public String token; +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/MenuResult.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/MenuResult.java new file mode 100644 index 0000000..eca557f --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/MenuResult.java @@ -0,0 +1,22 @@ +package com.seasky.template.web.dto.result; + +import lombok.Data; + +import java.util.List; +@Data +public class MenuResult { + public String id ; + public String versionDate; + public String creator; + public String applicationId; + public String menuNo ; + public String name ; + public String icon ; + public String parentId ; + public String routingUrl ; + public boolean isNewWindow ; + public boolean isSystem ; + public boolean withUserId ; + public boolean enabled ; + public List<MenuResult> children ; +} diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/UserInfoResult.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/UserInfoResult.java new file mode 100644 index 0000000..74384e9 --- /dev/null +++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/template/web/dto/result/UserInfoResult.java @@ -0,0 +1,19 @@ +package com.seasky.template.web.dto.result; + +import lombok.Data; + +@Data +public class UserInfoResult { + public String personId; + + public String personName ; + + + public String userName ; + + + public boolean isEmployee ; + + + public boolean isStudent; +} diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/business/api/LoginService.java b/ServiceSiteCommon/src/main/java/com/seasky/template/business/api/LoginService.java new file mode 100644 index 0000000..2cc4d38 --- /dev/null +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/business/api/LoginService.java @@ -0,0 +1,17 @@ +package com.seasky.template.business.api; + +import com.seasky.template.web.dto.request.LoginRequest; +import com.seasky.template.web.dto.request.LoginTokenRequest; +import com.seasky.template.web.dto.request.MenuRequest; +import com.seasky.template.web.dto.result.LoginInfoResult; +import com.seasky.template.web.dto.result.MenuResult; +import com.seasky.template.web.dto.result.UserInfoResult; + +import java.util.List; + +public interface LoginService { + List<LoginInfoResult> GetLogInfo(LoginRequest qry); + String SfpLoginVerify( LoginRequest qry); + UserInfoResult GetLoginToken(LoginTokenRequest qry); + List<MenuResult> GetMenuList(MenuRequest qry) ; +} diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/business/service/LoginServiceImpl.java b/ServiceSiteCommon/src/main/java/com/seasky/template/business/service/LoginServiceImpl.java new file mode 100644 index 0000000..174fbd7 --- /dev/null +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/business/service/LoginServiceImpl.java @@ -0,0 +1,194 @@ +package com.seasky.template.business.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.seasky.core.common.Error; +import com.seasky.core.common.ResponseCode; +import com.seasky.core.exception.DataBusinessException; +import com.seasky.core.util.ExceptionUtil; +import com.seasky.template.business.api.LoginService; +import com.seasky.template.utils.HttpClientUtil; +import com.seasky.template.utils.PropertyUtil; +import com.seasky.template.utils.StringToMd5Hash; +import com.seasky.template.web.dto.request.LoginRequest; +import com.seasky.template.web.dto.request.LoginTokenRequest; +import com.seasky.template.web.dto.request.MenuRequest; +import com.seasky.template.web.dto.result.LoginInfoResult; +import com.seasky.template.web.dto.result.MenuResult; +import com.seasky.template.web.dto.result.UserInfoResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +@Service +public class LoginServiceImpl implements LoginService { + @Resource + PropertyUtil propertyUtil; + @Override + public List<LoginInfoResult> GetLogInfo(LoginRequest qry) { + String path=propertyUtil.getInnerInterfacePath(); + String secret = propertyUtil.getSecret(); + String systemid=propertyUtil.getSystemid(); + if(Objects.isNull(path)) throw ExceptionUtil.getException(null, "请é…置内部接å£åœ°å€ï¼"); + if(Objects.isNull(secret)) throw ExceptionUtil.getException(null, "请é…置内部接å£secretï¼"); + if(Objects.isNull(systemid)) throw ExceptionUtil.getException(null, "请é…置内部接å£systemidï¼"); + if(Objects.isNull(qry.getPrincipals())) throw ExceptionUtil.getException(null, "登录åä¸èƒ½ä¸ºç©ºï¼"); + if(Objects.isNull(qry.getCredentials())) throw ExceptionUtil.getException(null, "登录密ç ä¸èƒ½ä¸ºç©ºï¼"); + String url = path+ "/User/GetLogInfo"; + Map<String, Object> map = new HashMap<>(); + map.put("principals", qry.getPrincipals()); + map.put("credentials", qry.getCredentials()); + map.put("SystemID",systemid); + LocalDateTime currentDate = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH"); + String formattedDate = currentDate.plusHours(1).format(formatter); + String token=systemid+"|"+formattedDate+"|"+secret; + map.put("Token", StringToMd5Hash.toMD5(token)); + String s = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(map)); + JSONObject stationObj = JSONObject.parseObject(s); + if (stationObj.getString("isSuccess") == null || !stationObj.getBoolean("isSuccess")) { + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("errorMessage") == null?"登录失败!":stationObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + JSONArray stationArray = stationObj.getJSONArray("data"); + if(stationArray.size()==0) + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("errorMessage") == null?"登录失败!":stationObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + + List<LoginInfoResult> records=new ArrayList<>(); + for (int i=0;i<stationArray.size();i++) { + JSONObject object=stationArray.getJSONObject(i); + LoginInfoResult loginInfoOut=new LoginInfoResult(); + loginInfoOut.setPersonName(object.getString("personName")); + loginInfoOut.setPersonId(object.getString("personID")); + loginInfoOut.setToken(object.getString("token")); + records.add(loginInfoOut); + } + return records; + } + + @Override + public String SfpLoginVerify(LoginRequest qry) { + return null; + } + + @Override + public UserInfoResult GetLoginToken(LoginTokenRequest qry) { + String path = propertyUtil.getInnerInterfacePath(); + String secret = propertyUtil.getSecret(); + String systemid = propertyUtil.getSystemid(); + if (Objects.isNull(path)) throw ExceptionUtil.getException(null, "请é…置内部接å£åœ°å€ï¼"); + if (Objects.isNull(secret)) throw ExceptionUtil.getException(null, "请é…置内部接å£secretï¼"); + if (Objects.isNull(systemid)) throw ExceptionUtil.getException(null, "请é…置内部接å£systemidï¼"); + if (Objects.isNull(qry.getToken())) throw ExceptionUtil.getException(null, "登录å失败ï¼"); + String url = path + "/User/GetLoginToken"; + Map<String, Object> map = new HashMap<>(); + map.put("token", qry.getToken()); + + map.put("SystemID", systemid); + LocalDateTime currentDate = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH"); + String formattedDate = currentDate.plusHours(1).format(formatter); + String token = systemid + "|" + formattedDate + "|" + secret; + map.put("Token", StringToMd5Hash.toMD5(token)); + String s = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(map)); + JSONObject stationObj = JSONObject.parseObject(s); + if (stationObj.getString("isSuccess") == null || !stationObj.getBoolean("isSuccess")) { + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("errorMessage") == null ? "登录失败!" : stationObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + JSONObject stationArray = JSONObject.parseObject(stationObj.getString("data")); + if (stationArray.size() == 0) + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("errorMessage") == null ? "登录失败!" : stationObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + UserInfoResult userInfoOut = new UserInfoResult(); + userInfoOut.setUserName(stationArray.getString("userName")); + userInfoOut.setEmployee(stationArray.getBoolean("isEmployee")); + userInfoOut.setStudent(stationArray.getBoolean("isStudent")); + userInfoOut.setPersonId(stationArray.getString("personID")); + userInfoOut.setPersonName(stationArray.getString("personName")); + return userInfoOut; + } + + @Override + public List<MenuResult> GetMenuList(MenuRequest qry) { + String path=propertyUtil.getInnerInterfacePath(); + String secret = propertyUtil.getSecret(); + String systemid=propertyUtil.getSystemid(); + if(Objects.isNull(path)) throw ExceptionUtil.getException(null, "请é…置内部接å£åœ°å€ï¼"); + if(Objects.isNull(secret)) throw ExceptionUtil.getException(null, "请é…置内部接å£secretï¼"); + if(Objects.isNull(systemid)) throw ExceptionUtil.getException(null, "请é…置内部接å£systemidï¼"); + if(Objects.isNull(qry.getPersonId())) throw ExceptionUtil.getException(null, "登录å失败ï¼"); + String url = path+ "/User/GetMenuListByModule"; + Map<String, Object> map = new HashMap<>(); + map.put("PersonId", qry.getPersonId()); + map.put("module","RE"); + + map.put("SystemID",systemid); + LocalDateTime currentDate = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH"); + String formattedDate = currentDate.plusHours(1).format(formatter); + String token=systemid+"|"+formattedDate+"|"+secret; + map.put("Token", StringToMd5Hash.toMD5(token)); + String s = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(map)); + JSONObject stationObj = JSONObject.parseObject(s); + if (stationObj.getString("isSuccess") == null || !stationObj.getBoolean("isSuccess")) { + throw new DataBusinessException( + Error.builder() + .message(stationObj.getString("errorMessage") == null?"登录失败!":stationObj.getString("errorMessage")) + .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) + .build() + ); + } + JSONArray stationArray = stationObj.getJSONArray("data"); + List<MenuResult> records = new ArrayList<>(); + if(stationArray.size()!=0) { + + for (int i = 0; i < stationArray.size(); i++) { + JSONObject object = stationArray.getJSONObject(i); + MenuResult menuOut = new MenuResult(); + menuOut.setMenuNo(object.getString("menuNo")); + menuOut.setName(object.getString("name")); + menuOut.setRoutingUrl(object.getString("routingUrl")); + menuOut.setId(object.getString("id")); + menuOut.setApplicationId(object.getString("applicationId")); + menuOut.setRoutingUrl(object.getString("routingUrl")); + JSONArray childrenArray = object.getJSONArray("children"); + List<MenuResult> childernRecords = new ArrayList<>(); + for (int j = 0; j < childrenArray.size(); j++) { + JSONObject childernObject = childrenArray.getJSONObject(j); + MenuResult childern = new MenuResult(); + childern.setMenuNo(childernObject.getString("menuNo")); + childern.setName(childernObject.getString("name")); + childern.setRoutingUrl(childernObject.getString("routingUrl")); + childern.setId(childernObject.getString("id")); + childern.setApplicationId(childernObject.getString("applicationId")); + childern.setRoutingUrl(childernObject.getString("routingUrl")); + childernRecords.add(childern); + } + menuOut.setChildren(childernRecords); + records.add(menuOut); + } + } + return records; + } +} diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/utils/HttpClientUtil.java b/ServiceSiteCommon/src/main/java/com/seasky/template/utils/HttpClientUtil.java new file mode 100644 index 0000000..4f5fe57 --- /dev/null +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/utils/HttpClientUtil.java @@ -0,0 +1,131 @@ +package com.seasky.template.utils; + +import org.apache.http.NameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class HttpClientUtil { + public static String doGet(String url, Map<String, String> param) { + + // 创建Httpclient对象 + CloseableHttpClient httpclient = HttpClients.createDefault(); + + String resultString = ""; + CloseableHttpResponse response = null; + try { + // 创建uri + URIBuilder builder = new URIBuilder(url); + if (param != null) { + for (String key : param.keySet()) { + builder.addParameter(key, param.get(key)); + } + } + URI uri = builder.build(); + + // 创建http GET请求 + HttpGet httpGet = new HttpGet(uri); + + // 执行请求 + response = httpclient.execute(httpGet); + // 判æ–è¿”å›žçŠ¶æ€æ˜¯å¦ä¸º200 + if (response.getStatusLine().getStatusCode() == 200) { + resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (response != null) { + response.close(); + } + httpclient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return resultString; +} + + public static String doGet(String url) { + return doGet(url, null); + } + + public static String doPost(String url, Map<String, String> param) { + // 创建Httpclient对象 + CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = null; + String resultString = ""; + try { + // 创建Http Post请求 + HttpPost httpPost = new HttpPost(url); + // åˆ›å»ºå‚æ•°åˆ—表 + if (param != null) { + List<NameValuePair> paramList = new ArrayList<>(); + for (String key : param.keySet()) { + paramList.add(new BasicNameValuePair(key, param.get(key))); + } + // æ¨¡æ‹Ÿè¡¨å• + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList); + httpPost.setEntity(entity); + } + // 执行http请求 + response = httpClient.execute(httpPost); + resultString = EntityUtils.toString(response.getEntity(), "utf-8"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + return resultString; + } + + public static String doPost(String url) { + return doPost(url, null); + } + + public static String doPostJson(String url, String json) { + // 创建Httpclient对象 + CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = null; + String resultString = ""; + try { + // 创建Http Post请求 + HttpPost httpPost = new HttpPost(url); + // 创建请求内容 + StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON); + httpPost.setEntity(entity); + // 执行http请求 + response = httpClient.execute(httpPost); + resultString = EntityUtils.toString(response.getEntity(), "utf-8"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return resultString; + } +} diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/utils/PropertyUtil.java b/ServiceSiteCommon/src/main/java/com/seasky/template/utils/PropertyUtil.java new file mode 100644 index 0000000..d397bc7 --- /dev/null +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/utils/PropertyUtil.java @@ -0,0 +1,30 @@ +package com.seasky.template.utils; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Data +public class PropertyUtil { + @Value("${innerinterface.url}") + private String innerInterfacePath; + @Value("${innerinterface.systemid}") + private String systemid; + @Value("${innerinterface.secret}") + private String secret; + @Value("${sellercode}") + private String sellerCode; + @Value("${sellername}") + private String sellerName; + @Value("${spp.dzpj.url}") + private String sppDzpjUrl; + @Value("${spp.dzpj.key}") + private String sppDzpjKey; + @Value("${file.url}") + private String fileUrl; + @Value("${file.key}") + private String fileKey; + @Value("${file.secre}") + private String fileSecre; +} diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/utils/StringToMd5Hash.java b/ServiceSiteCommon/src/main/java/com/seasky/template/utils/StringToMd5Hash.java new file mode 100644 index 0000000..7a69fb5 --- /dev/null +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/utils/StringToMd5Hash.java @@ -0,0 +1,26 @@ +package com.seasky.template.utils; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class StringToMd5Hash { + public static String toMD5(String input) { + try { + // Create MD5 Hash + MessageDigest digest = MessageDigest.getInstance("MD5"); + digest.update(input.getBytes()); + byte[] messageDigest = digest.digest(); + + // Create Hex String + StringBuilder hexString = new StringBuilder(); + for (byte b : messageDigest) { + String hex = Integer.toHexString(0xff & b); + if (hex.length() == 1) hexString.append('0'); + hexString.append(hex); + } + return hexString.toString(); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } +} diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/LoginController.java b/ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/LoginController.java new file mode 100644 index 0000000..16334c3 --- /dev/null +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/LoginController.java @@ -0,0 +1,41 @@ +package com.seasky.template.web.controller; + +import com.seasky.core.common.ResponseCode; +import com.seasky.core.common.Result; +import com.seasky.template.business.api.LoginService; +import com.seasky.template.web.api.ILoginController; +import com.seasky.template.web.dto.request.LoginRequest; +import com.seasky.template.web.dto.request.LoginTokenRequest; +import com.seasky.template.web.dto.request.MenuRequest; +import com.seasky.template.web.dto.result.LoginInfoResult; +import com.seasky.template.web.dto.result.MenuResult; +import com.seasky.template.web.dto.result.UserInfoResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +import static com.seasky.core.common.Response.ok; + +@RestController +public class LoginController implements ILoginController { + @Autowired + LoginService loginService; + @Override + public Result<LoginInfoResult> GetLogInfo(LoginRequest qry) { + return ok(ResponseCode.SUCCESS, loginService.GetLogInfo(qry)); + } + + @Override + public Result<String> SfpLoginVerify(LoginRequest qry) { + return null; + } + + @Override + public Result<UserInfoResult> GetLoginToken(LoginTokenRequest qry) { + return ok(ResponseCode.SUCCESS, loginService.GetLoginToken(qry)); + } + + @Override + public Result<MenuResult> GetMenuList(MenuRequest qry) { + return ok(ResponseCode.SUCCESS, loginService.GetMenuList(qry)); + } +} diff --git a/ServiceSiteCommon/src/main/resources/application-dev.properties b/ServiceSiteCommon/src/main/resources/application-dev.properties index 85848d4..09f55e8 100644 --- a/ServiceSiteCommon/src/main/resources/application-dev.properties +++ b/ServiceSiteCommon/src/main/resources/application-dev.properties @@ -37,10 +37,21 @@ spring.datasource.druid.read.test-on-borrow=true spring.datasource.druid.read.test-on-return=false spring.datasource.druid.read.keep-alive=true -pdfResource=D:/pdfResource/arialuni.ttf +innerinterface.url=http://192.168.2.47:8071/InnerInterface +innerinterface.systemid=77777777-7777-7777-7777-111111111111 +innerinterface.secret=OGZmNTU3OGZiZTJkMDk3ZDY0MzI0OWIyNzFjYzQyNzc= +sellercode=123100004250263376 +sellername=???? +spp.dzpj.url=http://demo.seaskysh.com/kp_hx/SPP_DZPJ_QD_PP.asmx +spp.dzpj.key=seaskyshkp +file.url=http://192.168.2.47:8082/FileService/ +file.key=14aa7d95-365d-4fc8-86da-425b62a8b1cd +file.secre=425b62a8ba7d95365d + corePoolSize=10 maximumPoolSize=90 keepAliveTime=1 queue=40000 +pdfResource=D:/pdfResource/arialuni.ttf diff --git a/WebSite/.editorconfig b/WebSite/.editorconfig deleted file mode 100644 index 3454886..0000000 --- a/WebSite/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# https://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -insert_final_newline = false -trim_trailing_whitespace = false diff --git a/WebSite/.env.development b/WebSite/.env.development index 8f5856d..5b1398a 100644 --- a/WebSite/.env.development +++ b/WebSite/.env.development @@ -1,14 +1 @@ -# just a flag -ENV = 'development' - -# base api -VUE_APP_BASE_API = '/dev-api' - -# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, -# to control whether the babel-plugin-dynamic-import-node plugin is enabled. -# It only does one thing by converting all import() to require(). -# This configuration can significantly increase the speed of hot updates, -# when you have a large number of pages. -# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js - -VUE_CLI_BABEL_TRANSPILE_MODULES = true +VUE_APP_BASE_API = '/' \ No newline at end of file diff --git a/WebSite/.env.production b/WebSite/.env.production index 07d391e..9d4496d 100644 --- a/WebSite/.env.production +++ b/WebSite/.env.production @@ -1,6 +1 @@ -# just a flag -ENV = 'production' - -# base api -VUE_APP_BASE_API = '/api' - +VUE_APP_BASE_API = '/SFP_Income' \ No newline at end of file diff --git a/WebSite/.env.staging b/WebSite/.env.staging deleted file mode 100644 index d69f663..0000000 --- a/WebSite/.env.staging +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV = production - -# just a flag -ENV = 'staging' - -# base api -VUE_APP_BASE_API = '/api' - diff --git a/WebSite/.env.test b/WebSite/.env.test deleted file mode 100644 index 49eb66d..0000000 --- a/WebSite/.env.test +++ /dev/null @@ -1,8 +0,0 @@ -NODE_ENV = production - -# just a flag -ENV = 'test' - -# base api -VUE_APP_BASE_API = '/api' - diff --git a/WebSite/.eslintrc.js b/WebSite/.eslintrc.js index c5ce0ef..95a72ae 100644 --- a/WebSite/.eslintrc.js +++ b/WebSite/.eslintrc.js @@ -1,15 +1,26 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 09:49:30 + */ module.exports = { root: true, env: { node: true }, - extends: ["plugin:vue/essential", "@vue/prettier"], - rules: { - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'no-unused-vars': "off", - 'no-console': "off" - }, + extends: ['plugin:vue/vue3-essential', 'eslint:recommended', '@vue/prettier'], parserOptions: { - parser: "babel-eslint" - } + parser: 'babel-eslint' + }, + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'vue/comment-directive': 0 +} + }; +plugins: [ + "vue" +] \ No newline at end of file diff --git a/WebSite/.gitignore b/WebSite/.gitignore index eec5347..403adbc 100644 --- a/WebSite/.gitignore +++ b/WebSite/.gitignore @@ -1,14 +1,17 @@ .DS_Store -node_modules/ -dist/ +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files npm-debug.log* yarn-debug.log* yarn-error.log* -**/*.log - -tests/**/coverage/ -tests/e2e/reports -selenium-debug.log +pnpm-debug.log* # Editor directories and files .idea @@ -17,7 +20,4 @@ selenium-debug.log *.ntvs* *.njsproj *.sln -*.local - -# package-lock.json -yarn.lock +*.sw? diff --git a/WebSite/.prettierrc.js b/WebSite/.prettierrc.js index 6294ecf..f937327 100644 --- a/WebSite/.prettierrc.js +++ b/WebSite/.prettierrc.js @@ -1,12 +1,12 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:07 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-08 12:47:32 - */ + * @Autor: dongjunhua + * @Date: 2020-12-18 09:43:18 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 09:49:08 + */ module.exports = { semi: true, - printWidth: 80, - endOfLine: "auto" -}; + singleQuote: true, + bracketSpacing: true +} \ No newline at end of file diff --git a/WebSite/.travis.yml b/WebSite/.travis.yml deleted file mode 100644 index f4be7a0..0000000 --- a/WebSite/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: 10 -script: npm run test -notifications: - email: false diff --git a/WebSite/Dockerfile b/WebSite/Dockerfile deleted file mode 100644 index 86f2bc7..0000000 --- a/WebSite/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -From nginx:latest -#COPY ./dist /usr/share/nginx/html -#COPY ./conf/nginx.conf /etc/nginx/nginx.conf -COPY ./dist /app/html -COPY ./conf/nginx.conf /app/nginx.conf -COPY ./conf/init.sh /app/run.sh -ENTRYPOINT ["nohup","/app/run.sh","&"] -CMD [ "" ] -#ENTRYPOINT ["nginx","-g","daemon off"] \ No newline at end of file diff --git a/WebSite/LICENSE b/WebSite/LICENSE index 6151575..1b81e7c 100644 --- a/WebSite/LICENSE +++ b/WebSite/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-present PanJiaChen +Copyright (c) 2021 DongJunHua Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/WebSite/README.md b/WebSite/README.md index 33d03e3..648b2d4 100644 --- a/WebSite/README.md +++ b/WebSite/README.md @@ -1,27 +1,235 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-04-21 18:54:20 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 15:41:52 ---> -# Vue Element Admin + -å‰ç«¯åŸºç¡€æ¨¡æ¿ï¼ŒåŸºäºŽ Vue 2.x åŠ element-ui -模æ¿åŽç»å†…容仅在 develop 分支更新,请勿使用 master 分支 -**更新历å²** +# Vue Element Next -2020/9/18 -version: 1.1.0 -å†…å®¹ï¼šæ·»åŠ å‰ç«¯UIè§„èŒƒï¼Œè°ƒæ•´éƒ¨åˆ†ç•Œé¢ +基于Vue 3åŠElement的新版å‰ç«¯æ¡†æž¶æ¨¡æ¿ -2020/8/20 -version: 1.0.0 -内容:第一个æ£å¼ç‰ˆæœ¬ +※ 最新版本:v0.7.8(305)-alpha -**注æ„事项** +※ 项目地å€ï¼šhttp://git.seaskysh.com.cn:8800/dongjunhua/vue-element-next + +※ Vue.js 3相关文档文档请å‚考:https://v3.vuejs.org/ + +※ Element Plus组件库文档请å‚考:https://element-plus.gitee.io/#/zh-CN + +※ 项目目å‰ä»å¤„于alpha版本阶段,尚ä¸å®Œå–„且稳定性相对较差,å¯èƒ½å˜åœ¨ä¸€ç³»åˆ—的问题 + +※ 如å‘çŽ°ä»»ä½•é—®é¢˜ï¼Œæ¬¢è¿Žéšæ—¶æŠ¥å‘Šæˆ–æäº¤åˆå¹¶è¯·æ±‚,以便快速修å¤å’Œè¿ä»£ + + + + + +## 如何è¿è¡Œé¡¹ç›® + +##### 下载项目ä¾èµ– + +``` +npm install +``` + +##### å¼€å‘环境编译并è¿è¡Œ +``` +npm run serve +``` + +##### å¼€å‘环境编译并è¿è¡Œï¼ˆåŒæ—¶å¯åЍmockæœåŠ¡ï¼‰ + +``` +npm run serve-mock +``` + +##### 生产环境打包项目 + +``` +npm run build +``` + +##### æ ¼å¼åŒ–代ç +``` +npm run lint +``` + + + + + +## 说明文档 + +#### 一ã€é¡¹ç›®ç»“æž„åŠä¸»è¦ç›®å½• + +| ä½ç½® | 说明 | +| --------------- | ------------------------------------------------------------ | +| /mock | mock.js目录,mock的作用是为项目æä¾›æ¨¡æ‹Ÿæ•°æ®ï¼Œæ–¹ä¾¿è„±ç¦»åŽç«¯è¿›è¡Œå¼€å‘ | +| /src | 主目录 | +| /src/api | apiæŽ¥å£æ–¹æ³•目录,按业务功能划分 | +| /src/components | 公共组件目录 | +| /src/core | æ ¸å¿ƒä»£ç åŠç±»åº“目录 | +| /src/layout | 布局结构代ç 目录,包括边æ (èœå•)ã€é¡¶æ (é¢åŒ…屑ç‰ï¼‰ã€æ ‡ç¾æ 以åŠä¸»æ˜¾ç¤ºåŒºåŸŸ | +| /src/router | 路由模å—目录 | +| /src/settings | é¡¹ç›®å‚æ•°é…置目录 | +| /src/store | vuex全局状æ€ç®¡ç†æ¨¡å—目录 | +| /src/style | æ ·å¼ç›®å½• | +| /src/utils | 工具类目录 | +| /src/views | 业务功能页é¢ç»„件目录 | + + + +#### 二ã€ç‹¬ç«‹ä¼šè¯æ¨¡å—(ISM) + +ç‹¬ç«‹ä¼šè¯æ¨¡å—是模æ¿é¡¹ç›®çš„æ ¸å¿ƒæ¨¡å—,æä¾›äº†å®Œæ•´çš„会è¯ç›¸å…³åŠŸèƒ½ï¼ŒåŒ…æ‹¬è®¤è¯ã€æŽˆæƒã€åŠ å¯†å’Œä¼šè¯ç®¡ç†ç‰ï¼Œå…¶ç›®çš„在于解决以往å‰ç«¯å¼€å‘äººå‘˜å› ä¸ºç»éªŒå’Œå¯¹å…¬å¸åŸºç¡€æ•°æ®ä¸šåŠ¡æµç¨‹ã€é€»è¾‘的认识ä¸å¤Ÿï¼Œæ‰€å¯¼è‡´çš„å½±å“开呿•ˆçŽ‡æˆ–å…¶ä»–ç›¸å…³é—®é¢˜ã€‚ + +主è¦ç”±ä»¥ä¸‹å模å—组æˆï¼š + +##### ※ Subject + +###### 目录:/src/store/modules/subject.js + +ç‹¬ç«‹ä¼šè¯æ¨¡å—çš„æ ¸å¿ƒåæ¨¡å—,æ„为主体,会è¯çš„管ç†è€…,借由vuexå®žçŽ°ï¼Œç»´æŠ¤ä¼šè¯æ•°æ®å¹¶è°ƒåº¦å…¶ä»–模å—诸如路由æ¥å®žçް坹æƒé™çš„æŽ§åˆ¶ï¼Œæ³¨æ„,Subject内部ä¸ä¼šç›´æŽ¥è°ƒç”¨ä»»ä½•åŽç«¯æŽ¥å£æ¥èŽ·å¾—è®¤è¯æˆ–æŽˆæƒæ•°æ®ï¼Œè¿™äº›æ•°æ®éœ€è¦é€šè¿‡Realmæ¥æä¾›ã€‚ + +以下是Subjectæä¾›çš„æ–¹æ³• + +| 方法 | 傿•° | 傿•°ç±»åž‹ | 功能 | +| --------------- | ------- | -------------------------- | ------------------------------------------------------------ | +| login | token | String/AuthenticationToken | 登录并生æˆå‰ç«¯ä¼šè¯ï¼Œåœ¨é»˜è®¤æ¨¡å¼ä¸‹ï¼Œè°ƒç”¨æ¤æ–¹æ³•éœ€è¦æä¾›ä¸€ä¸ªAuthenticationToken实例,在å•点登录模å¼ä¸‹ï¼Œåˆ™é€šå¸¸éœ€è¦æä¾›å•点登录端返回的令牌ç ,login会调用Realm.doGetAuthenticationInfo()æ–¹æ³•å¹¶ä¼ å…¥tokenï¼Œé€šå¸¸æˆ‘ä»¬åº”è¯¥åœ¨æ¤æ–¹æ³•ä¸è°ƒç”¨åŽç«¯ç™»å½•æŽ¥å£æˆ–通过令牌获å–登录用户信æ¯ï¼Œå¹¶è¿”回一个AuthenticationInfo实例作为认è¯ç»“果。AuthenticationToken实例对象包å«ä¸¤ä¸ªå—段:<br />**principals**(String/必须):身份,通常为用户åï¼›<br />**credentials**(String/å¿…é¡»ï¼‰ï¼šè¯æ˜Žï¼Œé€šå¸¸ä¸ºå¯†ç 。 | +| permit | payload | Object | 授æƒï¼Œåœ¨ç™»å½•完æˆåŽè°ƒç”¨ï¼Œpermit会调用Realm.doGetAuthorizationInfo()æ–¹æ³•ï¼Œé€šå¸¸æˆ‘ä»¬åº”è¯¥åœ¨æ¤æ–¹æ³•ä¸è°ƒç”¨åŽç«¯æŽ¥å£èŽ·å–当å‰ç™»å½•用户的æƒé™ç›¸å…³ä¿¡æ¯ï¼Œå¹¶è¿”回一个AuthorizationInfo实例。<br />è¯¥æ–¹æ³•æŽ¥æ”¶ä¸€ä¸ªå¯¹è±¡ä½œä¸ºå‚æ•°ï¼ŒåŒ…æ‹¬ä¸¤ä¸ªå—æ®µï¼š<br />**authorizationToken**(String/å¯é€‰ï¼‰ï¼šè¯¥å‚数会作为Realm.doGetAuthorizationInfo()æ–¹æ³•çš„å‚æ•°ï¼›<br />**afterPermitted**(Function/å¯é€‰ï¼‰ï¼šè¯¥å‡½æ•°å°†ä¼šåœ¨æŽˆæƒå®ŒæˆåŽè¢«æ‰§è¡Œï¼ˆä¾‹å¦‚:å•点登录端完æˆç™»å½•åŽéœ€è¦è·³è½¬å›žä¸šåŠ¡ç³»ç»Ÿï¼‰ï¼Œé»˜è®¤æƒ…å†µä¸‹ï¼Œsubject将会调度router跳转到首页。 | +| checkPermission | payload | Object | 用于对路由进行æƒé™æ ¡éªŒï¼Œè¯¥æ–¹æ³•在路由守å«ä¸è¢«è°ƒç”¨å¹¶è¿”å›žæ ¡éªŒç»“æžœã€‚<br />è¯¥æ–¹æ³•æŽ¥æ”¶ä¸€ä¸ªå¯¹è±¡ä½œä¸ºå‚æ•°ï¼ŒåŒ…æ‹¬ä¸¤ä¸ªå—æ®µï¼š<br />**path**(String/必须):需è¦è¢«æ ¡éªŒçš„路由;<br />**whiteList**(Array/å¯é€‰ï¼‰ï¼šç™½åå•,用于è±å…æƒé™æ ¡éªŒã€‚ | +| recovery | / | / | 用于在vuexé‡ç½®åŽä»Žstorageæ¢å¤ä¼šè¯ä¿¡æ¯ï¼Œåœ¨è·¯ç”±å®ˆå«ä¸è¢«è°ƒç”¨ã€‚ | +| logout | payload | Object | 注销当å‰ä¼šè¯ï¼Œæ³¨é”€å‰å°†ä¼šè°ƒç”¨Realm.beforeLogout(),通常用于调用åŽç«¯æ³¨é”€æŽ¥å£ï¼Œæ³¨é”€åŽå°†è°ƒåº¦router跳转到登录页é¢ï¼Œå•点登录模å¼ä¸‹å°†è·³è½¬åˆ°å“应的å•点登录地å€ã€‚<br />è¯¥æ–¹æ³•æŽ¥æ”¶ä¸€ä¸ªå¯¹è±¡ä½œä¸ºå‚æ•°ï¼ŒåŒ…æ‹¬å››ä¸ªå—æ®µï¼š<br />**beforeLogout**(Function/å¯é€‰ï¼‰ï¼šç”¨äºŽæ›¿æ¢é»˜è®¤çš„Realm.beforeLogout(),在å•点登录模å¼ä¸‹ï¼Œå¯åœ¨è¯¥å‡½æ•°è¿”回å•点登录的地å€ï¼›<br />**ssoAddress**(String/å¯é€‰ï¼‰ï¼šå•点登录模å¼ä¸‹ä½¿ç”¨ï¼Œè¡¨ç¤ºå•点登录地å€ï¼Œæ³¨æ„,共有三个入å£å¯æä¾›å•点登录地å€ï¼Œä¼˜å…ˆçº§ä¸ºï¼šæ¤å—段æä¾›çš„åœ°å€ > beforeLogout()è¿”å›žçš„åœ°å€ > settingä¸å®šä¹‰çš„地å€ï¼›<br />**ssoLogout**(Boolean/å¯é€‰ï¼‰ï¼šå•点登录模å¼ä¸‹ä½¿ç”¨ï¼Œç”¨äºŽæ³¨é”€å•点登录端的会è¯<br />**query**(Object/å¯é€‰ï¼‰ï¼šè·³è½¬ç™»å½•页颿—¶é™„åŠ çš„å‚æ•°ã€‚ | + + + +##### ※ Realm + +###### 目录:/src/core/base/Realm.js + +å®‰å…¨æ•°æ®æºï¼Œç”¨äºŽä¸ºSubjectæä¾›ä¼šè¯æ‰€å¿…须的数æ®ï¼ˆè´¦å·ã€ç”¨æˆ·ã€æƒé™ç‰ï¼‰ï¼Œé€šå¸¸æˆ‘们需è¦åœ¨Realm的方法ä¸è°ƒç”¨ç›¸åº”çš„åŽç«¯api接å£èŽ·å–å¿…è¦çš„æ•°æ®ï¼Œå¹¶è¿”回给Subject。 + +ä¸»è¦æ–¹æ³•如下: + +``` + /** + * @method 获å–身份认è¯ä¿¡æ¯ + * @for Realm + * @param {*} authenticationToken + * @return {Promise} + */ + static async doGetAuthenticationInfo(authenticationToken) { + const { principals, credentials } = authenticationToken; + // 调用åŽç«¯api + // 必须返回一个AuthenticationInfo实例 + return new AuthenticationInfo(); + } + + /** + * @method 获å–用户æƒé™ä¿¡æ¯ + * @for Realm + * @param {*} authorizationToken + * @return {Promise} + */ + static async doGetAuthorizationInfo(authorizationToken) { + // 调用åŽç«¯api + // 必须返回一个AuthorizationInfo实例 + return new AuthorizationInfo(); + } + + /** + * @method 注销å‰çš„行为 + * @for Realm + * @return {String} ssoAddress + */ + static async beforeLogout() { + // 调用åŽç«¯api,通常是注销 + // å¯è¿”回一个å•ç‚¹ç™»å½•åœ°å€ + return; + } +``` + + + +##### ※ Guards + +###### 目录:/src/router/guards.js + +全局路由守å«ï¼Œç”¨äºŽä¸Žsubjecté…åˆæ¥å®Œæˆæƒé™æ ¡éªŒå’Œè·¯ç”±è·³è½¬ã€‚ + +æµç¨‹å›¾å¦‚下: + + + + + +##### ※ Storage + +###### 目录:/src/utils/Storage.js + +Storage工具类,用于é…åˆsubject完æˆå¯¹å‰ç«¯ä¼šè¯çš„æŒä¹…åŒ–æ•°æ®ç»´æŠ¤ï¼ˆåŒ…括部分app傿•°ï¼‰ï¼Œæä¾›æ–°å¢žï¼Œæ›´æ–°å’Œåˆ é™¤ï¼ŒåŠ è§£å¯†ç‰æ–¹æ³•,å¯é…置过期时间。 + +ä¸»è¦æ–¹æ³•如下: + +``` + /** + * @method 设置localStorage + * @for Storage + * @param {string} key + * @param {*} value + * @param {number} expired + */ + static setLocal(key, value, expired) + + /** + * @method 获å–localStorage + * @for Storage + * @param {string} key + * @return {*} + */ + static getLocal(key) + + /** + * @method åˆ é™¤localStorage + * @for Storage + * @param {string} key + */ + static delLocal(key) + + /** + * @method 设置sessionStorage + * @for Storage + * @param {string} key + * @param {*} value + * @param {number} expired + */ + static setSession(key, value, expired) + + /** + * @method 获å–sessionStorage + * @for Storage + * @param {string} key + * @return {*} + */ + static getSession(key) + + /** + * @method åˆ é™¤sessionStorage + * @for Storage + * @param {string} key + */ + static delSession(key) + + /** + * @method æ·»åŠ å¯¹Storageçš„ç›‘å¬ + * @for Storage + * @param {function} callback + */ + static addListener(callback) + + /** + * @method åˆ é™¤å¯¹Storageçš„ç›‘å¬ + * @for Storage + * @param {function} callback + */ + static removeListener(callback) +``` -如需在打包时使用特定的é…置(例如åŽç«¯åœ°å€ï¼‰ï¼Œè¯·åœ¨æ ¹ç›®å½•æ·»åŠ å¯¹åº”çš„ .env.xxx 文件(xxx 为自定义的环境å称),并在 /src/assets/configs ç›®å½•ä¸‹æ·»åŠ xxx.json 文件, -最åŽåœ¨ package.json ä¸çš„ scripts å—æ®µä¸æ·»åŠ å¯¹åº”çš„å‘½ä»¤ï¼š"build:xxx": "vue-cli-service build --mode xxx" diff --git a/WebSite/babel.config.js b/WebSite/babel.config.js index ba17966..916db64 100644 --- a/WebSite/babel.config.js +++ b/WebSite/babel.config.js @@ -1,5 +1,3 @@ module.exports = { - presets: [ - '@vue/app' - ] -} + presets: ['@vue/cli-plugin-babel/preset'] +}; diff --git a/WebSite/conf/init.sh b/WebSite/conf/init.sh deleted file mode 100644 index 0655229..0000000 --- a/WebSite/conf/init.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -rm -rf /usr/share/nginx/html/* -cp -r /app/html/. /usr/share/nginx/html -cp /app/nginx.conf /etc/nginx/nginx.conf -#echo "cp finish" -nginx -tail -f /dev/null \ No newline at end of file diff --git a/WebSite/conf/nginx.conf b/WebSite/conf/nginx.conf deleted file mode 100644 index 59cb2ea..0000000 --- a/WebSite/conf/nginx.conf +++ /dev/null @@ -1,80 +0,0 @@ - -user nginx; -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - - -events { - worker_connections 1024; -} - -#设定httpæœåŠ¡å™¨ï¼Œåˆ©ç”¨å®ƒçš„åå‘代ç†åŠŸèƒ½æä¾›è´Ÿè½½å‡è¡¡æ”¯æŒ -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - #sendfile 指令指定 nginx 是å¦è°ƒç”¨ sendfile 函数(zero copy æ–¹å¼ï¼‰æ¥è¾“出文件,对于普通应用, - #必须设为 on,如果用æ¥è¿›è¡Œä¸‹è½½ç‰åº”用ç£ç›˜IOé‡è´Ÿè½½åº”用,å¯è®¾ç½®ä¸º off,以平衡ç£ç›˜ä¸Žç½‘络I/O处ç†é€Ÿåº¦ï¼Œé™ä½Žç³»ç»Ÿçš„uptime. - sendfile on; - #tcp_nopush on; - - #连接超时时间 - keepalive_timeout 120; - tcp_nodelay on; - - #gzip压缩开关 - #gzip on; - - include /etc/nginx/conf.d/*.conf; - - #HTTPæœåС噍 - server { - #监å¬80端å£ï¼Œ80ç«¯å£æ˜¯çŸ¥å端å£å·ï¼Œç”¨äºŽHTTPåè®® - listen 80; - - #定义使用www.xx.com访问 - server_name 47.110.127.118; - - #首页 - index index.html - - #指å‘webapp的目录 - root /usr/share/nginx/html; - - #ç¼–ç æ ¼å¼ - charset utf-8; - - #åå‘代ç†çš„路径(和upstream绑定),location åŽé¢è®¾ç½®æ˜ 射的路径 - location /api/ { - proxy_pass http://47.110.127.118:8001/; - } - - location / { - # ng build生æˆçš„æ–‡ä»¶å¤¹ç›®å½• - root /usr/share/nginx/html; - try_files $uri $uri/ /index.html =404; - index index.html; - } - } - - #server { - # listen 8288; - # server_name 47.110.127.118; - # charset utf-8; - # add_header 'Access-Control-Allow-Origin' '*'; - # add_header 'Access-Control-Allow-Headers' 'X-Requested-With'; - # add_header 'Access-Control-Allow-Methods' 'PUT,POST,GET,DELETE,OPTIONS'; - # location / { - # root /file; - # } - #} - -} diff --git a/WebSite/jest.config.js b/WebSite/jest.config.js deleted file mode 100644 index 143cdc8..0000000 --- a/WebSite/jest.config.js +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - moduleFileExtensions: ['js', 'jsx', 'json', 'vue'], - transform: { - '^.+\\.vue$': 'vue-jest', - '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': - 'jest-transform-stub', - '^.+\\.jsx?$': 'babel-jest' - }, - moduleNameMapper: { - '^@/(.*)$': '<rootDir>/src/$1' - }, - snapshotSerializers: ['jest-serializer-vue'], - testMatch: [ - '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' - ], - collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'], - coverageDirectory: '<rootDir>/tests/unit/coverage', - // 'collectCoverage': true, - 'coverageReporters': [ - 'lcov', - 'text-summary' - ], - testURL: 'http://localhost/' -} diff --git a/WebSite/mock/account.js b/WebSite/mock/account.js index bad54c0..30f1a59 100644 --- a/WebSite/mock/account.js +++ b/WebSite/mock/account.js @@ -1,166 +1,138 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-11 19:09:10 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:57:07 + * @Autor: dongjunhua + * @Date: 2021-01-28 10:12:07 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-18 15:32:15 */ -import { deepClone } from "../src/utils/index"; + +const { deepClone } = require('./utils'); const userList = [ { - id: "1", - available: "YES", - versionDate: "2020-07-01 01:34:33.767", - updator: "1", - creator: "1", - remark: "test", - name: "角色1", - code: "0001", - userType: "ADMIN", - mobilePhone: "15911111111", - email: "test@seasky.com", - enabled: "YES" + id: '1', + available: 'YES', + versionDate: '2020-07-01 01:34:33.767', + updator: '1', + creator: '1', + remark: '', + name: 'Administrator', + code: 'admin', + userType: 'ADMIN', + mobilePhone: '15911111111', + email: 'test@seasky.com', + enabled: 'YES' + }, + { + id: '2', + available: 'YES', + versionDate: '2020-07-01 01:34:33.767', + updator: '1', + creator: '1', + remark: '', + name: 'Guest 01', + code: '0001', + userType: 'ADMIN', + mobilePhone: '15911111111', + email: 'test@seasky.com', + enabled: 'YES' }, { - id: "2", - available: "YES", - versionDate: "2020-07-01 01:34:33.767", - updator: "1", - creator: "1", - remark: "test", - name: "角色2", - code: "0002", - userType: "ADMIN", - mobilePhone: "15911111111", - email: "test@seasky.com", - enabled: "YES" + id: '3', + available: 'YES', + versionDate: '2020-07-01 01:34:33.767', + updator: '1', + creator: '1', + remark: '', + name: 'Guest 02', + code: '0002', + userType: 'ADMIN', + mobilePhone: '15911111111', + email: 'test@seasky.com', + enabled: 'YES' } ]; const menuList = [ { - id: "1", - available: "YES", - versionDate: "2020-07-10 02:31:46.962", - creator: "1", - applicationId: "1", - menuNo: "0000", - name: "演示", - icon: "list", - parentId: "0", - routingUrl: "", - isNewWindow: "NO", - isSystem: "YES", - withUserId: "NO", - enabled: "YES", - authUser: ["1", "2"], + id: '1', + available: 'YES', + versionDate: '2020-07-10 02:31:46.962', + creator: '1', + applicationId: '1', + menuNo: '0000', + name: 'Hello World', + icon: 'fas fa-globe-asia', + parentId: '0', + routingUrl: '', + isNewWindow: 'NO', + isSystem: 'YES', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], children: [ { - id: "2", - available: "YES", - versionDate: "2020-07-10 05:53:01.597", - updator: "1", - creator: "1", - applicationId: "1", - menuNo: "SBD_001", - name: "驾驶舱", - icon: "dashboard", - parentId: "1", - routingUrl: "dashboard", - redirectUrl: "", - urlParameter: "", - isNewWindow: "NO", - isSystem: "NO", - withUserId: "NO", - enabled: "YES", - authUser: ["1"], + id: '2', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_001', + name: 'Hello A', + icon: 'fas fa-cube', + parentId: '1', + routingUrl: 'hello/helloa', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1', '2'], children: [] }, { - id: "3", - available: "YES", - versionDate: "2020-07-10 05:53:08.334", - updator: "1", - creator: "1", - applicationId: "1", - menuNo: "SBD_003", - name: "UI规范", - icon: "example", - parentId: "1", - routingUrl: "", - redirectUrl: "", - urlParameter: "", - isNewWindow: "NO", - isSystem: "NO", - withUserId: "NO", - enabled: "YES", - authUser: ["1"], - children: [ - { - id: "301", - menuNo: "301", - name: "概述", - icon: "", - routingUrl: "example/index", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "302", - menuNo: "302", - name: "布局", - icon: "", - routingUrl: "example/layout", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "303", - menuNo: "303", - name: "å›¾æ ‡", - icon: "", - routingUrl: "example/icon", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "304", - menuNo: "304", - name: "按钮", - icon: "", - routingUrl: "example/button", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "305", - menuNo: "305", - name: "è¡¨æ ¼", - icon: "", - routingUrl: "example/table", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "306", - menuNo: "306", - name: "表å•", - icon: "", - routingUrl: "example/form", - redirectUrl: "", - authUser: ["1"] - }, - { - id: "307", - menuNo: "307", - name: "å¯¹è¯æ¡†", - icon: "", - routingUrl: "example/dialog", - redirectUrl: "", - authUser: ["1"] - } - ] + id: '3', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_002', + name: 'Hello B', + icon: 'fas fa-feather-alt', + parentId: '1', + routingUrl: 'hello/hellob', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], + children: [] + }, + { + id: '4', + available: 'YES', + versionDate: '2020-07-10 05:53:01.597', + updator: '1', + creator: '1', + applicationId: '1', + menuNo: 'SBD_003', + name: 'Hello C', + icon: 'fas fa-layer-group', + parentId: '1', + routingUrl: 'hello/helloc', + redirectUrl: '', + urlParameter: '', + isNewWindow: 'NO', + isSystem: 'NO', + withUserId: 'NO', + enabled: 'YES', + authUser: ['1'], + children: [] } ] } @@ -186,53 +158,53 @@ function getMenuListByUser() { return menus; } -export default [ +module.exports = [ // login { - url: "/account/pc/v1/login", - type: "post", - response: _ => { + url: '/account/pc/v1/login', + type: 'post', + response: () => { return { data: [ { - id: "1", - available: "YES", - versionDate: "2020-07-08 02:30:50.390", - updator: "1", - username: "admin", - enabled: "YES", - isInitial: "NO", + id: '1', + available: 'YES', + versionDate: '2020-07-08 02:30:50.390', + updator: '1', + username: 'admin', + enabled: 'YES', + isInitial: 'NO', users: userList, - token: "d79ba79c-0561-43ed-afa4-d94a9ef2b5ff" + token: 'd79ba79c-0561-43ed-afa4-d94a9ef2b5ff' } ], - code: "00000", - description: "æˆåŠŸ", - currentTime: "1594465972765", - rid: "pyAn4K2g" + code: '00000', + description: 'æˆåŠŸ', + currentTime: '1594465972765', + rid: 'pyAn4K2g' }; } }, // setCurrent { - url: "/user/pc/v1/setCurrent", - type: "post", + url: '/user/pc/v1/setCurrent', + type: 'post', response: config => { const { id } = config.body; currentUser = userList.find(u => u.id === id); return { - code: "00000", - currentTime: "1594466609898", - description: "æˆåŠŸ", - rid: "79HgNrDI" + code: '00000', + currentTime: '1594466609898', + description: 'æˆåŠŸ', + rid: '79HgNrDI' }; } }, // getCurrent { - url: "/user/pc/v1/getCurrent", - type: "post", - response: _ => { + url: '/user/pc/v1/getCurrent', + type: 'post', + response: () => { return { data: [ { @@ -241,23 +213,23 @@ export default [ functionList: [] } ], - code: "00000", - description: "æˆåŠŸ", - currentTime: "1594466793502", - rid: "YBi5A0sJ" + code: '00000', + description: 'æˆåŠŸ', + currentTime: '1594466793502', + rid: 'YBi5A0sJ' }; } }, // modifyPassword { - url: "/account/pc/v1/modifyPassword", - type: "post", - response: _ => { + url: '/account/pc/v1/modifyPassword', + type: 'post', + response: () => { return { - code: "00000", - description: "æˆåŠŸ", - currentTime: "1594466793502", - rid: "YBi5A0sJ" + code: '00000', + description: 'æˆåŠŸ', + currentTime: '1594466793502', + rid: 'YBi5A0sJ' }; } } diff --git a/WebSite/mock/application.js b/WebSite/mock/application.js deleted file mode 100644 index d632ae7..0000000 --- a/WebSite/mock/application.js +++ /dev/null @@ -1,169 +0,0 @@ -export default [ - // application listApplication - { - url: "/application/pc/v1/listApplication", - type: "post", - response: config => { - return { - data: [ - { - id: 1268442997780377601, - available: "YES", - versionDate: "2020-06-04 07:22:33.393", - recognizeId: "20756ac0-a858-4d3f-9989-f5418dc3866a", - name: "内部应用1", - applicationType: "INNER", - enabled: "YES" - }, - { - id: 1268443025580224514, - available: "YES", - versionDate: "2020-06-04 07:22:39.890", - recognizeId: "0e010dfd-f48b-44b0-8f19-2157083d9a30", - name: "内部应用2", - applicationType: "INNER", - enabled: "YES" - } - ], - pageIndex: 1, - pageSize: 10, - pageCount: 1, - total: 2, - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591602092687, - rid: "AynrJyfn" - }; - } - }, - - { - url: "/application/pc/v1/get", - type: "post", - response: config => { - return { - data: [ - { - id: 1268442997780377601, - available: "YES", - versionDate: "2020-06-04 07:22:33.393", - recognizeId: "20756ac0-a858-4d3f-9989-f5418dc3866a", - name: "内部应用1", - applicationType: "INNER", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591602092687, - rid: "AynrJyfn" - }; - } - }, - - { - url: "/application/pc/v1/createApplication", - type: "post", - response: config => { - return { - data: [ - { - id: 1270152614558253057, - recognizeId: "470eb8c0-07b9-45d5-903c-2cb3911c2e7a", - name: "内部应用11", - applicationType: "INNER", - secret: "QzBCMjhEMTlDNjNFRTM1RUNDQ0NCNEFCMUMyMjZDNEI=", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - }, - - { - url: "/application/pc/v1/modifyApplication", - type: "post", - response: config => { - return { - data: [ - { - id: 1270152614558253057, - recognizeId: "470eb8c0-07b9-45d5-903c-2cb3911c2e7a", - name: "内部应用11", - applicationType: "INNER", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - }, - - { - url: "/application/pc/v1/removeApplication", - type: "get", - response: config => { - return { - data: [true], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - }, - - { - url: "/application/pc/v1/resetApplicationSecret", - type: "get", - response: config => { - return { - data: [ - { - id: 1267367522282737666, - available: "YES", - versionDate: "2020-06-02T18:26:32.916+0000", - updator: 1267339697195388929, - creator: 1267339697195388929, - recognizeId: "48adee8b-a3b5-11ea-be76-00163e142fbd", - name: "基础数æ®", - applicationType: "INNER", - secret: "QzBCMjhEMTlDNjNFRTM1RUNDQ0NCNEFCMUMyMjZDNEI=", - enabled: "YES" - } - ], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591151192578, - rid: "pasRnum3" - }; - } - }, - - { - url: "/application/pc/v1/exportApplication", - type: "get", - response: "@paragraph(2)" - }, - - { - url: "/application/pc/v1/importApplication", - type: "post", - response: config => { - return { - data: [true], - code: "00000", - description: "æˆåŠŸ", - currentTime: 1591662956455, - rid: "LifKbaKn" - }; - } - } -]; diff --git a/WebSite/mock/article.js b/WebSite/mock/article.js deleted file mode 100644 index 4955578..0000000 --- a/WebSite/mock/article.js +++ /dev/null @@ -1,128 +0,0 @@ -import Mock from "mockjs"; - -const List = []; -const count = 100; - -const baseContent = - '<p>I am testing data, I am testing data.</p><p><img src="https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943"></p>'; -const image_uri = - "https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3"; - -for (let i = 0; i < count; i++) { - List.push( - Mock.mock({ - id: "@increment", - timestamp: +Mock.Random.date("T"), - author: "@first", - reviewer: "@first", - title: "@title(5, 10)", - content_short: "mock data", - content: baseContent, - forecast: "@float(0, 100, 2, 2)", - importance: "@integer(1, 3)", - "type|1": ["CN", "US", "JP", "EU"], - "status|1": ["published", "draft"], - display_time: "@datetime", - comment_disabled: true, - pageviews: "@integer(300, 5000)", - image_uri, - platforms: ["a-platform"] - }) - ); -} - -export default [ - { - url: "/vue-element-admin/article/list", - type: "get", - response: config => { - const { - importance, - type, - title, - page = 1, - limit = 20, - sort - } = config.query; - - let mockList = List.filter(item => { - if (importance && item.importance !== +importance) return false; - if (type && item.type !== type) return false; - if (title && item.title.indexOf(title) < 0) return false; - return true; - }); - - if (sort === "-id") { - mockList = mockList.reverse(); - } - - const pageList = mockList.filter( - (item, index) => index < limit * page && index >= limit * (page - 1) - ); - - return { - code: 20000, - data: { - total: mockList.length, - items: pageList - } - }; - } - }, - - { - url: "/vue-element-admin/article/detail", - type: "get", - response: config => { - const { id } = config.query; - for (const article of List) { - if (article.id === +id) { - return { - code: 20000, - data: article - }; - } - } - } - }, - - { - url: "/vue-element-admin/article/pv", - type: "get", - response: _ => { - return { - code: 20000, - data: { - pvData: [ - { key: "PC", pv: 1024 }, - { key: "mobile", pv: 1024 }, - { key: "ios", pv: 1024 }, - { key: "android", pv: 1024 } - ] - } - }; - } - }, - - { - url: "/vue-element-admin/article/create", - type: "post", - response: _ => { - return { - code: 20000, - data: "success" - }; - } - }, - - { - url: "/vue-element-admin/article/update", - type: "post", - response: _ => { - return { - code: 20000, - data: "success" - }; - } - } -]; diff --git a/WebSite/mock/index.js b/WebSite/mock/index.js index 94723e6..055270b 100644 --- a/WebSite/mock/index.js +++ b/WebSite/mock/index.js @@ -1,34 +1,21 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-11 18:39:03 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-11 19:32:46 + * @Autor: dongjunhua + * @Date: 2021-01-28 10:08:10 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-28 10:16:30 */ +const Mock = require('mockjs'); +const { param2Obj } = require('./utils'); -import Mock from "mockjs"; -import { param2Obj } from "../src/utils"; +const account = require('./account'); -import user from "./user"; -import role from "./role"; -import article from "./article"; -import search from "./remote-search"; -import application from "./application"; -import account from "./account"; - -const mocks = [ - ...user, - ...role, - ...article, - ...search, - ...application, - ...account -]; +const mocks = [...account]; // for front mock // please use it cautiously, it will redefine XMLHttpRequest, // which will cause many of your third-party libraries to be invalidated(like progress event). -export function mockXHR() { +function mockXHR() { // mock patch // https://github.com/nuysoft/Mock/issues/300 Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send; @@ -64,10 +51,13 @@ export function mockXHR() { for (const i of mocks) { Mock.mock( new RegExp(i.url), - i.type || "get", + i.type || 'get', XHR2ExpressReqWrap(i.response) ); } } -export default mocks; +module.exports = { + mocks, + mockXHR +}; diff --git a/WebSite/mock/mock-server.js b/WebSite/mock/mock-server.js index 8a45851..319ec26 100644 --- a/WebSite/mock/mock-server.js +++ b/WebSite/mock/mock-server.js @@ -1,14 +1,21 @@ -const chokidar = require("chokidar"); -const bodyParser = require("body-parser"); -const chalk = require("chalk"); -const path = require("path"); -const Mock = require("mockjs"); +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-28 10:07:16 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-28 10:07:39 + */ +const chokidar = require('chokidar'); +const bodyParser = require('body-parser'); +const chalk = require('chalk'); +const path = require('path'); +const Mock = require('mockjs'); -const mockDir = path.join(process.cwd(), "mock"); +const mockDir = path.join(process.cwd(), 'mock'); function registerRoutes(app) { let mockLastIndex; - const { default: mocks } = require("./index.js"); + const { mocks } = require('./index.js'); const mocksForServer = mocks.map(route => { return responseFake(route.url, route.type, route.response); }); @@ -35,9 +42,9 @@ function unregisterRoutes() { const responseFake = (url, type, respond) => { return { url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`), - type: type || "get", + type: type || 'get', response(req, res) { - console.log("request invoke:" + req.path); + console.log('request invoke:' + req.path); res.json( Mock.mock(respond instanceof Function ? respond(req, res) : respond) ); @@ -46,9 +53,6 @@ const responseFake = (url, type, respond) => { }; module.exports = app => { - // es6 polyfill - require("@babel/register"); - // parse app.body // https://expressjs.com/en/4x/api.html#req.body app.use(bodyParser.json()); @@ -68,8 +72,8 @@ module.exports = app => { ignored: /mock-server/, ignoreInitial: true }) - .on("all", (event, path) => { - if (event === "change" || event === "add") { + .on('all', (event, path) => { + if (event === 'change' || event === 'add') { try { // remove mock routes stack app._router.stack.splice(mockStartIndex, mockRoutesLength); diff --git a/WebSite/mock/remote-search.js b/WebSite/mock/remote-search.js deleted file mode 100644 index 60809cb..0000000 --- a/WebSite/mock/remote-search.js +++ /dev/null @@ -1,51 +0,0 @@ -import Mock from 'mockjs' - -const NameList = [] -const count = 100 - -for (let i = 0; i < count; i++) { - NameList.push(Mock.mock({ - name: '@first' - })) -} -NameList.push({ name: 'mock-Pan' }) - -export default [ - // username search - { - url: '/vue-element-admin/search/user', - type: 'get', - response: config => { - const { name } = config.query - const mockNameList = NameList.filter(item => { - const lowerCaseName = item.name.toLowerCase() - return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0) - }) - return { - code: 20000, - data: { items: mockNameList } - } - } - }, - - // transaction list - { - url: '/vue-element-admin/transaction/list', - type: 'get', - response: _ => { - return { - code: 20000, - data: { - total: 20, - 'items|20': [{ - order_no: '@guid()', - timestamp: +Mock.Random.date('T'), - username: '@name()', - price: '@float(1000, 15000, 0, 2)', - 'status|1': ['success', 'pending'] - }] - } - } - } - } -] diff --git a/WebSite/mock/role/index.js b/WebSite/mock/role/index.js deleted file mode 100644 index 6f74be8..0000000 --- a/WebSite/mock/role/index.js +++ /dev/null @@ -1,101 +0,0 @@ -import Mock from "mockjs"; -import { deepClone } from "../../src/utils/index.js"; -import { asyncRoutes, constantRoutes } from "./routes.js"; - -const routes = deepClone([...constantRoutes, ...asyncRoutes]); - -const roles = [ - { - key: "admin", - name: "admin", - description: "Super Administrator. Have access to view all pages.", - routes: routes - }, - { - key: "editor", - name: "editor", - description: "Normal Editor. Can see all pages except permission page", - routes: routes.filter(i => i.path !== "/permission") // just a mock - }, - { - key: "visitor", - name: "visitor", - description: - "Just a visitor. Can only see the home page and the document page", - routes: [ - { - path: "", - redirect: "dashboard", - children: [ - { - path: "dashboard", - name: "Dashboard", - meta: { title: "dashboard", icon: "dashboard" } - } - ] - } - ] - } -]; - -export default [ - // mock get all routes form server - { - url: "/vue-element-admin/routes", - type: "get", - response: _ => { - return { - code: 20000, - data: routes - }; - } - }, - - // mock get all roles form server - { - url: "/vue-element-admin/roles", - type: "get", - response: _ => { - return { - code: 20000, - data: roles - }; - } - }, - - // add role - { - url: "/vue-element-admin/role", - type: "post", - response: { - code: 20000, - data: { - key: Mock.mock("@integer(300, 5000)") - } - } - }, - - // update role - { - url: "/vue-element-admin/role/[A-Za-z0-9]", - type: "put", - response: { - code: 20000, - data: { - status: "success" - } - } - }, - - // delete role - { - url: "/vue-element-admin/role/[A-Za-z0-9]", - type: "delete", - response: { - code: 20000, - data: { - status: "success" - } - } - } -]; diff --git a/WebSite/mock/role/routes.js b/WebSite/mock/role/routes.js deleted file mode 100644 index 2eec336..0000000 --- a/WebSite/mock/role/routes.js +++ /dev/null @@ -1,525 +0,0 @@ -// Just a mock data - -export const constantRoutes = [ - { - path: "/redirect", - component: "layout/Layout", - hidden: true, - children: [ - { - path: "/redirect/:path*", - component: "views/redirect/index" - } - ] - }, - { - path: "/login", - component: "views/login/index", - hidden: true - }, - { - path: "/auth-redirect", - component: "views/login/auth-redirect", - hidden: true - }, - { - path: "/404", - component: "views/error-page/404", - hidden: true - }, - { - path: "/401", - component: "views/error-page/401", - hidden: true - }, - { - path: "", - component: "layout/Layout", - redirect: "dashboard", - children: [ - { - path: "dashboard", - component: "views/dashboard/index", - name: "Dashboard", - meta: { title: "Dashboard", icon: "dashboard", affix: true } - } - ] - }, - { - path: "/documentation", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/documentation/index", - name: "Documentation", - meta: { title: "Documentation", icon: "documentation", affix: true } - } - ] - }, - { - path: "/guide", - component: "layout/Layout", - redirect: "/guide/index", - children: [ - { - path: "index", - component: "views/guide/index", - name: "Guide", - meta: { title: "Guide", icon: "guide", noCache: true } - } - ] - } -]; - -export const asyncRoutes = [ - { - path: "/permission", - component: "layout/Layout", - redirect: "/permission/index", - alwaysShow: true, - meta: { - title: "Permission", - icon: "lock", - roles: ["admin", "editor"] - }, - children: [ - { - path: "page", - component: "views/permission/page", - name: "PagePermission", - meta: { - title: "Page Permission", - roles: ["admin"] - } - }, - { - path: "directive", - component: "views/permission/directive", - name: "DirectivePermission", - meta: { - title: "Directive Permission" - } - }, - { - path: "role", - component: "views/permission/role", - name: "RolePermission", - meta: { - title: "Role Permission", - roles: ["admin"] - } - } - ] - }, - - { - path: "/icon", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/icons/index", - name: "Icons", - meta: { title: "Icons", icon: "icon", noCache: true } - } - ] - }, - - { - path: "/components", - component: "layout/Layout", - redirect: "noRedirect", - name: "ComponentDemo", - meta: { - title: "Components", - icon: "component" - }, - children: [ - { - path: "tinymce", - component: "views/components-demo/tinymce", - name: "TinymceDemo", - meta: { title: "Tinymce" } - }, - { - path: "markdown", - component: "views/components-demo/markdown", - name: "MarkdownDemo", - meta: { title: "Markdown" } - }, - { - path: "json-editor", - component: "views/components-demo/json-editor", - name: "JsonEditorDemo", - meta: { title: "Json Editor" } - }, - { - path: "split-pane", - component: "views/components-demo/split-pane", - name: "SplitpaneDemo", - meta: { title: "SplitPane" } - }, - { - path: "avatar-upload", - component: "views/components-demo/avatar-upload", - name: "AvatarUploadDemo", - meta: { title: "Avatar Upload" } - }, - { - path: "dropzone", - component: "views/components-demo/dropzone", - name: "DropzoneDemo", - meta: { title: "Dropzone" } - }, - { - path: "sticky", - component: "views/components-demo/sticky", - name: "StickyDemo", - meta: { title: "Sticky" } - }, - { - path: "count-to", - component: "views/components-demo/count-to", - name: "CountToDemo", - meta: { title: "Count To" } - }, - { - path: "mixin", - component: "views/components-demo/mixin", - name: "ComponentMixinDemo", - meta: { title: "componentMixin" } - }, - { - path: "back-to-top", - component: "views/components-demo/back-to-top", - name: "BackToTopDemo", - meta: { title: "Back To Top" } - }, - { - path: "drag-dialog", - component: "views/components-demo/drag-dialog", - name: "DragDialogDemo", - meta: { title: "Drag Dialog" } - }, - { - path: "drag-select", - component: "views/components-demo/drag-select", - name: "DragSelectDemo", - meta: { title: "Drag Select" } - }, - { - path: "dnd-list", - component: "views/components-demo/dnd-list", - name: "DndListDemo", - meta: { title: "Dnd List" } - }, - { - path: "drag-kanban", - component: "views/components-demo/drag-kanban", - name: "DragKanbanDemo", - meta: { title: "Drag Kanban" } - } - ] - }, - { - path: "/charts", - component: "layout/Layout", - redirect: "noRedirect", - name: "Charts", - meta: { - title: "Charts", - icon: "chart" - }, - children: [ - { - path: "keyboard", - component: "views/charts/keyboard", - name: "KeyboardChart", - meta: { title: "Keyboard Chart", noCache: true } - }, - { - path: "line", - component: "views/charts/line", - name: "LineChart", - meta: { title: "Line Chart", noCache: true } - }, - { - path: "mixchart", - component: "views/charts/mixChart", - name: "MixChart", - meta: { title: "Mix Chart", noCache: true } - } - ] - }, - { - path: "/nested", - component: "layout/Layout", - redirect: "/nested/menu1/menu1-1", - name: "Nested", - meta: { - title: "Nested", - icon: "nested" - }, - children: [ - { - path: "menu1", - component: "views/nested/menu1/index", - name: "Menu1", - meta: { title: "Menu1" }, - redirect: "/nested/menu1/menu1-1", - children: [ - { - path: "menu1-1", - component: "views/nested/menu1/menu1-1", - name: "Menu1-1", - meta: { title: "Menu1-1" } - }, - { - path: "menu1-2", - component: "views/nested/menu1/menu1-2", - name: "Menu1-2", - redirect: "/nested/menu1/menu1-2/menu1-2-1", - meta: { title: "Menu1-2" }, - children: [ - { - path: "menu1-2-1", - component: "views/nested/menu1/menu1-2/menu1-2-1", - name: "Menu1-2-1", - meta: { title: "Menu1-2-1" } - }, - { - path: "menu1-2-2", - component: "views/nested/menu1/menu1-2/menu1-2-2", - name: "Menu1-2-2", - meta: { title: "Menu1-2-2" } - } - ] - }, - { - path: "menu1-3", - component: "views/nested/menu1/menu1-3", - name: "Menu1-3", - meta: { title: "Menu1-3" } - } - ] - }, - { - path: "menu2", - name: "Menu2", - component: "views/nested/menu2/index", - meta: { title: "Menu2" } - } - ] - }, - - { - path: "/example", - component: "layout/Layout", - redirect: "/example/list", - name: "Example", - meta: { - title: "Example", - icon: "example" - }, - children: [ - { - path: "create", - component: "views/example/create", - name: "CreateArticle", - meta: { title: "Create Article", icon: "edit" } - }, - { - path: "edit/:id(\\d+)", - component: "views/example/edit", - name: "EditArticle", - meta: { title: "Edit Article", noCache: true }, - hidden: true - }, - { - path: "list", - component: "views/example/list", - name: "ArticleList", - meta: { title: "Article List", icon: "list" } - } - ] - }, - - { - path: "/tab", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/tab/index", - name: "Tab", - meta: { title: "Tab", icon: "tab" } - } - ] - }, - - { - path: "/error", - component: "layout/Layout", - redirect: "noRedirect", - name: "ErrorPages", - meta: { - title: "Error Pages", - icon: "404" - }, - children: [ - { - path: "401", - component: "views/error-page/401", - name: "Page401", - meta: { title: "Page 401", noCache: true } - }, - { - path: "404", - component: "views/error-page/404", - name: "Page404", - meta: { title: "Page 404", noCache: true } - } - ] - }, - - { - path: "/error-log", - component: "layout/Layout", - redirect: "noRedirect", - children: [ - { - path: "log", - component: "views/error-log/index", - name: "ErrorLog", - meta: { title: "Error Log", icon: "bug" } - } - ] - }, - - { - path: "/excel", - component: "layout/Layout", - redirect: "/excel/export-excel", - name: "Excel", - meta: { - title: "Excel", - icon: "excel" - }, - children: [ - { - path: "export-excel", - component: "views/excel/export-excel", - name: "ExportExcel", - meta: { title: "Export Excel" } - }, - { - path: "export-selected-excel", - component: "views/excel/select-excel", - name: "SelectExcel", - meta: { title: "Select Excel" } - }, - { - path: "export-merge-header", - component: "views/excel/merge-header", - name: "MergeHeader", - meta: { title: "Merge Header" } - }, - { - path: "upload-excel", - component: "views/excel/upload-excel", - name: "UploadExcel", - meta: { title: "Upload Excel" } - } - ] - }, - - { - path: "/zip", - component: "layout/Layout", - redirect: "/zip/download", - alwaysShow: true, - meta: { title: "Zip", icon: "zip" }, - children: [ - { - path: "download", - component: "views/zip/index", - name: "ExportZip", - meta: { title: "Export Zip" } - } - ] - }, - - { - path: "/pdf", - component: "layout/Layout", - redirect: "/pdf/index", - children: [ - { - path: "index", - component: "views/pdf/index", - name: "PDF", - meta: { title: "PDF", icon: "pdf" } - } - ] - }, - { - path: "/pdf/download", - component: "views/pdf/download", - hidden: true - }, - - { - path: "/theme", - component: "layout/Layout", - redirect: "noRedirect", - children: [ - { - path: "index", - component: "views/theme/index", - name: "Theme", - meta: { title: "Theme", icon: "theme" } - } - ] - }, - - { - path: "/clipboard", - component: "layout/Layout", - redirect: "noRedirect", - children: [ - { - path: "index", - component: "views/clipboard/index", - name: "ClipboardDemo", - meta: { title: "Clipboard Demo", icon: "clipboard" } - } - ] - }, - - { - path: "/i18n", - component: "layout/Layout", - children: [ - { - path: "index", - component: "views/i18n-demo/index", - name: "I18n", - meta: { title: "I18n", icon: "international" } - } - ] - }, - - { - path: "external-link", - component: "layout/Layout", - children: [ - { - path: "https://github.com/PanJiaChen/vue-element-admin", - meta: { title: "External Link", icon: "link" } - } - ] - }, - - { path: "*", redirect: "/404", hidden: true } -]; diff --git a/WebSite/mock/user.js b/WebSite/mock/user.js deleted file mode 100644 index a544b5c..0000000 --- a/WebSite/mock/user.js +++ /dev/null @@ -1,85 +0,0 @@ -const tokens = { - admin: { - token: "admin-token" - }, - editor: { - token: "editor-token" - } -}; - -const users = { - "admin-token": { - roles: ["admin"], - introduction: "I am a super administrator", - avatar: - "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif", - name: "Super Admin" - }, - "editor-token": { - roles: ["editor"], - introduction: "I am an editor", - avatar: - "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif", - name: "Normal Editor" - } -}; - -export default [ - // user login - { - url: "/vue-element-admin/user/login", - type: "post", - response: config => { - const { username } = config.body; - const token = tokens[username]; - - // mock error - if (!token) { - return { - code: 60204, - message: "Account and password are incorrect." - }; - } - - return { - code: 20000, - data: token - }; - } - }, - - // get user info - { - url: "/vue-element-admin/user/info.*", - type: "get", - response: config => { - const { token } = config.query; - const info = users[token]; - - // mock error - if (!info) { - return { - code: 50008, - message: "Login failed, unable to get user details." - }; - } - - return { - code: 20000, - data: info - }; - } - }, - - // user logout - { - url: "/vue-element-admin/user/logout", - type: "post", - response: _ => { - return { - code: 20000, - data: "success" - }; - } - } -]; diff --git a/WebSite/package-lock.json b/WebSite/package-lock.json index a7cd0ff..f938bb3 100644 --- a/WebSite/package-lock.json +++ b/WebSite/package-lock.json @@ -1,368 +1,475 @@ { - "name": "vue-element-admin", - "version": "4.2.1", + "name": "vue-element-next", + "version": "0.7.8", "lockfileVersion": 1, "requires": true, "dependencies": { + "@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz", + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "requires": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" + }, + "@ant-design/icons-vue": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz", + "integrity": "sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==", + "requires": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-svg": "^4.2.1" + } + }, "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz", - "integrity": "sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz", + "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.4" } }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.7.tgz", + "integrity": "sha1-kym0eCp9a71+71fhGt35HuPvHkE=", + "dev": true + }, "@babel/core": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.0.0.tgz?cache=0&sync_timestamp=1583373395226&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.0.0.tgz", - "integrity": "sha1-DLDA/S54oKK+yXaY9UmunOC5lRU=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.0.0", - "@babel/helpers": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "convert-source-map": "^1.1.0", - "debug": "^3.1.0", - "json5": "^0.5.0", - "lodash": "^4.17.10", - "resolve": "^1.3.2", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.10.tgz?cache=0&sync_timestamp=1607569002613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.10.tgz", + "integrity": "sha1-t5ouG59w7T2Eu/ttjE74JfYGvM0=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", "semver": "^5.4.1", "source-map": "^0.5.0" } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.8.7.tgz", - "integrity": "sha1-hws895hPUpeZgVKvYlxPPjQUAPc=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.11.tgz?cache=0&sync_timestamp=1608076804367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.11.tgz", + "integrity": "sha1-mKffe4w1jJo3qweiQFaFMBaro68=", "dev": true, "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.12.11", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha1-YLwLxlf2Ogkk/5pLSgskoTz03u4=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.10.tgz?cache=0&sync_timestamp=1607583990559&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha1-VKubAA5gqTZEzhez830xOq8dEV0=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.10" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha1-yECXpCegYaxWocMOv1S3si0kFQM=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/helper-call-delegate": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.8.7.tgz", - "integrity": "sha1-KKJ5wubGIqYjPaVIEn+YB1EyTKs=", + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha1-y0cMdhmNtqJOnbyJhydWMeXSmDE=", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.7" + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.8.6.tgz", - "integrity": "sha1-JDpbRuL48PZ03BOHYx62souFHeA=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha1-PEWZj0Me3UqSFMXx060USKYTf24=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.8.6.tgz?cache=0&sync_timestamp=1582806206622&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.8.6.tgz", - "integrity": "sha1-f6BAyX+4rr4SR6XGRTMMMtCDBms=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha1-IIQXLpVEP6CgkhS6G7Mo+a6hJ48=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" } }, "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz", - "integrity": "sha1-oGVcrVRRw3YLcm66h18c2PqgLBU=", + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz", + "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha1-pyjcW06J4w/C38fQT6KKkwZT+YI=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha1-gAakZmlcSthqKl8vsVtfLDGtVjM=", "dev": true, "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.1" } }, "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz?cache=0&sync_timestamp=1578980714632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.8.3.tgz", - "integrity": "sha1-7utmWgGx8RBo6fuGrVahyxqCTMo=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.11.tgz?cache=0&sync_timestamp=1608076808489&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.11.tgz", + "integrity": "sha1-H9dziu5dz1PD7P8k8dqcUR7Ee0I=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" } }, "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz?cache=0&sync_timestamp=1578980710093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.8.3.tgz", - "integrity": "sha1-uJS5R70AQ4HOY+odufCFR+kgq9U=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.10.tgz?cache=0&sync_timestamp=1607584582871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.10.tgz", + "integrity": "sha1-sViBejFltfqiBHgl36YZcN3MFs8=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.10" } }, "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha1-Hb6ba1XXjJtBg/yM3G4wzrg7cTQ=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha1-qne9A5bsgRTl4weH76eFmdh0qFU=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.7" } }, "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz", - "integrity": "sha1-f+OVibOcAWMxtrjD9EHo8LFBlJg=", + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604441102741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz", + "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.8.6.tgz", - "integrity": "sha1-ahO17srcNWkgRwc6ZOQpd7l2VKQ=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.1.tgz", + "integrity": "sha1-eVT+xx9bMsSOSzA7Q3w0RT/XJHw=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.8.6", - "lodash": "^4.17.13" + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.10.tgz?cache=0&sync_timestamp=1607576932268&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha1-lMpOMG7hGn3W6fQoI+Ksa0mIHi0=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.10" } }, "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", "dev": true }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.8.3.tgz", - "integrity": "sha1-E5dyYH1RuT8j7/5yEFsxnSpMaWU=", + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha1-jE27+RYxT2BH3AXmoiFwdCODR/0=", "dev": true, "requires": { - "lodash": "^4.17.13" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha1-JzxgDYub9QBhQsHjWIfVVcEu3YY=", + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.11.tgz?cache=0&sync_timestamp=1608076803456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.12.11.tgz", + "integrity": "sha1-6lEWWPxmx5CPkjEG3YjgjRmX1g0=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" } }, - "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.6.tgz?cache=0&sync_timestamp=1582807511441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.8.6.tgz", - "integrity": "sha1-Wtp0T9WtcyA78dZ0WaJ9y6Z+/8g=", + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.1.tgz?cache=0&sync_timestamp=1602802634851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.12.1.tgz", + "integrity": "sha1-MkJ+WqYVR9OOsebq9f0UJv2tkTY=", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/types": "^7.12.1" } }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz", - "integrity": "sha1-f4EJkotNq0ZUB2mGr1dSMd62Oa4=", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz?cache=0&sync_timestamp=1578980712591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.8.3.tgz", - "integrity": "sha1-ManzAHD5E2inGCzwX4MXgQZfx6k=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.11.tgz?cache=0&sync_timestamp=1608076804774&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.11.tgz", + "integrity": "sha1-G0zEJEWGQ8R9NwIiI9oz126kYDo=", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.12.11" } }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=" + }, + "@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.11.tgz", + "integrity": "sha1-1my4t6Pn/kxpYrMgIKEx7PCEf08=", + "dev": true + }, "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz", - "integrity": "sha1-nb2yu1XvFKqgH+jJm2Kb1TUthhA=", + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.12.3.tgz", + "integrity": "sha1-MzIzn8TR+78cJ9eVjCfTRwjpkNk=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.8.4.tgz", - "integrity": "sha1-dU6z7nJ8Fl4KJA1sIH3nxFXzb3M=", + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.5.tgz", + "integrity": "sha1-Ghukp2jZtYMQ7aUWxEmRP+ZHEW4=", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.8.3.tgz", - "integrity": "sha1-KPFz0EIj6qpZvB1Dmjg25tEmV5c=", + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz", + "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.7.tgz", - "integrity": "sha1-e4+s+V0l/vlTSq1RxP/s3hph4mo=", - "dev": true + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.11.tgz?cache=0&sync_timestamp=1608076801657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.11.tgz", + "integrity": "sha1-nONZW810vFxGaQXobFNbiyUBHnk=" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha1-utMpxnCzgliXIbJ1QMfSiGAcbm8=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.12.1.tgz?cache=0&sync_timestamp=1602802638761&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha1-3GwRcOJ9isqZ/2X0klvQaxyQVQ4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha1-XgZlSvXNBLYIkVqtqbKmeIAERk4=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802520476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.8.3.tgz", - "integrity": "sha1-IVaGCrZcWr8GjD9nBCGEBBBmVD4=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz", + "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.1.tgz?cache=0&sync_timestamp=1602802624550&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha1-Q+tcKjSH7NmMXI6otf22midJstw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.1.tgz?cache=0&sync_timestamp=1602802622582&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha1-i5uPN2stiPXdd05NJKXMLjZ5ttQ=", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-decorators": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha1-2lIWsjipi1ih4F1oUhBLEPmnDWs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha1-1FQjtRdxTu3VYhqd/cA/qfTrJBw=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.1.tgz?cache=0&sync_timestamp=1602802623336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha1-8sSQ024bPJZZJBA0pdLNUCY6J1E=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz?cache=0&sync_timestamp=1602802623075&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha1-i/JT3oE5CZ/qGTspfSOp1AbvBWs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-61rjZhGN3KZ77Vg7U9dVTK2ZUbs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.12.1.tgz?cache=0&sync_timestamp=1602802329071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha1-3vm9A86g+bcig9rA7CLSicdpEGk=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-ne6WqxZQ7tiGRq6XNMoWesSpxck=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.1.tgz?cache=0&sync_timestamp=1602802625025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha1-zMJCGvZNOq5QtVinHO3pKaWrKUI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha1-4C8OobXcWdQB7Bb7gkZ59oPTMDw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha1-hoFPbnohN0yYDBDTi0ST5wP0o4k=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha1-tkbDrepfmIAMmrRRBaw00GzUpH8=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802514976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha1-Khg5WNQXdluerjNPR3WOXWqC4HI=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-async-generators": { @@ -374,13 +481,22 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802624701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha1-vLKXxTZueb663vUJVJzZOwTxmXg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.8.3.tgz", - "integrity": "sha1-jSwVqfGvYksAJflhaCqdU9MAG9o=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.1.tgz?cache=0&sync_timestamp=1602802624858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.12.1.tgz", + "integrity": "sha1-gai1NbKER2xBvm3gaFOogCuYxd0=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-dynamic-import": { @@ -392,6 +508,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", @@ -402,12 +527,39 @@ } }, "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha1-nZ01fMgYqnrnk1kXwSV/Z2d6CSY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.8.3.tgz", - "integrity": "sha1-UhsGyDxASA8eWLT9M7kuzrHW6pQ=", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -428,458 +580,515 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-transform-arrow-functions": { + "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha1-gndsLtDNnhpJlW2uuJYCTJRzuLY=", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.1.tgz?cache=0&sync_timestamp=1602802626493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha1-3WwLNXrBuxQtmFN0UKMZYl0T0qA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha1-gIP/yGrI53f74ktZZ8SyUh88srM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha1-Qwj60NlAnXHq+5sabuNfnWS2QIY=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha1-OEmknMKiLpdDy9a1KSbTAzcimvE=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha1-Q37sW3mbWFIHIISzrl72boNJ6KM=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha1-8qGjZb3itxEuCm3tkGf918B5Bdk=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha1-l9Ndq2aFekN8FmNYuR0JBQyGjzo=", + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.11.tgz?cache=0&sync_timestamp=1608074943321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.11.tgz", + "integrity": "sha1-g66SoQTbuTp9bG3RhE81EIPEa08=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.8.6.tgz?cache=0&sync_timestamp=1582806192447&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.8.6.tgz", - "integrity": "sha1-d1NER6R3y+WZWuSu4+OfvICQxG0=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.12.1.tgz?cache=0&sync_timestamp=1602802519287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.12.1.tgz", + "integrity": "sha1-ZeZQ/K3dPYjdzmfA+DSj1DajLbY=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha1-ltDSi3985OtbEguy4OlDNDyG+Bs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802627593&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha1-1oz2ybf4OKikFEutvpdUHqCQSFI=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha1-IN372eRnaQaxBW7mCviFkMx6qgs=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha1-uaVw/g0KjUYBFkE8tPl+jgiy+Ec=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha1-w8bsXuYSXGmTxcvKINyGIanqem4=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802515252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha1-odFsFIYoF7ZAnApnjW+Tc8qc2XU=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha1-jRLfMJqlN/JyiZxWXqF2jihuIfE=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha1-dFZhuropWsBuaGgieXpp+6osoig=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha1-WBptf1aXDga/UVYM1k9elHtw17c=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha1-sPLtNWuhvhQo7K8Sj/iiTwKDCuA=", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.8.6.tgz?cache=0&sync_timestamp=1582807505906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.8.6.tgz", - "integrity": "sha1-oFG9G0AsYa+Xon/1G0aDIcfCoIU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha1-B2QPKIZ+0W+VEcmciIKR9WCSHPo=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha1-J5NzyycyKqrWfCaD53bfxHGW7Ys=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha1-LsdiWMcP4IxtfaFUADpIBiDrpmc=", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha1-rvI5gj2RmU7Hto5VGTUl1229XcE=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha1-1zuAOiazcBfd+dO7j03Fi/uAb1c=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.1.tgz?cache=0&sync_timestamp=1602802629539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha1-SWA4YC2vFRSmTUPY4Xy7J1Xgw60=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha1-ZWBtRGFrUCJedvVXjzPFaKC4dqU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha1-MVQwCwJhhWZu67DA7X+EFf789vk=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha1-3yUXBuwzG9BYo0vdcmE5FfgpKKU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.12.1.tgz?cache=0&sync_timestamp=1602802521057&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha1-+kAxJFQmNseGz5tGCg/7tIqG5kg=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha1-2LvyIsHb42YfRA8vAMFum7fQ1CA=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.1.tgz?cache=0&sync_timestamp=1602802350800&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha1-Zj/qYg1ZPJPyFKRkzTmb9txoMIY=", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha1-WS1XjOBsUvW5iwL5E9ZT/+lyZho=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha1-61ohjWscaPPWIXuPosyC/sZUeQI=", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha1-oqcr/6ICrA4tBQav0JOcXsvEjGw=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha1-tAf1yWvg2fX4hGdJf6grMKw+h1M=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.12.1" } }, "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha1-YMwq5m2FyVq1QOs0urtkNNTHDEM=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.1.tgz?cache=0&sync_timestamp=1602802505443&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.1.tgz", + "integrity": "sha1-gAc/Au4bstNlw0FkkOCFyVdZ3sA=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha1-67ah56hv+paFi9asAQLWWUQmFyU=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.1.tgz?cache=0&sync_timestamp=1602802640327&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.1.tgz", + "integrity": "sha1-TqCGlrjS5lhB0MdwZIKwSL7RBm4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.8.7.tgz", - "integrity": "sha1-ZvovHeQSm04ER1CSI6xxvaSVU5U=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha1-0uljsDh3FlDJIu/1k3mclthTJV0=", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.8.7", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha1-QbyBIA1zCrtEVquLP71VN7Wa3s0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha1-Xkag3KK+4a2ChesFJ+arycN2cvg=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha1-Xwoo2EL2RiKB8GqWToi6jXq0l1M=", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha1-b9/IzH7cxCs2p8EhiMZ4fIc63Ng=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-transform-runtime": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.8.3.tgz", - "integrity": "sha1-wBU7wKU3XrwfFZHLfuoiOt6p8Wk=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.10.tgz?cache=0&sync_timestamp=1607569369088&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.12.10.tgz", + "integrity": "sha1-rw/e1OhGxLNweOjl0G3qxs2EhWI=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "resolve": "^1.8.1", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", "semver": "^5.5.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha1-KFRSFuAjqDLU06EYXtSSvP6sCMg=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha1-C/nKxVUPzgz98ENCD2YdZF/cdeM=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha1-nI/+gXD9+4ixFOy5ILgvtulf5eg=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.12.1.tgz?cache=0&sync_timestamp=1602802639374&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.12.1.tgz", + "integrity": "sha1-Un+fMRvk7H/cK3m7ife/iEs+Hh4=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha1-vnoSkPgdrnZ0dUUhmeH3bWF1sQA=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha1-VgIkYTqyOYdFOUjtIdCwsZP6f60=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha1-e/pHMrRV6mpDEwrcC6dn7A5AKoA=", + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha1-tD7ObtmnnAxxEZ9XbSme8J2UKEM=", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha1-7eQGIxXOCq+KZXqSCFjxovNfxBI=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.10.tgz?cache=0&sync_timestamp=1607569558495&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha1-3gHEyPllgL0A8YMHKw0Ozc8N7Es=", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha1-DO8247pz5cVyc+/7GC9GuRoeyq0=", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha1-UjK5+BzLBwcLfDw2xnobePGEVwk=", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/preset-env": { - "version": "7.3.4", - "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.3.4.tgz?cache=0&sync_timestamp=1583373395373&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.3.4.tgz", - "integrity": "sha1-iHzzi20jyC8ZtRNSmL2xYAYuM+E=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.3.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.3.4", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.3.4", - "@babel/plugin-transform-classes": "^7.3.4", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.2.0", - "@babel/plugin-transform-dotall-regex": "^7.2.0", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.2.0", - "@babel/plugin-transform-function-name": "^7.2.0", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/plugin-transform-modules-systemjs": "^7.3.4", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", - "@babel/plugin-transform-new-target": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.2.0", - "@babel/plugin-transform-parameters": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.3.4", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.2.0", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.2.0", - "browserslist": "^4.3.4", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.3.0" - } - }, - "@babel/register": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/@babel/register/download/@babel/register-7.0.0.tgz", - "integrity": "sha1-+mNLrhv6Qp9gYVt1T8Hx10Xt2Cc=", + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802516121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha1-zJZh9hOQ21xl4/66zO/Vxqw/rss=", "dev": true, "requires": { - "core-js": "^2.5.7", - "find-cache-dir": "^1.0.0", - "home-or-tmp": "^3.0.0", - "lodash": "^4.17.10", - "mkdirp": "^0.5.1", - "pirates": "^4.0.0", - "source-map-support": "^0.5.9" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/runtime": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.8.7.tgz?cache=0&sync_timestamp=1583373757080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.8.7.tgz", - "integrity": "sha1-j+/OmALbVIgbpZ+Quyhxm0mWMk0=", + "@babel/preset-env": { + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.11.tgz?cache=0&sync_timestamp=1608076805354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.11.tgz", + "integrity": "sha1-VdX3mBSHNlyT27yEUHscchXoV/k=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.11", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.11", + "core-js-compat": "^3.8.0", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz", + "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", "dev": true, "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.4.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.4.tgz", - "integrity": "sha1-6Wv2EqM2LRK7affo90/+qyXHrJE=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, - "@babel/runtime-corejs2": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.8.7.tgz?cache=0&sync_timestamp=1583373407579&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs2%2Fdownload%2F%40babel%2Fruntime-corejs2-7.8.7.tgz", - "integrity": "sha1-XGr8sz7xL6H422uRX/a17K9q+xE=", - "dev": true, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.5.tgz?cache=0&sync_timestamp=1604443606981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.5.tgz", + "integrity": "sha1-QQ5+SHRB4bNgwpvnFdhw2bmFiC4=", "requires": { - "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.4.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.4.tgz", - "integrity": "sha1-6Wv2EqM2LRK7affo90/+qyXHrJE=", - "dev": true - } } }, "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz", - "integrity": "sha1-hrIq8V+CjfsIZHT5ZNzD45xDzis=", + "version": "7.12.7", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz", + "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.8.6.tgz", - "integrity": "sha1-rP4MZOHNmRs+MuroE6brVklUtf8=", + "version": "7.12.10", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.10.tgz?cache=0&sync_timestamp=1607569332108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.10.tgz", + "integrity": "sha1-LR9AQei/QuoJnlstxI1qWUwAAXo=", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } + "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.8.7.tgz?cache=0&sync_timestamp=1583373407005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.8.7.tgz", - "integrity": "sha1-H8lynhrLsjN9W2l3pjl5tIGfXR0=", - "dev": true, + "version": "7.12.11", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.11.tgz", + "integrity": "sha1-qG5NceMKm27hAlkERsmGYliSg84=", "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, + "@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" + }, + "@element-plus/icons": { + "version": "0.0.11", + "resolved": "https://registry.npmmirror.com/@element-plus/icons/-/icons-0.0.11.tgz", + "integrity": "sha512-iKQXSxXu131Ai+I9Ymtcof9WId7kaXvB1+WRfAfpQCW7UiAMYgdNDqb/u0hgTo2Yq3MwC4MWJnNuTBEpG8r7+A==" + }, + "@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==" + }, + "@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" + }, + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "@fortawesome/fontawesome-free": { + "version": "5.15.1", + "resolved": "https://registry.npm.taobao.org/@fortawesome/fontawesome-free/download/@fortawesome/fontawesome-free-5.15.1.tgz", + "integrity": "sha1-zP723b5Z+P6PaUeD4dPriJAtxes=", + "dev": true + }, "@hapi/address": { "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz", "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", "dev": true }, @@ -891,13 +1100,13 @@ }, "@hapi/hoek": { "version": "8.5.1", - "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz", + "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1599008863490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", "dev": true }, "@hapi/joi": { "version": "15.1.1", - "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1603524515155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz", "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", "dev": true, "requires": { @@ -943,249 +1152,476 @@ "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", "dev": true }, - "@samverschueren/stream-to-observable": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/@samverschueren/stream-to-observable/download/@samverschueren/stream-to-observable-0.3.0.tgz", - "integrity": "sha1-7N9I1TLFjqR3rPyrgDSEJPjQZi8=", - "dev": true, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "@simonwep/pickr": { + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz", + "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", "requires": { - "any-observable": "^0.3.0" + "core-js": "^3.15.1", + "nanopop": "^2.1.0" + }, + "dependencies": { + "core-js": { + "version": "3.38.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.38.0.tgz", + "integrity": "sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug==" + } } }, "@soda/friendly-errors-webpack-plugin": { - "version": "1.7.1", - "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", - "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.8.0.tgz?cache=0&sync_timestamp=1607927399532&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40soda%2Ffriendly-errors-webpack-plugin%2Fdownload%2F%40soda%2Ffriendly-errors-webpack-plugin-1.8.0.tgz", + "integrity": "sha1-hHUdgqkwGdXJLAzw5FrFkIfNIkA=", "dev": true, "requires": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" + "chalk": "^2.4.2", + "error-stack-parser": "^2.0.2", + "string-width": "^2.0.0", + "strip-ansi": "^5" }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + } } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true } } }, - "@types/codemirror": { - "version": "0.0.71", - "resolved": "https://registry.npm.taobao.org/@types/codemirror/download/@types/codemirror-0.0.71.tgz", - "integrity": "sha1-hh8byzEAwKBkVnxUAPKYHPSujKc=", + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz", + "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=", + "dev": true + }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz?cache=0&sync_timestamp=1605052639708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz", + "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz", + "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=", + "dev": true, "requires": { - "@types/tern": "*" + "@types/connect": "*", + "@types/node": "*" } }, - "@types/estree": { - "version": "0.0.42", - "resolved": "https://registry.npm.taobao.org/@types/estree/download/@types/estree-0.0.42.tgz", - "integrity": "sha1-jQwfSAM57+2z5GBw4i3WPgQw3RE=" + "@types/connect": { + "version": "3.4.34", + "resolved": "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.34.tgz?cache=0&sync_timestamp=1607458904874&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.34.tgz", + "integrity": "sha1-FwpAIjptZmAG2TyhKK8r6x2bGQE=", + "dev": true, + "requires": { + "@types/node": "*" + } }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz?cache=0&sync_timestamp=1580841990603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fevents%2Fdownload%2F%40types%2Fevents-3.0.0.tgz", - "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=", - "dev": true + "@types/connect-history-api-fallback": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.3.tgz", + "integrity": "sha1-R3K3m4tTGF8PTJ3qsJI2uvdu47Q=", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/express": { + "version": "4.17.9", + "resolved": "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.9.tgz?cache=0&sync_timestamp=1605057477768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.9.tgz", + "integrity": "sha1-9fLfat1wP/KEKK3VK97IoQkbCng=", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.17", + "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.17.tgz?cache=0&sync_timestamp=1608052291315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.17.tgz", + "integrity": "sha1-a6AkZRZbbJw9jbOije9rFvybcPU=", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } }, "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz", - "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=", + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&sync_timestamp=1605053345113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", "dev": true, "requires": { - "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, - "@types/jquery": { - "version": "3.3.33", - "resolved": "https://registry.npm.taobao.org/@types/jquery/download/@types/jquery-3.3.33.tgz", - "integrity": "sha1-YdnL1ABP/N9s9+NHIKh6ViWn2Ok=", + "@types/http-proxy": { + "version": "1.17.4", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.4.tgz?cache=0&sync_timestamp=1605053586725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.4.tgz", + "integrity": "sha1-58kuPb4+E6p5lED/QubToXqdBFs=", + "dev": true, "requires": { - "@types/sizzle": "*" + "@types/node": "*" } }, - "@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&sync_timestamp=1591720889158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz", - "integrity": "sha1-3M5EMOZLRDuolF8CkPtWStW6xt0=" - }, - "@types/linkify-it": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/@types/linkify-it/download/@types/linkify-it-2.1.0.tgz", - "integrity": "sha1-6j3WTEgFWXMReQth6HLL0e0s2AY=" - }, - "@types/markdown-it": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/@types/markdown-it/download/@types/markdown-it-0.0.7.tgz", - "integrity": "sha1-dQcEhaPYrRHn3rgof0QwvhW/TTk=", + "@types/http-proxy-middleware": { + "version": "0.19.3", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy-middleware/download/@types/http-proxy-middleware-0.19.3.tgz?cache=0&sync_timestamp=1605053586886&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy-middleware%2Fdownload%2F%40types%2Fhttp-proxy-middleware-0.19.3.tgz", + "integrity": "sha1-suuW+8D5rHJQtdnExTqt4ElJfQM=", + "dev": true, "requires": { - "@types/linkify-it": "*" + "@types/connect": "*", + "@types/http-proxy": "*", + "@types/node": "*" } }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1605053861867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz", + "integrity": "sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA=", + "dev": true + }, + "@types/mime": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/@types/mime/download/@types/mime-2.0.3.tgz", + "integrity": "sha1-yJO3NyHbc2mZQ7/DZTsd63+qSjo=", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz", "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", "dev": true }, + "@types/minimist": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.1.tgz?cache=0&sync_timestamp=1604943486106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimist%2Fdownload%2F%40types%2Fminimist-1.2.1.tgz", + "integrity": "sha1-KD9mn/dte4Jg34q3pCYsyD2YglY=", + "dev": true + }, "@types/node": { - "version": "13.9.0", - "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-13.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.9.0.tgz", - "integrity": "sha1-W27np3+qzd195xkBfQvBL1L4FYk=", + "version": "14.14.14", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.14.tgz?cache=0&sync_timestamp=1608047832709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.14.tgz", + "integrity": "sha1-9/1fPMhSEwERn2ORDw+5ZcfXYa4=", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1605054783883&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", "dev": true }, "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz?cache=0&sync_timestamp=1580864548163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.2.tgz", - "integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=", + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz?cache=0&sync_timestamp=1605055096527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz", + "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", "dev": true }, - "@types/sizzle": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/@types/sizzle/download/@types/sizzle-2.3.2.tgz", - "integrity": "sha1-qBG4wY4rq6t9VCszZYh64uTZ3kc=" + "@types/qs": { + "version": "6.9.5", + "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz?cache=0&sync_timestamp=1605055106687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fqs%2Fdownload%2F%40types%2Fqs-6.9.5.tgz", + "integrity": "sha1-Q0cRvdSete5p2QwdZ8NUqajssYs=", + "dev": true }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/@types/strip-bom/download/@types/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz", + "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=", + "dev": true + }, + "@types/serve-static": { + "version": "1.13.8", + "resolved": "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.8.tgz?cache=0&sync_timestamp=1605657862811&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.8.tgz", + "integrity": "sha1-hREp1DRDPHCCFIV0/+wmPVgwnEY=", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", + "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", "dev": true }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npm.taobao.org/@types/strip-json-comments/download/@types/strip-json-comments-0.0.30.tgz", - "integrity": "sha1-mqMMBNshKpoGSdaub9UKzMQHSKE=", + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz?cache=0&sync_timestamp=1605057449125&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz", + "integrity": "sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ=", "dev": true }, - "@types/tern": { - "version": "0.23.3", - "resolved": "https://registry.npm.taobao.org/@types/tern/download/@types/tern-0.23.3.tgz", - "integrity": "sha1-S1RTjwSojJ/3neH2+U9XWn8zlGA=", + "@types/uglify-js": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.11.1.tgz?cache=0&sync_timestamp=1605057452755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.11.1.tgz", + "integrity": "sha1-l/8w5hoKpodsJwtfU4c34tarjOs=", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "@types/webpack": { + "version": "4.41.25", + "resolved": "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.25.tgz", + "integrity": "sha1-TTta7MTkQRezdigPv9LcNml5aMQ=", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "@types/webpack-dev-server": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.1.tgz", + "integrity": "sha1-+PTawdoibVML0VodXcNLI7p2bMs=", + "dev": true, + "requires": { + "@types/connect-history-api-fallback": "*", + "@types/express": "*", + "@types/http-proxy-middleware": "*", + "@types/serve-static": "*", + "@types/webpack": "*" + } + }, + "@types/webpack-sources": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.1.0.tgz", + "integrity": "sha1-iIKwvWLR4M5i8YPQ0Bty5ugujBA=", + "dev": true, "requires": { - "@types/estree": "*" + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } } }, "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz", - "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=", + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz?cache=0&sync_timestamp=1602851174430&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE=", "dev": true }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.0-rc.2.tgz", + "integrity": "sha1-ckY0H2ZufG5lsT2kIOLOhXFPu8o=", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.0.0-rc.5", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.0-rc.5.tgz?cache=0&sync_timestamp=1607773057378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-jsx-1.0.0-rc.5.tgz", + "integrity": "sha1-5EC+LQd17jgoy6LDigOxmpIXSGU=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.0-rc.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.1.2.tgz", - "integrity": "sha1-wKPm78Ai515CR7RIqPxrhvA+kcA=", + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851113524&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "html-tags": "^2.0.0", "lodash.kebabcase": "^4.1.1", "svg-tags": "^1.0.0" + }, + "dependencies": { + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + } } }, "@vue/babel-preset-app": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-3.12.1.tgz", - "integrity": "sha1-JMR3BS8HjzD9t3NRA7FN0fosv+E=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.9.tgz?cache=0&sync_timestamp=1607995430964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-app%2Fdownload%2F%40vue%2Fbabel-preset-app-4.5.9.tgz", + "integrity": "sha1-pO8YMKITAeT3fXzUoEVV2KAerzM=", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-decorators": "^7.1.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.4.0", - "@babel/preset-env": "^7.0.0 < 7.4.0", - "@babel/runtime": "^7.0.0", - "@babel/runtime-corejs2": "^7.2.0", - "@vue/babel-preset-jsx": "^1.0.0", - "babel-plugin-dynamic-import-node": "^2.2.0", - "babel-plugin-module-resolver": "3.2.0", - "core-js": "^2.6.5" + "@babel/core": "^7.11.0", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.11.0", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.0", + "@vue/babel-plugin-jsx": "^1.0.0-0", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.6.5", + "core-js-compat": "^3.6.5", + "semver": "^6.1.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, "@vue/babel-preset-jsx": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.2.tgz", - "integrity": "sha1-LhaetMIE6jfKZsLqhaiAv8mdTyA=", + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz?cache=0&sync_timestamp=1603806927648&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.2.4.tgz", + "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz?cache=0&sync_timestamp=1602851113182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz?cache=0&sync_timestamp=1603806850559&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-render-instance%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=", "dev": true, "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", - "@vue/babel-sugar-functional-vue": "^1.1.2", - "@vue/babel-sugar-inject-h": "^1.1.2", - "@vue/babel-sugar-v-model": "^1.1.2", - "@vue/babel-sugar-v-on": "^1.1.2" + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-functional-vue": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.1.2.tgz", - "integrity": "sha1-9+JPugnm8e5wEEVgqICAV1VfGpo=", + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929973472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-inject-h": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.1.2.tgz", - "integrity": "sha1-ilJ2ttji7Rb/yAeKrZQjYnTm7fA=", + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929885089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-v-model": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.1.2.tgz", - "integrity": "sha1-H/b9G4ACI/ycsehNzrXlLXN6gZI=", + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz", + "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "camelcase": "^5.0.0", "html-tags": "^2.0.0", "svg-tags": "^1.0.0" @@ -1196,17 +1632,23 @@ "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true } } }, "@vue/babel-sugar-v-on": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.1.2.tgz", - "integrity": "sha1-su+ZuPL6sJ++rSWq1w70Lhz1sTs=", + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz", + "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "camelcase": "^5.0.0" }, "dependencies": { @@ -1219,364 +1661,300 @@ } }, "@vue/cli-overlay": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-3.12.1.tgz", - "integrity": "sha1-vf3o9xI1YasG5OTGC4VMxQkvWrE=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.5.9.tgz?cache=0&sync_timestamp=1607995708025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.5.9.tgz", + "integrity": "sha1-OTQYttXq+GOPWZyTnLQlg4JX03w=", "dev": true }, "@vue/cli-plugin-babel": { - "version": "3.5.3", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-3.5.3.tgz", - "integrity": "sha1-bo3o9gkEvMGITb4Q7g1hfd2TrwQ=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.9.tgz?cache=0&sync_timestamp=1607993492631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.9.tgz", + "integrity": "sha1-oJmHVL3QjthAKnvvSU7LFs7hfpI=", "dev": true, "requires": { - "@babel/core": "^7.0.0", - "@vue/babel-preset-app": "^3.5.3", - "@vue/cli-shared-utils": "^3.5.1", - "babel-loader": "^8.0.5", - "webpack": ">=4 < 4.29" + "@babel/core": "^7.11.0", + "@vue/babel-preset-app": "^4.5.9", + "@vue/cli-shared-utils": "^4.5.9", + "babel-loader": "^8.1.0", + "cache-loader": "^4.1.0", + "thread-loader": "^2.1.3", + "webpack": "^4.0.0" } }, "@vue/cli-plugin-eslint": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-3.12.1.tgz", - "integrity": "sha1-MCxGOGfzjnkLuZbq/fcVnHgtyM8=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.5.9.tgz?cache=0&sync_timestamp=1607995816126&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-eslint%2Fdownload%2F%40vue%2Fcli-plugin-eslint-4.5.9.tgz", + "integrity": "sha1-fX+KSLjnPmsZ/i9Us5x4hQqasz0=", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.12.1", - "babel-eslint": "^10.0.1", - "eslint": "^4.19.1", - "eslint-loader": "^2.1.2", - "eslint-plugin-vue": "^4.7.1", + "@vue/cli-shared-utils": "^4.5.9", + "eslint-loader": "^2.2.1", "globby": "^9.2.0", + "inquirer": "^7.1.0", "webpack": "^4.0.0", "yorkie": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz?cache=0&sync_timestamp=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-4.19.1.tgz", - "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - } - }, - "eslint-plugin-vue": { - "version": "4.7.1", - "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-4.7.1.tgz?cache=0&sync_timestamp=1583662392429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-4.7.1.tgz", - "integrity": "sha1-yCm5/GJYLBiXtaC5Sv1E7MpRHmM=", - "dev": true, - "optional": true, - "requires": { - "vue-eslint-parser": "^2.0.3" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.3.tgz", - "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", - "dev": true, - "optional": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true, - "optional": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, - "@vue/cli-plugin-unit-jest": { - "version": "3.5.3", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-unit-jest/download/@vue/cli-plugin-unit-jest-3.5.3.tgz", - "integrity": "sha1-0R8Iedc/brcS30UHLZRw2Kh9CeU=", + "@vue/cli-plugin-router": { + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.9.tgz?cache=0&sync_timestamp=1607994046816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-router%2Fdownload%2F%40vue%2Fcli-plugin-router-4.5.9.tgz", + "integrity": "sha1-s9I6gIPSaoG9Cb+cjQEKPk5LE9A=", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.5.1", - "babel-jest": "^23.6.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", - "jest": "^23.6.0", - "jest-serializer-vue": "^2.0.2", - "jest-transform-stub": "^2.0.0", - "vue-jest": "^3.0.3" + "@vue/cli-shared-utils": "^4.5.9" } }, + "@vue/cli-plugin-vuex": { + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.9.tgz", + "integrity": "sha1-WujxUAx+KUBrAvrILM6uq4bB6Do=", + "dev": true + }, "@vue/cli-service": { - "version": "3.5.3", - "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-3.5.3.tgz", - "integrity": "sha1-B5sJBlrWWXIRkGxlwStYYgkmN/I=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.9.tgz?cache=0&sync_timestamp=1607994273937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.9.tgz", + "integrity": "sha1-PKMRKkQYPKrOQR1R0LamFuLhl7E=", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", "@soda/friendly-errors-webpack-plugin": "^1.7.1", - "@vue/cli-overlay": "^3.5.1", - "@vue/cli-shared-utils": "^3.5.1", - "@vue/component-compiler-utils": "^2.6.0", + "@soda/get-current-script": "^1.0.0", + "@types/minimist": "^1.2.0", + "@types/webpack": "^4.0.0", + "@types/webpack-dev-server": "^3.11.0", + "@vue/cli-overlay": "^4.5.9", + "@vue/cli-plugin-router": "^4.5.9", + "@vue/cli-plugin-vuex": "^4.5.9", + "@vue/cli-shared-utils": "^4.5.9", + "@vue/component-compiler-utils": "^3.1.2", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", - "acorn": "^6.1.0", - "acorn-walk": "^6.1.1", - "address": "^1.0.3", - "autoprefixer": "^9.4.8", - "cache-loader": "^2.0.1", - "case-sensitive-paths-webpack-plugin": "^2.2.0", - "chalk": "^2.4.2", - "clipboardy": "^1.2.3", - "cliui": "^4.1.0", - "copy-webpack-plugin": "^4.6.0", + "acorn": "^7.4.0", + "acorn-walk": "^7.1.1", + "address": "^1.1.2", + "autoprefixer": "^9.8.6", + "browserslist": "^4.12.0", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.3.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.5.3", "cssnano": "^4.1.10", "debug": "^4.1.1", - "dotenv": "^6.2.0", - "dotenv-expand": "^4.2.0", - "escape-string-regexp": "^1.0.5", - "file-loader": "^3.0.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", "fs-extra": "^7.0.1", - "globby": "^9.0.0", - "hash-sum": "^1.0.2", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", "html-webpack-plugin": "^3.2.0", "launch-editor-middleware": "^2.2.1", - "lodash.defaultsdeep": "^4.6.0", + "lodash.defaultsdeep": "^4.6.1", "lodash.mapvalues": "^4.6.0", "lodash.transform": "^4.6.0", - "mini-css-extract-plugin": "^0.5.0", - "minimist": "^1.2.0", - "ora": "^3.1.0", - "portfinder": "^1.0.20", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.5", + "pnp-webpack-plugin": "^1.6.4", + "portfinder": "^1.0.26", "postcss-loader": "^3.0.0", - "read-pkg": "^4.0.1", - "semver": "^5.6.0", - "slash": "^2.0.0", - "source-map-url": "^0.4.0", - "ssri": "^6.0.1", - "string.prototype.padend": "^3.0.0", - "terser-webpack-plugin": "^1.2.2", - "thread-loader": "^2.1.2", - "url-loader": "^1.1.2", - "vue-loader": "^15.6.4", - "webpack": ">=4 < 4.29", - "webpack-bundle-analyzer": "^3.0.4", - "webpack-chain": "^4.11.0", - "webpack-dev-server": "^3.2.0", - "webpack-merge": "^4.2.1", - "yorkie": "^2.0.0" + "ssri": "^7.1.0", + "terser-webpack-plugin": "^2.3.6", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.9.2", + "vue-loader-v16": "npm:vue-loader@^16.0.0-beta.7", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.8.0", + "webpack-chain": "^6.4.0", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2" }, "dependencies": { "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428108619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" } }, - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "terser-webpack-plugin": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881839307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz", + "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=", "dev": true, "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" } } } }, "@vue/cli-shared-utils": { - "version": "3.12.1", - "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-3.12.1.tgz", - "integrity": "sha1-vPB2KH3a3uu7l8anSN/p/1DsjfA=", + "version": "4.5.9", + "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.9.tgz?cache=0&sync_timestamp=1607992019644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.9.tgz", + "integrity": "sha1-SHzqS0KC9N/5B+59iruo3Q3QPM0=", "dev": true, "requires": { "@hapi/joi": "^15.0.1", - "chalk": "^2.4.1", + "chalk": "^2.4.2", "execa": "^1.0.0", "launch-editor": "^2.2.1", "lru-cache": "^5.1.1", "node-ipc": "^9.1.1", "open": "^6.3.0", "ora": "^3.4.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.7", - "semver": "^6.0.0", - "string.prototype.padstart": "^3.0.0" + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true + } + } + }, + "@vue/compiler-core": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/compiler-core/download/@vue/compiler-core-3.0.5.tgz", + "integrity": "sha1-puVMq+lTbnTGUTrNJknzEa8dQ6w=", + "dev": true, + "requires": { + "@babel/parser": "^7.12.0", + "@babel/types": "^7.12.0", + "@vue/shared": "3.0.5", + "estree-walker": "^2.0.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "@vue/compiler-dom": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/compiler-dom/download/@vue/compiler-dom-3.0.5.tgz", + "integrity": "sha1-eIWhPm0Y9k3ejrzuwFLtLBAmlsI=", + "dev": true, + "requires": { + "@vue/compiler-core": "3.0.5", + "@vue/shared": "3.0.5" + } + }, + "@vue/compiler-sfc": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/compiler-sfc/download/@vue/compiler-sfc-3.0.5.tgz", + "integrity": "sha1-OuCOYCRKcvr5WYNhh0+3vbWx03w=", + "dev": true, + "requires": { + "@babel/parser": "^7.12.0", + "@babel/types": "^7.12.0", + "@vue/compiler-core": "3.0.5", + "@vue/compiler-dom": "3.0.5", + "@vue/compiler-ssr": "3.0.5", + "@vue/shared": "3.0.5", + "consolidate": "^0.16.0", + "estree-walker": "^2.0.1", + "hash-sum": "^2.0.0", + "lru-cache": "^5.1.1", + "magic-string": "^0.25.7", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.32", + "postcss-modules": "^3.2.2", + "postcss-selector-parser": "^6.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "consolidate": { + "version": "0.16.0", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.16.0.tgz?cache=0&sync_timestamp=1599596863404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.16.0.tgz", + "integrity": "sha1-oRhkdokw8vGUMWYKZZBmaPX73BY=", + "dev": true, + "requires": { + "bluebird": "^3.7.2" + } }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } } }, + "@vue/compiler-ssr": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/compiler-ssr/download/@vue/compiler-ssr-3.0.5.tgz", + "integrity": "sha1-dmGtiRoL6UhybH960eQlJTxYe4M=", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.0.5", + "@vue/shared": "3.0.5" + } + }, "@vue/component-compiler-utils": { - "version": "2.6.0", - "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-2.6.0.tgz", - "integrity": "sha1-qkbSpvdkdECwuJMkNNIvEjceVDs=", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz", + "integrity": "sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0=", "dev": true, "requires": { "consolidate": "^0.15.1", @@ -1584,68 +1962,111 @@ "lru-cache": "^4.1.2", "merge-source-map": "^1.1.0", "postcss": "^7.0.14", - "postcss-selector-parser": "^5.0.0", - "prettier": "1.16.3", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", "source-map": "~0.6.1", "vue-template-es2015-compiler": "^1.9.0" }, "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "dev": true }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "dev": true, "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "prettier": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", - "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true } } }, "@vue/eslint-config-prettier": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz", - "integrity": "sha512-wFQmv45c3ige5EA+ngijq40YpVcIkAy0Lihupnsnd1Dao5CBbPyfCzqtejFLZX1EwH/kCJdpz3t6s+5wd3+KxQ==", + "resolved": "https://registry.npm.taobao.org/@vue/eslint-config-prettier/download/@vue/eslint-config-prettier-6.0.0.tgz", + "integrity": "sha1-rVkSswj0rkaEWOAqKwXbC50kZwA=", "dev": true, "requires": { "eslint-config-prettier": "^6.0.0" } }, "@vue/preload-webpack-plugin": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.1.tgz", - "integrity": "sha1-GHI1MNME9EMCHaIpLW7JUCgmEEo=", + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz", + "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=", "dev": true }, - "@vue/test-utils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npm.taobao.org/@vue/test-utils/download/@vue/test-utils-1.0.0-beta.29.tgz?cache=0&sync_timestamp=1583751388817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Ftest-utils%2Fdownload%2F%40vue%2Ftest-utils-1.0.0-beta.29.tgz", - "integrity": "sha1-yULPJeiRzwgbagMzK0rh70MHJvA=", - "dev": true, + "@vue/reactivity": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/reactivity/download/@vue/reactivity-3.0.5.tgz", + "integrity": "sha1-43ieTVI9hF+a4LTXcOK0VZR0L9I=", + "requires": { + "@vue/shared": "3.0.5" + }, + "dependencies": { + "@vue/shared": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/shared/download/@vue/shared-3.0.5.tgz", + "integrity": "sha1-wTHYi9ZxPMTZOzuxNy7bGYMiX/A=" + } + } + }, + "@vue/runtime-core": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/runtime-core/download/@vue/runtime-core-3.0.5.tgz", + "integrity": "sha1-2mMx1fMA1XlOng69yKi9cqnhmWI=", + "requires": { + "@vue/reactivity": "3.0.5", + "@vue/shared": "3.0.5" + }, + "dependencies": { + "@vue/shared": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/shared/download/@vue/shared-3.0.5.tgz", + "integrity": "sha1-wTHYi9ZxPMTZOzuxNy7bGYMiX/A=" + } + } + }, + "@vue/runtime-dom": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/runtime-dom/download/@vue/runtime-dom-3.0.5.tgz", + "integrity": "sha1-HOLJxEniarBpY9oAZAluiCp6iTU=", "requires": { - "dom-event-types": "^1.0.0", - "lodash": "^4.17.4" + "@vue/runtime-core": "3.0.5", + "@vue/shared": "3.0.5", + "csstype": "^2.6.8" + }, + "dependencies": { + "@vue/shared": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/shared/download/@vue/shared-3.0.5.tgz", + "integrity": "sha1-wTHYi9ZxPMTZOzuxNy7bGYMiX/A=" + } } }, + "@vue/shared": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/shared/download/@vue/shared-3.0.5.tgz", + "integrity": "sha1-wTHYi9ZxPMTZOzuxNy7bGYMiX/A=", + "dev": true + }, "@vue/web-component-wrapper": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", @@ -1653,175 +2074,178 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.7.11.tgz?cache=0&sync_timestamp=1580600103531&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.7.11.tgz", - "integrity": "sha1-uYhYLK+7Kwlei1VlJvMMkNBXys4=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz", + "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.7.11.tgz?cache=0&sync_timestamp=1580600093212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.7.11.tgz", - "integrity": "sha1-pp8K9lAuuaPARVVbGmEp09Py4xM=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.7.11.tgz?cache=0&sync_timestamp=1580600095518&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.7.11.tgz", - "integrity": "sha1-x7a7gQX4QDlRGis5zklPGTgYoyo=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", + "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.7.11.tgz?cache=0&sync_timestamp=1580600094393&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.7.11.tgz", - "integrity": "sha1-MSLUjcxslFbtmC3r4WyPNxAd85s=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz", + "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.7.11.tgz?cache=0&sync_timestamp=1580600150532&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.7.11.tgz", - "integrity": "sha1-z48QbnRmYqDaKb3vY1/NPRJINks=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz", + "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.11" + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.7.11.tgz?cache=0&sync_timestamp=1580600091792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.7.11.tgz", - "integrity": "sha1-3ziIKmJAgNA/dQP5Pj8XrFrAEYE=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz", + "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.7.11.tgz?cache=0&sync_timestamp=1580600151060&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.7.11.tgz", - "integrity": "sha1-2HTXIuUeYqwgJHaTXWScgC+g4gk=", - "dev": true + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", + "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.7.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha1-3ZoegX8cLrEFtM8QEwk8ufPJywY=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.7.11.tgz", - "integrity": "sha1-nJrEHs+fvP/8lvbSZ14t4zgR5oo=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", + "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.7.11.tgz", - "integrity": "sha1-yVg562N1ejGICq7HtlEtQZGsZAs=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz", + "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.7.11.tgz?cache=0&sync_timestamp=1580600096686&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.7.11.tgz", - "integrity": "sha1-1yZ6HunEWU/T9+NymIGOxlaH22M=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz", + "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", "dev": true, "requires": { - "@xtuc/long": "4.2.1" + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.7.11.tgz?cache=0&sync_timestamp=1580600100063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.7.11.tgz", - "integrity": "sha1-Btchjqn9yUpnk6qSIIFg2z0m7oI=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", + "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.7.11.tgz?cache=0&sync_timestamp=1580600102353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.7.11.tgz", - "integrity": "sha1-jHTKR01PlR0B266b1wgU7iKoIAU=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", + "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.7.11.tgz?cache=0&sync_timestamp=1580600104620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.7.11.tgz", - "integrity": "sha1-m7upQvIjdWhqb7dZr816ycRdoag=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", + "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.7.11.tgz?cache=0&sync_timestamp=1580600101082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.7.11.tgz", - "integrity": "sha1-szHo5874+OLwB9QsOjagWAp9bKc=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", + "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.7.11.tgz?cache=0&sync_timestamp=1580600149379&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.7.11.tgz", - "integrity": "sha1-bj0g+mo1GfawhO+Tka1YIR77Cho=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz", + "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.7.11.tgz?cache=0&sync_timestamp=1580600149981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.7.11.tgz", - "integrity": "sha1-Jb0RdWLKjAAnIP+BFu+QctnKhpw=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", + "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.7.11.tgz?cache=0&sync_timestamp=1580600105652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.7.11.tgz", - "integrity": "sha1-xCRbbeJCy1CizJUBdP2/ZceNeBM=", + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", + "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, "@xtuc/ieee754": { @@ -1831,26 +2255,9 @@ "dev": true }, "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.1.tgz", - "integrity": "sha1-XIXWYvdvodNFdXZsXc1mFavNMNg=", - "dev": true - }, - "JSV": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/JSV/download/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" - }, - "abab": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.3.tgz", - "integrity": "sha1-Yj4gdeAustPyR15J+ZyRhGRnkHo=", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", "dev": true }, "accepts": { @@ -1864,61 +2271,21 @@ } }, "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", - "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "version": "6.4.2", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.2.tgz", + "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=", "dev": true }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha1-kBzu5Mf6rvfgetKkfokGddpQong=", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-globals%2Fdownload%2Facorn-globals-4.3.4.tgz", - "integrity": "sha1-n6GSat3BHJcwjE5m163Q1Awycuc=", - "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - } - } - }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "optional": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true, - "optional": true - } - } + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz", + "integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=", + "dev": true }, "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz", - "integrity": "sha1-Ejy487hMIXHx9/slJhWxx4prGow=", + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz", + "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", "dev": true }, "address": { @@ -1928,18 +2295,27 @@ "dev": true }, "adler-32": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/adler-32/download/adler-32-1.2.0.tgz", - "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "version": "1.3.0", + "resolved": "https://r2.cnpmjs.org/adler-32/-/adler-32-1.3.0.tgz", + "integrity": "sha512-f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==", "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" + "printj": "~1.2.2" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.0.tgz?cache=0&sync_timestamp=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.0.tgz", - "integrity": "sha1-BtYLlth7hFSlrauobnhU2mKdtLc=", + "version": "6.12.6", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1608145983865&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1950,14 +2326,15 @@ }, "ajv-errors": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz?cache=0&sync_timestamp=1608064310528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz", "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", "dev": true }, "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.4.1.tgz", - "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=" + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1608059810829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "dev": true }, "alphanum-sort": { "version": "1.0.2", @@ -1965,12 +2342,6 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", @@ -1978,10 +2349,21 @@ "dev": true }, "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", - "dev": true + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz", + "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz?cache=0&sync_timestamp=1606468796224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.11.0.tgz", + "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", + "dev": true + } + } }, "ansi-html": { "version": "0.0.7", @@ -1990,49 +2372,89 @@ "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" - }, - "any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/any-observable/download/any-observable-0.3.0.tgz", - "integrity": "sha1-r5M0deWAamfQ198JDdXovvZdEZs=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ant-design-vue": { + "version": "4.0.0-rc.6", + "resolved": "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.0.0-rc.6.tgz", + "integrity": "sha512-j+GAhgC1p1+nmQVbaEeY2miZ1h+8jBLlxTESX93MwcshVaYTkZNhiyddtl92VvEDJTedzuX+1oT3TP5wG/+tHg==", + "requires": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-vue": "^6.1.0", + "@babel/runtime": "^7.10.5", + "@ctrl/tinycolor": "^3.5.0", + "@emotion/hash": "^0.9.0", + "@emotion/unitless": "^0.8.0", + "@simonwep/pickr": "~1.8.0", + "array-tree-filter": "^2.1.0", + "async-validator": "^4.0.0", + "csstype": "^3.1.1", + "dayjs": "^1.10.5", + "dom-align": "^1.12.1", + "dom-scroll-into-view": "^2.0.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.15", + "resize-observer-polyfill": "^1.5.1", + "scroll-into-view-if-needed": "^2.2.25", + "shallow-equal": "^1.0.0", + "stylis": "^4.1.3", + "throttle-debounce": "^5.0.0", + "vue-types": "^3.0.0", + "warning": "^4.0.0" + }, + "dependencies": { + "@ant-design/icons-vue": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz", + "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==", "requires": { - "remove-trailing-separator": "^1.0.1" + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-svg": "^4.2.1" } + }, + "async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" } } }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fappend-transform%2Fdownload%2Fappend-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "aproba": { @@ -2042,25 +2464,16 @@ "dev": true }, "arch": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.1.1.tgz", - "integrity": "sha1-j1wnMao1owkpIhuwZA7tZRdeyE4=", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.2.0.tgz", + "integrity": "sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE=", "dev": true }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", - "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -2083,35 +2496,16 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/array-each/download/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/array-slice/download/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=", - "dev": true + "array-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" }, "array-union": { "version": "1.0.2", @@ -2134,12 +2528,6 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", @@ -2150,14 +2538,23 @@ } }, "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", - "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", + "version": "5.4.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", + "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "assert": { @@ -2178,7 +2575,7 @@ }, "util": { "version": "0.10.3", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1588238435623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -2220,12 +2617,6 @@ "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", "dev": true }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", @@ -2233,12 +2624,9 @@ "dev": true }, "async-validator": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1575620599372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz", - "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", - "requires": { - "babel-runtime": "6.x" - } + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-3.5.2.tgz", + "integrity": "sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==" }, "asynckit": { "version": "0.4.0", @@ -2253,18 +2641,18 @@ "dev": true }, "autoprefixer": { - "version": "9.7.4", - "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.7.4.tgz", - "integrity": "sha1-+L8+BnB9BH8GQdh67oz7F0sqU3g=", + "version": "9.8.6", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz?cache=0&sync_timestamp=1607413393711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz", + "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=", "dev": true, "requires": { - "browserslist": "^4.8.3", - "caniuse-lite": "^1.0.30001020", - "chalk": "^2.4.2", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.26", - "postcss-value-parser": "^4.0.2" + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" } }, "aws-sign2": { @@ -2274,640 +2662,186 @@ "dev": true }, "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz?cache=0&sync_timestamp=1578959055063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.9.1.tgz", - "integrity": "sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4=", + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101647749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz", + "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", "dev": true }, "axios": { - "version": "0.18.1", - "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.18.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.18.1.tgz", - "integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=", - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, + "version": "0.21.1", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.1.tgz?cache=0&sync_timestamp=1608611162952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.21.1.tgz", + "integrity": "sha1-IlY0gZYvTWvemnbVFu8OXTwJsrg=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "follow-redirects": "^1.10.0" } }, - "babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha1-laSS3dkPm06aSh2hTrM1uHtjTs4=", - "dev": true - }, "babel-eslint": { - "version": "10.0.1", - "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.0.1.tgz", - "integrity": "sha1-kZaB3AmWFM19MdRciQhpUJKh+u0=", + "version": "10.1.0", + "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1600349064486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz", + "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "^1.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - } + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz", + "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" } }, - "babel-helper-vue-jsx-merge-props": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=" - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587495874530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "object.assign": "^4.1.0" } }, - "babel-jest": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/babel-jest/download/babel-jest-23.6.0.tgz?cache=0&sync_timestamp=1579654876842&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-jest%2Fdownload%2Fbabel-jest-23.6.0.tgz", - "integrity": "sha1-pkQjI2ZVeiJAoMCD2msleGGFovE=", - "dev": true, - "requires": { - "babel-plugin-istanbul": "^4.1.6", - "babel-preset-jest": "^23.2.0" - } + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz", - "integrity": "sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs=", + "base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "dev": true, "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1581538411621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "is-descriptor": "^1.0.0" } }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { - "p-try": "^2.0.0" + "kind-of": "^6.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { - "p-limit": "^2.0.0" + "kind-of": "^6.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { - "find-up": "^3.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz", + "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", + "dev": true }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha1-8A9Qe9qjw+P/bn5emNkKesq5b38=", + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "object.assign": "^4.1.0" + "tweetnacl": "^0.14.3" } }, - "babel-plugin-istanbul": { - "version": "4.1.6", - "resolved": "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha1-NsWbIZLvzoHFs3gyG3QXWt0cmkU=", + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", "dev": true, "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "find-up": "^2.1.0", - "istanbul-lib-instrument": "^1.10.1", - "test-exclude": "^4.2.1" + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" } }, - "babel-plugin-jest-hoist": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-jest-hoist%2Fdownload%2Fbabel-plugin-jest-hoist-23.2.0.tgz", - "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", "dev": true }, - "babel-plugin-module-resolver": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-3.2.0.tgz", - "integrity": "sha1-3fpeMB47mqEthSqZefGLN4gf9ac=", + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299514499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", + "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", "dev": true, + "optional": true, "requires": { - "find-babel-config": "^1.1.0", - "glob": "^7.1.2", - "pkg-up": "^2.0.0", - "reselect": "^3.0.1", - "resolve": "^1.4.0" + "file-uri-to-path": "1.0.0" } }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", "dev": true }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.3.tgz", + "integrity": "sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms=", + "dev": true }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-preset-jest": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-23.2.0.tgz", - "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^23.2.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.4.18.tgz", - "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", - "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bfj": { - "version": "6.1.2", - "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", - "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", - "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", - "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", "dev": true, "requires": { "bytes": "3.1.0", @@ -2924,13 +2858,19 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", @@ -2969,7 +2909,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz?cache=0&sync_timestamp=1601898189928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, "requires": { @@ -3012,29 +2952,6 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz", - "integrity": "sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY=", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz?cache=0&sync_timestamp=1580943346382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", @@ -3073,28 +2990,49 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz", + "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", "dev": true, "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz", + "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", "dev": true, "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + } } }, "browserify-zlib": { @@ -3107,28 +3045,21 @@ } }, "browserslist": { - "version": "4.9.1", - "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.9.1.tgz", - "integrity": "sha1-Af+5yjGhrvdngSj8aiJTMWqnKHw=", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001030", - "electron-to-chromium": "^1.3.363", - "node-releases": "^1.1.50" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/bser/download/bser-2.1.1.tgz?cache=0&sync_timestamp=1571761384718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbser%2Fdownload%2Fbser-2.1.1.tgz", - "integrity": "sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=", + "version": "4.16.0", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.0.tgz?cache=0&sync_timestamp=1607665649211&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.0.tgz", + "integrity": "sha1-QQJ3YnUAvjyyihv+A3WG++35SIs=", "dev": true, "requires": { - "node-int64": "^0.4.0" + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" } }, "buffer": { "version": "4.9.2", - "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1606098100352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", "dev": true, "requires": { @@ -3137,32 +3068,10 @@ "isarray": "^1.0.0" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz", - "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", "dev": true }, "buffer-indexof": { @@ -3171,6 +3080,12 @@ "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", "dev": true }, + "buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz", + "integrity": "sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM=", + "dev": true + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", @@ -3190,9 +3105,9 @@ "dev": true }, "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.3.tgz", - "integrity": "sha1-vpmruk4b9d9GHNWiwQcfxDJXM5A=", + "version": "12.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594428108619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", + "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", "dev": true, "requires": { "bluebird": "^3.5.5", @@ -3210,29 +3125,6 @@ "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", - "dev": true - } } }, "cache-base": { @@ -3253,29 +3145,26 @@ } }, "cache-loader": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-2.0.1.tgz", - "integrity": "sha1-V1j0GmLXwjlB48PHAW5vrrA6ywc=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz", + "integrity": "sha1-mUjK41OuwKH8ser9ojAIFuyFOH4=", "dev": true, "requires": { - "loader-utils": "^1.1.0", + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", "mkdirp": "^0.5.1", - "neo-async": "^2.6.0", - "normalize-path": "^3.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.0.tgz?cache=0&sync_timestamp=1604117087261&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.0.tgz", + "integrity": "sha1-JBJwVLs/m9y0sfuCQYGGBy93uM4=", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" } }, "call-me-maybe": { @@ -3291,36 +3180,26 @@ "dev": true, "requires": { "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } } }, "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, - "optional": true, "requires": { - "callsites": "^0.2.0" + "caller-callsite": "^2.0.0" } }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true, - "optional": true + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true }, "camel-case": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1606867359182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { @@ -3329,27 +3208,10 @@ } }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz", + "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", + "dev": true }, "caniuse-api": { "version": "3.0.0", @@ -3364,20 +3226,11 @@ } }, "caniuse-lite": { - "version": "1.0.30001033", - "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001033.tgz", - "integrity": "sha1-YMMo+1aGDeYPmiy0GcMfuAWHy6A=", + "version": "1.0.30001439", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "dev": true }, - "capture-exit": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/capture-exit/download/capture-exit-1.2.0.tgz", - "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", - "dev": true, - "requires": { - "rsvp": "^3.3.3" - } - }, "case-sensitive-paths-webpack-plugin": { "version": "2.3.0", "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz", @@ -3391,68 +3244,38 @@ "dev": true }, "cfb": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/cfb/download/cfb-1.1.3.tgz", - "integrity": "sha1-Bd5oFiWcjovDJxOrqQVgjuOF32Y=", + "version": "1.2.1", + "resolved": "https://r2.cnpmjs.org/cfb/-/cfb-1.2.1.tgz", + "integrity": "sha512-wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==", "requires": { - "adler-32": "~1.2.0", - "commander": "^2.16.0", + "adler-32": "~1.3.0", "crc-32": "~1.2.0", - "printj": "~1.1.2" + "printj": "~1.3.0" + }, + "dependencies": { + "printj": { + "version": "1.3.1", + "resolved": "https://r.cnpmjs.org/printj/-/printj-1.3.1.tgz", + "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==" + } } }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - } - } - }, - "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/change-case/download/change-case-3.1.0.tgz", - "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" } }, "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz?cache=0&sync_timestamp=1562888139305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true, - "optional": true + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "dev": true }, "check-types": { "version": "8.0.3", @@ -3461,23 +3284,54 @@ "dev": true }, "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.5.tgz", - "integrity": "sha1-CuhDTZYigaX1bHKGnnnLbZ2GrU0=", + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", + "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "chownr": { @@ -3511,13 +3365,6 @@ "safe-buffer": "^5.0.1" } }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", - "dev": true, - "optional": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", @@ -3558,6 +3405,12 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1605702369164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "dev": true + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-cursor%2Fdownload%2Fcli-cursor-2.1.0.tgz", @@ -3567,74 +3420,86 @@ "restore-cursor": "^2.0.0" } }, - "cli-spinners": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.2.0.tgz", - "integrity": "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=", - "dev": true - }, - "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-truncate%2Fdownload%2Fcli-truncate-0.2.1.tgz", - "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "cli-highlight": { + "version": "2.1.9", + "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.9.tgz?cache=0&sync_timestamp=1606814157980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.9.tgz", + "integrity": "sha1-T07LBTJtcNVtS0JJ+r+acPsAJJc=", "dev": true, "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" + "chalk": "^4.0.0", + "highlight.js": "^10.0.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^15.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "color-convert": "^2.0.1" } }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "has-flag": "^4.0.0" } } } }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.5.0.tgz?cache=0&sync_timestamp=1602505897921&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.5.0.tgz", + "integrity": "sha1-EnY+RyUb+VHLdcIB36WP8byy0Ec=", + "dev": true + }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", "dev": true }, "clipboard": { "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.4.tgz?cache=0&sync_timestamp=1583389652647&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.4.tgz", "integrity": "sha1-g22v1mzw/qXXHOXVsL9ulYAJES0=", "requires": { "good-listener": "^1.2.2", @@ -3643,50 +3508,36 @@ } }, "clipboardy": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-1.2.3.tgz", - "integrity": "sha1-BSY2G/eHJMHyC+JI1CjjZUM8B+8=", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz", + "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=", "dev": true, "requires": { - "arch": "^2.1.0", - "execa": "^0.8.0" + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" }, "dependencies": { - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "is-docker": "^2.0.0" } } } }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, "clone": { @@ -3706,12 +3557,6 @@ "shallow-clone": "^3.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, "coa": { "version": "2.0.2", "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", @@ -3723,31 +3568,10 @@ "q": "^1.1.2" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "codemirror": { - "version": "5.45.0", - "resolved": "https://registry.npm.taobao.org/codemirror/download/codemirror-5.45.0.tgz", - "integrity": "sha1-2167s79EAoxoQFPzlU0BHvzsJ60=" - }, "codepage": { - "version": "1.14.0", - "resolved": "https://registry.npm.taobao.org/codepage/download/codepage-1.14.0.tgz", - "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", - "requires": { - "commander": "~2.14.1", - "exit-on-epipe": "~1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.14.1", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.14.1.tgz", - "integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao=" - } - } + "version": "1.15.0", + "resolved": "https://r2.cnpmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" }, "collection-visit": { "version": "1.0.0", @@ -3760,19 +3584,20 @@ } }, "color": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.2.tgz", - "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=", + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz", + "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", "dev": true, "requires": { "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "color-string": "^1.5.4" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -3780,18 +3605,25 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz", - "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=", + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz", + "integrity": "sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY=", "dev": true, "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz", + "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", @@ -3802,9 +3634,10 @@ } }, "commander": { - "version": "2.17.1", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz", - "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=" + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1607933281807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true }, "commondir": { "version": "1.0.1", @@ -3850,15 +3683,26 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, + "compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", @@ -3877,134 +3721,27 @@ "typedarray": "^0.0.6" } }, - "condense-newlines": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz", - "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-whitespace": "^0.3.0", - "kind-of": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz", - "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "connect": { - "version": "3.6.6", - "resolved": "https://registry.npm.taobao.org/connect/download/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - } - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", - "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz", - "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599596863404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz", + "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", "dev": true, "requires": { "bluebird": "^3.1.1" } }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/constant-case/download/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "dev": true, - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", @@ -4037,7 +3774,7 @@ }, "cookie": { "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz?cache=0&sync_timestamp=1587525873712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz", "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", "dev": true }, @@ -4068,40 +3805,64 @@ "dev": true }, "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=", + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz?cache=0&sync_timestamp=1608126698047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.2.tgz", + "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=", "dev": true, "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "webpack-log": "^2.0.0" }, "dependencies": { - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz", - "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", "dev": true, "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "globby": { @@ -4116,78 +3877,117 @@ "ignore": "^3.3.5", "pify": "^3.0.0", "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", - "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1581887711256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz", - "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", - "dev": true + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-5.3.0.tgz", - "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", "dev": true, "requires": { - "safe-buffer": "^5.1.1" + "find-up": "^3.0.0" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true } } }, "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=" + "version": "3.8.1", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.8.1.tgz?cache=0&sync_timestamp=1607215907966&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.8.1.tgz", + "integrity": "sha1-9RUjZorIopTRKFw7nbRAJf2mbUc=" + }, + "core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.8.1.tgz?cache=0&sync_timestamp=1607215923501&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.8.1.tgz", + "integrity": "sha1-jR3dNB1mC6YZTL4M5g9MeUyHo24=", + "dev": true, + "requires": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", + "dev": true + } + } }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cosmiconfig": { "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1572710769619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", "dev": true, "requires": { @@ -4210,22 +4010,37 @@ } }, "crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/crc-32/download/crc-32-1.2.0.tgz", - "integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=", + "version": "1.2.1", + "resolved": "https://r.cnpmjs.org/crc-32/-/crc-32-1.2.1.tgz", + "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", "requires": { "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" + "printj": "~1.3.1" + }, + "dependencies": { + "printj": { + "version": "1.3.1", + "resolved": "https://r.cnpmjs.org/printj/-/printj-1.3.1.tgz", + "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==" + } } }, "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", - "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", + "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", "dev": true, "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "create-hash": { @@ -4256,11 +4071,14 @@ } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } @@ -4284,25 +4102,10 @@ "randomfill": "^1.0.3" } }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz", - "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/crypto-js/download/crypto-js-4.0.0.tgz", + "integrity": "sha1-KQSrJnep0EKFai6i74DekuSjbcw=" }, "css-color-names": { "version": "0.0.4", @@ -4312,7 +4115,7 @@ }, "css-declaration-sorter": { "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1582155815799&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1604519271783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", "dev": true, "requires": { @@ -4322,8 +4125,9 @@ }, "css-loader": { "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1592056820460&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1604507120816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz", "integrity": "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=", + "dev": true, "requires": { "camelcase": "^5.3.1", "cssesc": "^3.0.0", @@ -4340,70 +4144,23 @@ "semver": "^6.3.0" }, "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz?cache=0&sync_timestamp=1593878551850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz", - "integrity": "sha1-GMWvOKER3etPJpe9eNaKvByr1wY=", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - }, - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.32.tgz", - "integrity": "sha1-QxDW7jRwU9o0M9sr5JKIPWLOxZ0=", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", - "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=" - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz", - "integrity": "sha1-FxUfdtjq5n+793lgwzxnatn078c=", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "requires": { - "has-flag": "^3.0.0" - } + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true } } }, "css-select": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1607468308878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", "dev": true, "requires": { @@ -4420,31 +4177,34 @@ "dev": true }, "css-tree": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.28.tgz?cache=0&sync_timestamp=1575583542748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.28.tgz", - "integrity": "sha1-joloGQ2IbJR3vI1h6W9hrz9/+n8=", + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1606404040784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", "dev": true, "requires": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } } }, - "css-url-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/css-url-regex/download/css-url-regex-1.1.0.tgz", - "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", - "dev": true - }, "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.2.1.tgz", - "integrity": "sha1-9KjxJCEGRiG0VnVeNKA6LCLfXaE=", + "version": "3.4.2", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1602570970779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", + "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", "dev": true }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=" + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true }, "cssnano": { "version": "4.1.10", @@ -4460,7 +4220,7 @@ }, "cssnano-preset-default": { "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz?cache=0&sync_timestamp=1603212703768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.7.tgz", "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", "dev": true, "requires": { @@ -4524,49 +4284,42 @@ "dev": true }, "csso": { - "version": "3.5.1", - "resolved": "https://registry.npm.taobao.org/csso/download/csso-3.5.1.tgz", - "integrity": "sha1-e564vmFiiXPBsmHhadLwJACOdYs=", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408790645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz", + "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.29" + "css-tree": "^1.1.2" }, "dependencies": { "css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.29.tgz?cache=0&sync_timestamp=1575583542748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.29.tgz", - "integrity": "sha1-P6nU7zFCy9HDAedmTB81K9gvWjk=", + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.2.tgz?cache=0&sync_timestamp=1606404040784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.1.2.tgz", + "integrity": "sha1-muOTtdr9fa6KYiR1yux409j717U=", "dev": true, "requires": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" + "mdn-data": "2.0.14", + "source-map": "^0.6.1" } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.14.tgz", + "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true } } }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npm.taobao.org/cssom/download/cssom-0.3.8.tgz?cache=0&sync_timestamp=1573719337707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssom%2Fdownload%2Fcssom-0.3.8.tgz", - "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", - "dev": true - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/cssstyle/download/cssstyle-1.4.0.tgz", - "integrity": "sha1-nTEyginTxWXGHlhrAgQaKPzNzPE=", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } + "csstype": { + "version": "2.6.14", + "resolved": "https://registry.npm.taobao.org/csstype/download/csstype-2.6.14.tgz?cache=0&sync_timestamp=1605258867356&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.14.tgz", + "integrity": "sha1-AEgipAUDRbVa1NzAC+HZzy9Clt4=" }, "cyclist": { "version": "1.0.1", @@ -4576,61 +4329,32 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073333186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { "assert-plus": "^1.0.0" } }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/data-urls/download/data-urls-1.1.0.tgz?cache=0&sync_timestamp=1577997348324&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdata-urls%2Fdownload%2Fdata-urls-1.1.0.tgz", - "integrity": "sha1-Fe4Fgrql4iu1nHcUDaj5x2lju/4=", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-7.1.0.tgz?cache=0&sync_timestamp=1578023109671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-7.1.0.tgz", - "integrity": "sha1-wsSS8eymEpiO/T0iZr4bn8YXDQY=", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-1.30.1.tgz", - "integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=", - "dev": true - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true + "dayjs": { + "version": "1.11.12", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==" }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decode-uri-component": { "version": "0.2.0", @@ -4638,15 +4362,9 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, "deep-equal": { "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1606859943631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", "dev": true, "requires": { @@ -4667,66 +4385,124 @@ "deepmerge": { "version": "1.5.2", "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", - "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=" + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "dev": true }, "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "version": "5.0.5", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz", + "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", "dev": true, "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "execa": "^3.3.0" }, "dependencies": { "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", + "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" } }, "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", "dev": true, "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz?cache=0&sync_timestamp=1560955759606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1574441322626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - } - }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", @@ -4788,7 +4564,7 @@ }, "del": { "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076741536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", "dev": true, "requires": { @@ -4822,10 +4598,10 @@ } } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", "dev": true } } @@ -4841,12 +4617,6 @@ "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", @@ -4869,39 +4639,12 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/detect-file/download/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, "detect-node": { "version": "2.0.4", "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", "dev": true }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", - "dev": true - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", @@ -4911,6 +4654,14 @@ "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "dir-glob": { @@ -4948,15 +4699,19 @@ } }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", "dev": true, - "optional": true, "requires": { "esutils": "^2.0.2" } }, + "dom-align": { + "version": "1.12.4", + "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz", + "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==" + }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", @@ -4966,15 +4721,14 @@ "utila": "~0.4" } }, - "dom-event-types": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/dom-event-types/download/dom-event-types-1.0.0.tgz", - "integrity": "sha1-WDCgop4b+Df+UKcM2ApZcjKBPK4=", - "dev": true + "dom-scroll-into-view": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", + "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" }, "dom-serializer": { "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1573447907918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1607193111136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", "dev": true, "requires": { @@ -4983,43 +4737,28 @@ }, "dependencies": { "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz", - "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=", - "dev": true - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz", - "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=", + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.1.0.tgz?cache=0&sync_timestamp=1606865969598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.1.0.tgz", + "integrity": "sha1-qFHAgKbRw9lDRK7RUdmfZp7fWF4=", "dev": true } } }, "domain-browser": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1575879334171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", "dev": true }, "domelementtype": { "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1606865969598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", "dev": true }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz", - "integrity": "sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA=", - "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, "domhandler": { "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz?cache=0&sync_timestamp=1606872259940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz", "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", "dev": true, "requires": { @@ -5042,50 +4781,31 @@ "domelementtype": "1" } }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/dot-case/download/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz?cache=0&sync_timestamp=1572620518450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.2.0.tgz", - "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&sync_timestamp=1605778245141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz", + "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", "dev": true, "requires": { "is-obj": "^2.0.0" } }, "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-6.2.0.tgz?cache=0&sync_timestamp=1571190685588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdotenv%2Fdownload%2Fdotenv-6.2.0.tgz", - "integrity": "sha1-lBwEEFNdlCyL7PKNPzV9vZ1HYGQ=", + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz?cache=0&sync_timestamp=1571190685588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdotenv%2Fdownload%2Fdotenv-8.2.0.tgz", + "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", "dev": true }, "dotenv-expand": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-4.2.0.tgz", - "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", "dev": true }, - "driver.js": { - "version": "0.9.5", - "resolved": "https://registry.npm.taobao.org/driver.js/download/driver.js-0.9.5.tgz", - "integrity": "sha1-7oqLan06Sbq29Vy14lBVg322zaQ=" - }, - "dropzone": { - "version": "5.5.1", - "resolved": "https://registry.npm.taobao.org/dropzone/download/dropzone-5.5.1.tgz", - "integrity": "sha1-BuL1E+YdaqNj1LVW8YV09Hz3uiY=" - }, "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", "dev": true }, "duplexify": { @@ -5101,9 +4821,9 @@ } }, "easy-stack": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz", - "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.1.tgz", + "integrity": "sha1-iv5CZGJpiMq7EfPHBMzQyDVBEGY=", "dev": true }, "ecc-jsbn": { @@ -5116,34 +4836,6 @@ "safer-buffer": "^2.1.0" } }, - "echarts": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.2.1.tgz", - "integrity": "sha1-mo6jsDNU+G+CTZdiXDNM8Wll7wM=", - "requires": { - "zrender": "4.0.7" - } - }, - "editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npm.taobao.org/editorconfig/download/editorconfig-0.15.3.tgz", - "integrity": "sha1-vvhMTnX7jcsM5c7o79UcFZmb78U=", - "dev": true, - "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - } - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", @@ -5157,34 +4849,29 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.373", - "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.373.tgz?cache=0&sync_timestamp=1583812992693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.373.tgz", - "integrity": "sha1-ZF3nocCTy2FOJxZzg0eBj5MJI/8=", - "dev": true - }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "version": "1.3.628", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.628.tgz?cache=0&sync_timestamp=1608143621573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.628.tgz", + "integrity": "sha1-vloU3fOkVd6HYnTITeCSZDmih6c=", "dev": true }, - "element-ui": { - "version": "2.13.0", - "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.0.tgz", - "integrity": "sha1-9rsE5bCnbqX2JGYES3dEB7pOvS0=", + "element-plus": { + "version": "1.0.2-beta.31", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-1.0.2-beta.31.tgz", + "integrity": "sha512-ujM/vLqh3LViUbWcACpmQb60FT4o/nE1nRmPTeMcVhcgML1+BA51woPG5FOmAF8AWFB1m73VGzfex3hCoC6vJA==", "requires": { - "async-validator": "~1.8.1", - "babel-helper-vue-jsx-merge-props": "^2.0.0", - "deepmerge": "^1.2.0", + "@popperjs/core": "^2.4.4", + "async-validator": "^3.4.0", + "dayjs": "1.x", + "lodash": "^4.17.20", + "mitt": "^2.1.0", "normalize-wheel": "^1.0.1", - "resize-observer-polyfill": "^1.5.0", - "throttle-debounce": "^1.0.1" + "resize-observer-polyfill": "^1.5.1" } }, "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz", - "integrity": "sha1-BcVnjXFzwEnYykM1UiJKSV0ON2I=", + "version": "6.5.3", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492754083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz", + "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -5194,18 +4881,27 @@ "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", "dev": true }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=" + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -5223,9 +4919,9 @@ } }, "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz?cache=0&sync_timestamp=1572993058578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.1.tgz", - "integrity": "sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1606945778512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz", + "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -5246,14 +4942,15 @@ } }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz", - "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=" + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.1.0.tgz?cache=0&sync_timestamp=1602898797807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.1.0.tgz", + "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU=", + "dev": true }, "errno": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz", + "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", "dev": true, "requires": { "prr": "~1.0.1" @@ -5278,22 +4975,23 @@ } }, "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.4.tgz", - "integrity": "sha1-467fGXBrIOfCWUw1/A1XYFp54YQ=", + "version": "1.18.0-next.1", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -5307,6 +5005,12 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567230854&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", @@ -5315,333 +5019,117 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.1.tgz?cache=0&sync_timestamp=1580954812183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.1.tgz", - "integrity": "sha1-ugHQyCeLXpWppFNQFCAmZZAnpFc=", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "optional": true - } - } + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "eslint": { - "version": "5.15.3", - "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-5.15.3.tgz", - "integrity": "sha1-x5w5CdyKf6NxT7NAwR4w/SUmuLU=", + "version": "6.8.0", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1607153145204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-6.8.0.tgz", + "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", + "ajv": "^6.10.0", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.12.0", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.11", + "lodash": "^4.17.14", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", + "optionator": "^0.8.3", "progress": "^2.0.0", "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", "table": "^5.2.3", - "text-table": "^0.2.0" + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz", - "integrity": "sha1-TGYGkXPW/daO2FI5/CViJhgrLr4=", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, "requires": { - "color-convert": "^1.9.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1562888139305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz?cache=0&sync_timestamp=1607413619483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz", + "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "type-fest": "^0.8.1" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "import-fresh": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.2.tgz?cache=0&sync_timestamp=1604255567620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.2.tgz", + "integrity": "sha1-/BKcFgxdaCNVB/QzGmuq0Ya9vD4=", "dev": true, "requires": { - "ms": "^2.1.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "dev": true }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-5.0.1.tgz?cache=0&sync_timestamp=1583168748616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-5.0.1.tgz", - "integrity": "sha1-XWUm+k/H8HiKXPdbFfMDI+L4H3o=", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", - "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", - "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz", - "integrity": "sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY=", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz?cache=0&sync_timestamp=1583819607980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-6.5.2.tgz", - "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz?cache=0&sync_timestamp=1567160849322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-2.0.1.tgz", - "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz", - "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz", - "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "ansi-regex": "^4.1.0" } }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz", - "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1606468796224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", + "dev": true } } }, "eslint-config-prettier": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz", - "integrity": "sha512-AtndijGte1rPILInUdHjvKEGbIV06NuvPrqlIEaEaWtbtvJh464mDeyGMdZEQMsGvC0ZVkiex1fSNcC4HAbRGg==", + "version": "6.15.0", + "resolved": "https://registry.npm.taobao.org/eslint-config-prettier/download/eslint-config-prettier-6.15.0.tgz?cache=0&sync_timestamp=1607205673337&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-prettier%2Fdownload%2Feslint-config-prettier-6.15.0.tgz", + "integrity": "sha1-f5P2y31FqS8VN6cOzAY2bhrG/tk=", "dev": true, "requires": { "get-stdin": "^6.0.0" @@ -5661,80 +5149,64 @@ } }, "eslint-plugin-prettier": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz", - "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==", + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-prettier/download/eslint-plugin-prettier-3.3.0.tgz?cache=0&sync_timestamp=1607910777157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.3.0.tgz", + "integrity": "sha1-YeKVNJplaI/6wLeAjvCoJEvdjUA=", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" } }, "eslint-plugin-vue": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-5.2.2.tgz?cache=0&sync_timestamp=1583662392429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-5.2.2.tgz", - "integrity": "sha1-hmAYI7dyG3C8ktVPFyjPwDs2KDw=", + "version": "7.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-7.3.0.tgz?cache=0&sync_timestamp=1608096201611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-7.3.0.tgz", + "integrity": "sha1-D68Pzw4bEFK/gA1N7kLWT1BnnLA=", "dev": true, "requires": { - "vue-eslint-parser": "^5.0.0" + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^7.3.2", + "vue-eslint-parser": "^7.3.0" }, "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz", - "integrity": "sha1-TGYGkXPW/daO2FI5/CViJhgrLr4=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-2.1.0.tgz", + "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", "dev": true, "requires": { - "ms": "^2.1.1" + "eslint-visitor-keys": "^1.1.0" } }, - "espree": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-4.1.0.tgz?cache=0&sync_timestamp=1583168748616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-4.1.0.tgz", - "integrity": "sha1-co1UUeD9FWwEOEp62J7VH/VOsl8=", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "yallist": "^4.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "vue-eslint-parser": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-5.0.0.tgz", - "integrity": "sha1-APTk2pTsl0uCGib/DtD3p4QCuKE=", + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.4.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.4.tgz", + "integrity": "sha1-J6qn0uTKdkUvmNOt0JOnLJQ+3Jc=", "dev": true, "requires": { - "debug": "^4.1.0", - "eslint-scope": "^4.0.0", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.1.0", - "esquery": "^1.0.1", - "lodash": "^4.17.11" + "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true } } }, "eslint-scope": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", "dev": true, "requires": { @@ -5744,7 +5216,7 @@ }, "eslint-utils": { "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-1.4.3.tgz", + "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz", "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", "dev": true, "requires": { @@ -5752,20 +5224,28 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz?cache=0&sync_timestamp=1565705523991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.1.0.tgz", - "integrity": "sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI=", + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1599829544231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", "dev": true }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz?cache=0&sync_timestamp=1583168748616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-3.5.4.tgz", - "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz?cache=0&sync_timestamp=1607144055171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.2.1.tgz", + "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", "dev": true, - "optional": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true + } } }, "esprima": { @@ -5775,21 +5255,37 @@ "dev": true }, "esquery": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.1.0.tgz", - "integrity": "sha1-xcC2bzg+dlZAT4azEzTXJSTt20g=", + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.3.1.tgz?cache=0&sync_timestamp=1587061209806&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz", + "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true + } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true + } } }, "estraverse": { @@ -5798,6 +5294,11 @@ "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", "dev": true }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz", + "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=" + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", @@ -5810,26 +5311,22 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, - "eve": { - "version": "git://github.com/adobe-webplatform/eve.git#eef80ed8d188423c2272746fb8ae5cc8dad84cb1", - "from": "git://github.com/adobe-webplatform/eve.git#eef80ed" - }, "event-pubsub": { "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz?cache=0&sync_timestamp=1606361501216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevent-pubsub%2Fdownload%2Fevent-pubsub-4.3.0.tgz", "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", "dev": true }, "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz?cache=0&sync_timestamp=1560950873670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.0.tgz", - "integrity": "sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs=", + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz", + "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", "dev": true }, "events": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz", - "integrity": "sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk=", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.2.0.tgz", + "integrity": "sha1-k7h8GPjvzUICpGGuxN/AVWtjk3k=", "dev": true }, "eventsource": { @@ -5851,22 +5348,14 @@ "safe-buffer": "^5.1.1" } }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.2.tgz", - "integrity": "sha1-Kl5//L19C6J1W97LFuWkJ9+97DY=", - "dev": true, - "requires": { - "merge": "^1.2.0" - } - }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", @@ -5874,16 +5363,10 @@ "strip-eof": "^1.0.0" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, "exit-on-epipe": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz", - "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI=" + "resolved": "https://r2.cnpmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" }, "expand-brackets": { "version": "2.1.4", @@ -5902,7 +5385,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -5926,97 +5409,12 @@ "requires": { "is-extendable": "^0.1.0" } - } - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz", - "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/expand-tilde/download/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/expect/download/expect-23.6.0.tgz?cache=0&sync_timestamp=1579654879185&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpect%2Fdownload%2Fexpect-23.6.0.tgz", - "integrity": "sha1-HgyNO6mlgch71x+5vIhi1ENCX5g=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "jest-diff": "^23.6.0", - "jest-get-type": "^22.1.0", - "jest-matcher-utils": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-regex-util": "^23.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } } } }, @@ -6060,17 +5458,17 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "qs": { @@ -6109,14 +5507,13 @@ } }, "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz", - "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", "dev": true, - "optional": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, @@ -6185,15 +5582,6 @@ } } }, - "extract-from-css": { - "version": "0.4.4", - "resolved": "https://registry.npm.taobao.org/extract-from-css/download/extract-from-css-0.4.4.tgz", - "integrity": "sha1-HqffLnx8brmSL6COitrqSG9vj5I=", - "dev": true, - "requires": { - "css": "^2.1.0" - } - }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", @@ -6201,19 +5589,20 @@ "dev": true }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.1.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.1.tgz", - "integrity": "sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ=" + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599651635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true }, "fast-diff": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "resolved": "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.2.0.tgz", + "integrity": "sha1-c+4RmC2Gyq95WYKNUZz+kn+sXwM=", "dev": true }, "fast-glob": { "version": "2.2.7", - "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1592290365180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz", "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", "dev": true, "requires": { @@ -6223,12 +5612,36 @@ "is-glob": "^4.0.0", "merge2": "^1.2.3", "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } } }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -6245,68 +5658,44 @@ "websocket-driver": ">=0.5.1" } }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.1.tgz", - "integrity": "sha1-/IT7OdJwnPP/bXQ3BhV7tXCKioU=", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz", - "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", + "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", "dev": true }, "figures": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz?cache=0&sync_timestamp=1581865437156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz?cache=0&sync_timestamp=1581865437156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", "dev": true, - "optional": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "^2.0.1" } }, "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-3.0.1.tgz?cache=0&sync_timestamp=1582135550059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-3.0.1.tgz", - "integrity": "sha1-+OC6C1mZGLUa3+RdZtHnca1WD6o=", + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816990383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz", + "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" } }, "file-saver": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.1.tgz", - "integrity": "sha1-f+IkKvHLxVminYF2B4qLVteB+nk=" + "version": "2.0.5", + "resolved": "https://r2.cnpmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, "file-uri-to-path": { "version": "1.0.0", @@ -6315,22 +5704,6 @@ "dev": true, "optional": true }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, "filesize": { "version": "3.6.1", "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", @@ -6377,103 +5750,51 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "find-babel-config": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz", - "integrity": "sha1-qbezF+tbmGDNqdVHQKjIM3oig6I=", - "dev": true, - "requires": { - "json5": "^0.5.1", - "path-exists": "^3.0.0" - } - }, "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "find-parent-dir": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/find-parent-dir/download/find-parent-dir-0.3.0.tgz", - "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", - "dev": true - }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/findup-sync/download/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/fined/download/fined-1.2.0.tgz", - "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "dev": true, "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/flagged-respawn/download/flagged-respawn-1.0.1.tgz", - "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=", - "dev": true - }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.4.tgz", - "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", + "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", "dev": true, - "optional": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "dependencies": { "rimraf": { @@ -6481,7 +5802,6 @@ "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "dev": true, - "optional": true, "requires": { "glob": "^7.1.3" } @@ -6489,9 +5809,9 @@ } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.1.tgz", - "integrity": "sha1-aeV8qo8OrLwoHS4stFjUb9tEngg=", + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz", + "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", "dev": true }, "flush-write-stream": { @@ -6504,19 +5824,10 @@ "readable-stream": "^2.3.6" } }, - "fn-name": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/fn-name/download/fn-name-2.0.1.tgz", - "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", - "dev": true - }, "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz", - "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", - "requires": { - "debug": "=3.1.0" - } + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.1.tgz?cache=0&sync_timestamp=1607916833378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.1.tgz", + "integrity": "sha1-X2m4Ezds7k/QR0o6uoNd8Eq3Y7c=" }, "for-in": { "version": "1.0.2", @@ -6524,15 +5835,6 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", @@ -6558,8 +5860,8 @@ }, "frac": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/frac/download/frac-1.1.2.tgz", - "integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs=" + "resolved": "https://r2.cnpmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" }, "fragment-cache": { "version": "0.2.1", @@ -6597,6 +5899,15 @@ "universalify": "^0.1.0" } }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", @@ -6616,1853 +5927,242 @@ "dev": true }, "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.11.tgz?cache=0&sync_timestamp=1580708699417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.11.tgz", - "integrity": "sha1-Z79X9HWPAu3oj7KhcS/vTRU1i+M=", + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.1.tgz", + "integrity": "sha1-sgmrFMYQEmNsiGNQft9/tozFTp8=", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/generic-names/download/generic-names-2.0.1.tgz?cache=0&sync_timestamp=1603542764418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgeneric-names%2Fdownload%2Fgeneric-names-2.0.1.tgz", + "integrity": "sha1-+KN46tLMqno08DF7BVVIMq5BuHI=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz?cache=0&sync_timestamp=1603830155677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://r2.cnpmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-6.0.0.tgz", + "integrity": "sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1607413619483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz?cache=0&sync_timestamp=1588086876757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz", + "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz?cache=0&sync_timestamp=1605523115814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, - "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" + "ansi-regex": "^2.0.0" }, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz", - "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "fuse.js": { - "version": "3.4.4", - "resolved": "https://registry.npm.taobao.org/fuse.js/download/fuse.js-3.4.4.tgz", - "integrity": "sha1-+Y9V/LO1lc9qPmKcX/rxCYIQPpU=" - }, - "g-status": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/g-status/download/g-status-2.0.2.tgz", - "integrity": "sha1-Jw/TIRno/JSW8Gb+X+iOCmvHi5c=", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "matcher": "^1.0.0", - "simple-git": "^1.85.0" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz", - "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", - "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=" - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-6.0.0.tgz", - "integrity": "sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", - "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/global-modules/download/global-modules-1.0.0.tgz", - "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/global-prefix/download/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz", - "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - } - } - }, - "globule": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.1.tgz", - "integrity": "sha1-kKJTOPIrf761J87mPGKa6nVNM7k=", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.12", - "minimatch": "~3.0.2" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "requires": { - "delegate": "^3.1.2" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz", - "integrity": "sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM=", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", - "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - } - } - }, - "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz", - "integrity": "sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q=", - "dev": true - }, - "handlebars": { - "version": "4.7.3", - "resolved": "https://registry.npm.taobao.org/handlebars/download/handlebars-4.7.3.tgz", - "integrity": "sha1-js4nl4Johs+AgtFyb/IdKgIlUO4=", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", - "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-color": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", - "dev": true - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/header-case/download/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", - "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", - "dev": true - }, - "highlight.js": { - "version": "9.18.1", - "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz", - "integrity": "sha1-7SGqAB/mJSuxCj121HVzxlOf4Tw=" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-3.0.0.tgz", - "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=", - "dev": true - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz", - "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", - "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1583017354488&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", - "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", - "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", - "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1582036112063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", - "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", - "dev": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz", - "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", - "dev": true - } - } - } - } - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1573491310172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "dev": true, - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1582422905208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", - "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz?cache=0&sync_timestamp=1572714277347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, - "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz?cache=0&sync_timestamp=1568770896103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.0.tgz", - "integrity": "sha1-2+VfY+daNH2389mZdPJpKjFKajo=", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1582586910479&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "husky": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/husky/download/husky-1.3.1.tgz", - "integrity": "sha1-JoI+OZMAOIyir/8Rz6ioawAz+uA=", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.7", - "execa": "^1.0.0", - "find-up": "^3.0.0", - "get-stdin": "^6.0.0", - "is-ci": "^2.0.0", - "pkg-dir": "^3.0.0", - "please-upgrade-node": "^3.1.1", - "read-pkg": "^4.0.1", - "run-node": "^1.0.0", - "slash": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz", - "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz", - "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1579333981154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz", - "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", - "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1569841504754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-1.0.0.tgz", - "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", - "dev": true, - "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", - "dev": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-3.3.0.tgz?cache=0&sync_timestamp=1583819607980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-3.3.0.tgz", - "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", - "dev": true, - "optional": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz", - "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz", - "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", - "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-absolute/download/is-absolute-1.0.0.tgz", - "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } } } }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", - "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "is-binary-path": { + "has-symbols": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz", - "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=" - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz", - "integrity": "sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs=", - "dev": true - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", - "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", - "dev": true, - "requires": { - "ci-info": "^1.5.0" - } + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -8470,1037 +6170,741 @@ } } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", - "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz?cache=0&sync_timestamp=1581061044831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-finite%2Fdownload%2Fis-finite-1.1.0.tgz", - "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/is-lower-case/download/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "dev": true, - "requires": { - "lower-case": "^1.1.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true } } }, - "is-obj": { + "hash-sum": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz", + "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=", "dev": true }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-observable/download/is-observable-1.1.0.tgz", - "integrity": "sha1-s+mGyPRN6VCGfKtUA/WjRlAFl14=", + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", "dev": true, "requires": { - "symbol-observable": "^1.1.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", "dev": true }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", - "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { + "hex-color-regex": { "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "highlight.js": { + "version": "10.4.1", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.4.1.tgz", + "integrity": "sha1-1I+89KmXHENhs/lfMCdHr+GdutA=", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "isobject": "^3.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", "dev": true }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", "dev": true }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", - "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "has": "^1.0.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "is-regexp": { + "hsl-regex": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", "dev": true }, - "is-relative": { + "hsla-regex": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-relative/download/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, + "html-entities": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.3.tgz?cache=0&sync_timestamp=1607916471106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.3.tgz", + "integrity": "sha1-PcpjikPufeMW/CMGc5hJEVKtRzY=", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", "dev": true, "requires": { - "is-unc-path": "^1.0.0" + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1607933281807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", + "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", + "dev": true + } } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz", + "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", "dev": true }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", - "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1608059716703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { - "html-comment-regex": "^1.1.0" + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } } }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296409833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", - "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1607394302039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1602898797807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-unc-path/download/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "dev": true, "requires": { - "unc-path-regex": "^0.1.2" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/is-upper-case/download/is-upper-case-1.1.2.tgz?cache=0&sync_timestamp=1575601779106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-upper-case%2Fdownload%2Fis-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz?cache=0&sync_timestamp=1589778321455&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz", + "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", "dev": true, "requires": { - "upper-case": "^1.1.0" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } }, - "is-whitespace": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz", - "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", - "dev": true + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868613104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz?cache=0&sync_timestamp=1569219566107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.3.tgz?cache=0&sync_timestamp=1578829407263&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisbinaryfile%2Fdownload%2Fisbinaryfile-3.0.3.tgz", - "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "dev": true, "requires": { - "buffer-alloc": "^1.2.0" + "safer-buffer": ">= 2.1.2 < 3" } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", "dev": true }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.3.7.tgz", - "integrity": "sha1-qGx3DSsD4R4/d4zXrt2C0nIgkqo=", - "dev": true, - "requires": { - "async": "^2.1.4", - "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.1", - "istanbul-lib-hook": "^1.2.2", - "istanbul-lib-instrument": "^1.10.2", - "istanbul-lib-report": "^1.1.5", - "istanbul-lib-source-maps": "^1.2.6", - "istanbul-reports": "^1.5.1", - "js-yaml": "^3.7.0", - "mkdirp": "^0.5.1", - "once": "^1.4.0" + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1605801267950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz", + "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", + "dev": true, + "requires": { + "postcss": "^7.0.14" } }, - "istanbul-lib-coverage": { + "ieee754": { "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz?cache=0&sync_timestamp=1577062400885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838209136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", "dev": true }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha1-vGvwfxKmQfvxyFOR0Nqo8K6mv4Y=", - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.2.tgz?cache=0&sync_timestamp=1580741110293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-instrument%2Fdownload%2Fistanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha1-H1XtEKw8R/K93dUweTUSZ1TQqco=", - "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" - } + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true }, - "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.5.tgz?cache=0&sync_timestamp=1577062405578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-report%2Fdownload%2Fistanbul-lib-report-1.1.5.tgz", - "integrity": "sha1-8qZX/GKC+WFwqvKB6zCkWPf0Fww=", + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } + "import-from": "^2.1.0" } }, - "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.6.tgz?cache=0&sync_timestamp=1577062405633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-source-maps%2Fdownload%2Fistanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha1-N7n/ZhWA+PyhEjJ1LuQuCMZnXY8=", + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1604255567620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, - "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.5.1.tgz", - "integrity": "sha1-l+Tb87UV6MSEyuoV1lJO69P/Tho=", + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "handlebars": "^4.0.3" + "resolve-from": "^3.0.0" } }, - "javascript-stringify": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-1.6.0.tgz?cache=0&sync_timestamp=1572948916758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-1.6.0.tgz", - "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=", - "dev": true - }, - "jest": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest/download/jest-23.6.0.tgz", - "integrity": "sha1-rVg16SPr9uGeeh11KaQy7f7ngT0=", + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", "dev": true, "requires": { - "import-local": "^1.0.0", - "jest-cli": "^23.6.0" + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "jest-cli": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-cli/download/jest-cli-23.6.0.tgz?cache=0&sync_timestamp=1579655155387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-cli%2Fdownload%2Fjest-cli-23.6.0.tgz", - "integrity": "sha1-YauRd0Qzj0Q+8rqigt3/3WWKXaQ=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "import-local": "^1.0.0", - "is-ci": "^1.0.10", - "istanbul-api": "^1.3.1", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-instrument": "^1.10.1", - "istanbul-lib-source-maps": "^1.2.4", - "jest-changed-files": "^23.4.2", - "jest-config": "^23.6.0", - "jest-environment-jsdom": "^23.4.0", - "jest-get-type": "^22.1.0", - "jest-haste-map": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-regex-util": "^23.3.0", - "jest-resolve-dependencies": "^23.6.0", - "jest-runner": "^23.6.0", - "jest-runtime": "^23.6.0", - "jest-snapshot": "^23.6.0", - "jest-util": "^23.4.0", - "jest-validate": "^23.6.0", - "jest-watcher": "^23.4.0", - "jest-worker": "^23.2.0", - "micromatch": "^2.3.11", - "node-notifier": "^5.2.1", - "prompts": "^0.1.9", - "realpath-native": "^1.0.0", - "rimraf": "^2.5.4", - "slash": "^1.0.0", - "string-length": "^2.0.0", - "strip-ansi": "^4.0.0", - "which": "^1.2.12", - "yargs": "^11.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "locate-path": "^3.0.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "p-limit": "^2.0.0" } }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "yargs": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-11.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-11.1.1.tgz", - "integrity": "sha1-UFLv40RqTfXtZpyZWIbMDxNwJ2Y=", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "find-up": "^3.0.0" } } } }, - "jest-changed-files": { - "version": "23.4.2", - "resolved": "https://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-23.4.2.tgz", - "integrity": "sha1-Hu1og3DNXuuv5K6T00uztklo/oM=", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "throat": "^4.0.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "jest-config": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-config/download/jest-config-23.6.0.tgz?cache=0&sync_timestamp=1579655052078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-config%2Fdownload%2Fjest-config-23.6.0.tgz", - "integrity": "sha1-+CVGqQreLYxwJvv2rFIH/CL46x0=", - "dev": true, - "requires": { - "babel-core": "^6.0.0", - "babel-jest": "^23.6.0", - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^23.4.0", - "jest-environment-node": "^23.4.0", - "jest-get-type": "^22.1.0", - "jest-jasmine2": "^23.6.0", - "jest-regex-util": "^23.3.0", - "jest-resolve": "^23.6.0", - "jest-util": "^23.4.0", - "jest-validate": "^23.6.0", - "micromatch": "^2.3.11", - "pretty-format": "^23.6.0" + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "color-convert": "^2.0.1" } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "requires": { - "ms": "2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-cursor%2Fdownload%2Fcli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "restore-cursor": "^3.1.0" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "color-name": "~1.1.4" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", "dev": true }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "mimic-fn": "^2.1.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "has-flag": "^4.0.0" } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1605885653768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "execa": "^1.0.0", + "ip-regex": "^2.1.0" } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true } } }, - "jest-diff": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-diff/download/jest-diff-23.6.0.tgz?cache=0&sync_timestamp=1579655156028&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-diff%2Fdownload%2Fjest-diff-23.6.0.tgz", - "integrity": "sha1-FQDz8W6FC7PXEjNAgIm+CZ9hDH0=", + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz?cache=0&sync_timestamp=1601334312409&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "chalk": "^2.0.1", - "diff": "^3.2.0", - "jest-get-type": "^22.1.0", - "pretty-format": "^23.6.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "jest-docblock": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/jest-docblock/download/jest-docblock-23.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-docblock%2Fdownload%2Fjest-docblock-23.2.0.tgz", - "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz?cache=0&sync_timestamp=1607117383813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.0.tgz", + "integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=", "dev": true, "requires": { - "detect-newline": "^2.1.0" + "call-bind": "^1.0.0" } }, - "jest-each": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-each/download/jest-each-23.6.0.tgz", - "integrity": "sha1-ugw6gqgFQ4cBYTnHM6BSQtPXFXU=", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { - "chalk": "^2.0.1", - "pretty-format": "^23.6.0" + "binary-extensions": "^2.0.0" } }, - "jest-environment-jsdom": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-23.4.0.tgz?cache=0&sync_timestamp=1579655041281&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-environment-jsdom%2Fdownload%2Fjest-environment-jsdom-23.4.0.tgz", - "integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429388528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.2.tgz", + "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", + "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", "dev": true, "requires": { - "jest-mock": "^23.2.0", - "jest-util": "^23.4.0", - "jsdom": "^11.5.1" + "ci-info": "^1.5.0" } }, - "jest-environment-node": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-23.4.0.tgz", - "integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=", + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", "dev": true, "requires": { - "jest-mock": "^23.2.0", - "jest-util": "^23.4.0" + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" } }, - "jest-get-type": { - "version": "22.4.3", - "resolved": "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-22.4.3.tgz", - "integrity": "sha1-46hQTYR5NC3UQgI2syKGnxiQDOQ=", - "dev": true + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz?cache=0&sync_timestamp=1606411666495&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.2.0.tgz", + "integrity": "sha1-lwN+89UiJNhRY/VZeytj2a/tmBo=", + "dev": true, + "requires": { + "has": "^1.0.3" + } }, - "jest-haste-map": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-23.6.0.tgz?cache=0&sync_timestamp=1579654873769&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-23.6.0.tgz", - "integrity": "sha1-Lj65l4FMppbWKv2z8lKfW7yTXhY=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.11", - "invariant": "^2.2.4", - "jest-docblock": "^23.2.0", - "jest-serializer": "^23.0.1", - "jest-worker": "^23.2.0", - "micromatch": "^2.3.11", - "sane": "^2.0.0" + "kind-of": "^3.0.2" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -9509,157 +6913,88 @@ "requires": { "is-buffer": "^1.1.5" } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } } } }, - "jest-jasmine2": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-23.6.0.tgz", - "integrity": "sha1-hA6Tf4SKbIY43yQ2CrhpzHGFkuA=", - "dev": true, - "requires": { - "babel-traverse": "^6.0.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^23.6.0", - "is-generator-fn": "^1.0.0", - "jest-diff": "^23.6.0", - "jest-each": "^23.6.0", - "jest-matcher-utils": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-snapshot": "^23.6.0", - "jest-util": "^23.4.0", - "pretty-format": "^23.6.0" - } + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", + "dev": true }, - "jest-leak-detector": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-23.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-leak-detector%2Fdownload%2Fjest-leak-detector-23.6.0.tgz", - "integrity": "sha1-5CMP1CzzgaGhlxI3rVaJfefhcd4=", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "dev": true, "requires": { - "pretty-format": "^23.6.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "dev": true + } } }, - "jest-matcher-utils": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-23.6.0.tgz?cache=0&sync_timestamp=1579655064075&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-matcher-utils%2Fdownload%2Fjest-matcher-utils-23.6.0.tgz", - "integrity": "sha1-cmvOoMUpQmGnQXr7baMYa0uMrIA=", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^22.1.0", - "pretty-format": "^23.6.0" - } + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz", + "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true }, - "jest-message-util": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-23.4.0.tgz?cache=0&sync_timestamp=1579655040577&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-message-util%2Fdownload%2Fjest-message-util-23.4.0.tgz", - "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=", + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0-beta.35", - "chalk": "^2.0.1", - "micromatch": "^2.3.11", - "slash": "^1.0.0", - "stack-utils": "^1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607125693555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", + "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -9668,558 +7003,203 @@ "requires": { "is-buffer": "^1.1.5" } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true } } }, - "jest-mock": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/jest-mock/download/jest-mock-23.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-mock%2Fdownload%2Fjest-mock-23.2.0.tgz", - "integrity": "sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=", + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", "dev": true }, - "jest-regex-util": { - "version": "23.3.0", - "resolved": "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-23.3.0.tgz?cache=0&sync_timestamp=1579654911019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-regex-util%2Fdownload%2Fjest-regex-util-23.3.0.tgz", - "integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=", + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", "dev": true }, - "jest-resolve": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-resolve/download/jest-resolve-23.6.0.tgz?cache=0&sync_timestamp=1579655061407&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-resolve%2Fdownload%2Fjest-resolve-23.6.0.tgz", - "integrity": "sha1-zx0aJM5+57I9ZhwzuiFQ866/oK4=", + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", "dev": true, "requires": { - "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", - "realpath-native": "^1.0.0" + "is-path-inside": "^2.1.0" } }, - "jest-resolve-dependencies": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-23.6.0.tgz", - "integrity": "sha1-tFJq8kyFQNmj+rECwVCBz1Cbcj0=", + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", "dev": true, "requires": { - "jest-regex-util": "^23.3.0", - "jest-snapshot": "^23.6.0" + "path-is-inside": "^1.0.2" } }, - "jest-runner": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-runner/download/jest-runner-23.6.0.tgz", - "integrity": "sha1-OJS9IZ/8Pzy5TcSKQXCi5vI6Wjg=", + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1600349132080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { - "exit": "^0.1.2", - "graceful-fs": "^4.1.11", - "jest-config": "^23.6.0", - "jest-docblock": "^23.2.0", - "jest-haste-map": "^23.6.0", - "jest-jasmine2": "^23.6.0", - "jest-leak-detector": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-runtime": "^23.6.0", - "jest-util": "^23.4.0", - "jest-worker": "^23.2.0", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" + "isobject": "^3.0.1" } }, - "jest-runtime": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-runtime/download/jest-runtime-23.6.0.tgz", - "integrity": "sha1-BZ5YyKtEWRfNDg2ErCumjejyMII=", + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz", + "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", "dev": true, "requires": { - "babel-core": "^6.0.0", - "babel-plugin-istanbul": "^4.1.6", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "exit": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.11", - "jest-config": "^23.6.0", - "jest-haste-map": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-regex-util": "^23.3.0", - "jest-resolve": "^23.6.0", - "jest-snapshot": "^23.6.0", - "jest-util": "^23.4.0", - "jest-validate": "^23.6.0", - "micromatch": "^2.3.11", - "realpath-native": "^1.0.0", - "slash": "^1.0.0", - "strip-bom": "3.0.0", - "write-file-atomic": "^2.1.0", - "yargs": "^11.0.0" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "yargs": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-11.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-11.1.1.tgz", - "integrity": "sha1-UFLv40RqTfXtZpyZWIbMDxNwJ2Y=", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } + "has-symbols": "^1.0.1" } }, - "jest-serializer": { - "version": "23.0.1", - "resolved": "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-23.0.1.tgz", - "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=", + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", "dev": true }, - "jest-serializer-vue": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/jest-serializer-vue/download/jest-serializer-vue-2.0.2.tgz", - "integrity": "sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM=", + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", "dev": true, "requires": { - "pretty": "2.0.0" + "html-comment-regex": "^1.1.0" } }, - "jest-snapshot": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-23.6.0.tgz?cache=0&sync_timestamp=1579654884339&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-snapshot%2Fdownload%2Fjest-snapshot-23.6.0.tgz", - "integrity": "sha1-+cJiXRsYrNoB7C0rgmwM5YpaoXo=", + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296409833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", "dev": true, "requires": { - "babel-types": "^6.0.0", - "chalk": "^2.0.1", - "jest-diff": "^23.6.0", - "jest-matcher-utils": "^23.6.0", - "jest-message-util": "^23.4.0", - "jest-resolve": "^23.6.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^23.6.0", - "semver": "^5.5.0" + "has-symbols": "^1.0.1" } }, - "jest-transform-stub": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/jest-transform-stub/download/jest-transform-stub-2.0.0.tgz", - "integrity": "sha1-GQGLCFH3VolyFHpdYAdLVfAiWn0=", + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "javascript-stringify": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz?cache=0&sync_timestamp=1572948916758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz", + "integrity": "sha1-bvNYA1MQ411mfGde1j0+t8GqGeU=", "dev": true }, - "jest-util": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-util/download/jest-util-23.4.0.tgz", - "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=", + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz", + "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=", "dev": true, "requires": { - "callsites": "^2.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.11", - "is-ci": "^1.0.10", - "jest-message-util": "^23.4.0", - "mkdirp": "^0.5.1", - "slash": "^1.0.0", - "source-map": "^0.6.0" + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" }, "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "jest-validate": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/jest-validate/download/jest-validate-23.6.0.tgz?cache=0&sync_timestamp=1579654875817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-validate%2Fdownload%2Fjest-validate-23.6.0.tgz", - "integrity": "sha1-NnYfmdHtM/zUJbTkxVldYrZZdHQ=", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^22.1.0", - "leven": "^2.1.0", - "pretty-format": "^23.6.0" - } - }, - "jest-watcher": { - "version": "23.4.0", - "resolved": "https://registry.npm.taobao.org/jest-watcher/download/jest-watcher-23.4.0.tgz", - "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "string-length": "^2.0.0" - } - }, - "jest-worker": { - "version": "23.2.0", - "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-23.2.0.tgz?cache=0&sync_timestamp=1579655017974&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-23.2.0.tgz", - "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", - "dev": true, - "requires": { - "merge-stream": "^1.0.1" - } - }, - "jquery": { - "version": "3.4.1", - "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-3.4.1.tgz", - "integrity": "sha1-cU8fjZ3eS9+lV2S6N+8hRjDYDvI=" - }, "js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.5.2.tgz", - "integrity": "sha1-MTtidN2nGPcU0AszMLuubjjpAgk=", + "version": "2.6.4", + "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1604448575022&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz", + "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=", "dev": true }, - "js-beautify": { - "version": "1.10.3", - "resolved": "https://registry.npm.taobao.org/js-beautify/download/js-beautify-1.10.3.tgz", - "integrity": "sha1-xz+hDPadPfpS2O1iTyPGTApqlME=", - "dev": true, - "requires": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "mkdirp": "~0.5.1", - "nopt": "~4.0.1" - } - }, "js-cookie": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.0.tgz", - "integrity": "sha1-Gywnmm7s44ChIWi5JIUmWzWx7/s=" - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", - "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", - "dev": true + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" }, "js-message": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz", - "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz?cache=0&sync_timestamp=1605132733712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-message%2Fdownload%2Fjs-message-1.0.7.tgz", + "integrity": "sha1-+93QU8ekcCGHG7iyyVOXzBfCDkc=", "dev": true }, "js-queue": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz", - "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.2.tgz", + "integrity": "sha1-C+WQM4+QOzbHPTPDGIOoIUEs1II=", "dev": true, "requires": { - "easy-stack": "^1.0.0" + "easy-stack": "^1.0.1" } }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "version": "3.14.1", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1607370811335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { "argparse": "^1.0.7", @@ -10232,43 +7212,9 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npm.taobao.org/jsdom/download/jsdom-11.12.0.tgz", - "integrity": "sha1-GoDUDd03ih3lllbp5txaO6hle8g=", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - } - }, "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891198638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", "dev": true }, @@ -10278,6 +7224,12 @@ "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1567740732347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz", @@ -10286,8 +7238,9 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -10299,438 +7252,99 @@ "version": "5.0.1", "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", - "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonlint": { - "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/jsonlint/download/jsonlint-1.6.3.tgz", - "integrity": "sha1-y14x78C3gpHQ2GL77wWQCt8hKYg=", - "requires": { - "JSV": "^4.0.x", - "nomnom": "^1.5.x" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/jszip/download/jszip-3.2.1.tgz", - "integrity": "sha1-xdMt9ydAQigrFX77FuUitDQ14Bo=", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", - "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true - }, - "kleur": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/kleur/download/kleur-2.0.2.tgz", - "integrity": "sha1-twT0lE2V4lXQOPDLBfuKYCxVowA=", - "dev": true - }, - "launch-editor": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", - "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "shell-quote": "^1.6.1" - } - }, - "launch-editor-middleware": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", - "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", - "dev": true, - "requires": { - "launch-editor": "^2.2.1" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz", - "integrity": "sha1-W4o6d2Xf4AEmHd6RVYnngvjJTR4=", - "dev": true - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz", - "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", - "requires": { - "immediate": "~3.0.5" - } - }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/liftoff/download/liftoff-2.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fliftoff%2Fdownload%2Fliftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/linkify-it/download/linkify-it-2.2.0.tgz", - "integrity": "sha1-47VGl+eL+RXHCjis14/QngBYsc8=", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lint-staged": { - "version": "8.1.5", - "resolved": "https://registry.npm.taobao.org/lint-staged/download/lint-staged-8.1.5.tgz", - "integrity": "sha1-NyR2/hpYuINOtWLtTJkSa9YL3Xk=", - "dev": true, - "requires": { - "chalk": "^2.3.1", - "commander": "^2.14.1", - "cosmiconfig": "^5.0.2", - "debug": "^3.1.0", - "dedent": "^0.7.0", - "del": "^3.0.0", - "execa": "^1.0.0", - "find-parent-dir": "^0.3.0", - "g-status": "^2.0.2", - "is-glob": "^4.0.0", - "is-windows": "^1.0.2", - "listr": "^0.14.2", - "listr-update-renderer": "^0.5.0", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "micromatch": "^3.1.8", - "npm-which": "^3.0.1", - "p-map": "^1.1.1", - "path-is-inside": "^1.0.2", - "pify": "^3.0.0", - "please-upgrade-node": "^3.0.2", - "staged-git-files": "1.1.2", - "string-argv": "^0.0.2", - "stringify-object": "^3.2.2", - "yup": "^0.26.10" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/del/download/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", - "dev": true - } + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", + "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", + "dev": true, + "requires": { + "minimist": "^1.2.5" } }, - "listr": { - "version": "0.14.3", - "resolved": "https://registry.npm.taobao.org/listr/download/listr-0.14.3.tgz", - "integrity": "sha1-L+qQlgTkNL5GTFC926DUlpKPpYY=", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161917513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" + "graceful-fs": "^4.1.6" } }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true }, - "listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.5.0.tgz", - "integrity": "sha1-Tqg2hUinuK7LfgbYyVy0WuLt5qI=", + "launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", + "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", "dev": true, "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz?cache=0&sync_timestamp=1581865437156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" } }, - "listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha1-8RMhZ1NepMEmEQK58o2sfLoeA9s=", + "launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", "dev": true, "requires": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" + "launch-editor": "^2.2.1" } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, "loader-fs-cache": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.2.tgz", - "integrity": "sha1-VM7fa3J+F3n9jwEgXwX26IcG8IY=", + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz?cache=0&sync_timestamp=1584820647539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-fs-cache%2Fdownload%2Floader-fs-cache-1.0.3.tgz", + "integrity": "sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k=", "dev": true, "requires": { "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" }, "dependencies": { "find-cache-dir": { @@ -10746,7 +7360,7 @@ }, "find-up": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { @@ -10776,7 +7390,7 @@ }, "loader-runner": { "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1574712098491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1601450780890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", "dev": true }, @@ -10784,6 +7398,7 @@ "version": "1.4.0", "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -10792,32 +7407,38 @@ "dependencies": { "json5": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, "requires": { "minimist": "^1.2.0" } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", - "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", + "version": "4.17.20", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336053864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", + "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, "lodash.defaultsdeep": { @@ -10826,12 +7447,6 @@ "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", "dev": true }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npm.taobao.org/lodash.get/download/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, "lodash.kebabcase": { "version": "4.1.1", "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", @@ -10850,18 +7465,6 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npm.taobao.org/lodash.padend/download/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, "lodash.transform": { "version": "4.6.0", "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", @@ -10883,121 +7486,59 @@ "chalk": "^2.0.1" } }, - "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/log-update/download/log-update-2.3.0.tgz", - "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - } - } - } - }, "loglevel": { - "version": "1.6.7", - "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.7.tgz", - "integrity": "sha1-s+A0IzGIxouIn1uGJBUwb1ZeLFY=", + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.1.tgz?cache=0&sync_timestamp=1606312255832&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.1.tgz", + "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=", "dev": true }, "loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "dev": true, + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floud-rejection%2Fdownload%2Floud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lower-case": { "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867304538&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/lower-case-first/download/lower-case-first-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case-first%2Fdownload%2Flower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "dev": true, - "requires": { - "lower-case": "^1.1.2" - } - }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz?cache=0&sync_timestamp=1581538411621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-1.3.0.tgz", - "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/make-iterator/download/make-iterator-1.0.1.tgz", - "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", "dev": true, "requires": { - "kind-of": "^6.0.2" + "yallist": "^3.0.2" } }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz", + "integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=", "dev": true, "requires": { - "tmpl": "1.0.x" + "sourcemap-codec": "^1.4.4" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", - "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", "dev": true, "requires": { - "p-defer": "^1.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, "map-cache": { @@ -11006,12 +7547,6 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", @@ -11021,33 +7556,6 @@ "object-visit": "^1.0.0" } }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npm.taobao.org/markdown-it/download/markdown-it-8.4.2.tgz", - "integrity": "sha1-OG+YmY3BWjdyKqdyIIT0Agvdm1Q=", - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "matcher": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/matcher/download/matcher-1.1.1.tgz?cache=0&sync_timestamp=1574143092340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatcher%2Fdownload%2Fmatcher-1.1.1.tgz", - "integrity": "sha1-UdgwHhOPhAmCszixFrsMCa9iwcI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.4" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz", - "integrity": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=", - "dev": true - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", @@ -11060,30 +7568,17 @@ } }, "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-1.1.4.tgz", - "integrity": "sha1-ULXU/8RXUnZXPE7tuHgIEqhBnwE=", + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", "dev": true }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/mdurl/download/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", @@ -11094,38 +7589,6 @@ "readable-stream": "^2.0.1" } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "merge": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/merge/download/merge-1.2.1.tgz", - "integrity": "sha1-OL6/gMMiCopIe2/Ps5QbsRcgwUU=", - "dev": true - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", @@ -11134,7 +7597,7 @@ }, "merge-options": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-options/download/merge-options-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/merge-options/download/merge-options-1.0.1.tgz?cache=0&sync_timestamp=1606146913544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-options%2Fdownload%2Fmerge-options-1.0.1.tgz", "integrity": "sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=", "dev": true, "requires": { @@ -11159,18 +7622,15 @@ } }, "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true }, "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.3.0.tgz", - "integrity": "sha1-WzZu6DsvFYLEj4fkfPGpNSEDyoE=", + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", "dev": true }, "methods": { @@ -11179,30 +7639,6 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, - "microargs": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/microargs/download/microargs-1.1.2.tgz", - "integrity": "sha1-cl++3PEg2xIxfT7aU00/Ga+GdzM=", - "dev": true - }, - "microcli": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/microcli/download/microcli-1.3.3.tgz", - "integrity": "sha1-J/GzMLD5Nb5jFPKYlyEFoyX3Mec=", - "dev": true, - "requires": { - "lodash": "4.17.11", - "microargs": "1.1.2" - }, - "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.11.tgz", - "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=", - "dev": true - } - } - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", @@ -11232,48 +7668,70 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.4.tgz", - "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", + "version": "2.4.7", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.7.tgz?cache=0&sync_timestamp=1608084083331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.7.tgz", + "integrity": "sha1-lirtm+DtGckf19wuzl1/TompDXQ=", "dev": true }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281193492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz", - "integrity": "sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg=", + "version": "1.44.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1600831175828&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz", + "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=", "dev": true }, "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282566609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz", - "integrity": "sha1-nJIfwJt+FJpl39wNpNIJlyALCgY=", + "version": "2.1.27", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz", + "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=", "dev": true, "requires": { - "mime-db": "1.43.0" + "mime-db": "1.44.0" } }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true }, "mini-css-extract-plugin": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.5.0.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.5.0.tgz", - "integrity": "sha1-rABZsCuWklFaY3EVsMyf7To1x7A=", + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1607647582104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=", "dev": true, "requires": { "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", "schema-utils": "^1.0.0", "webpack-sources": "^1.1.0" }, "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -11306,11 +7764,55 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", "dev": true }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz?cache=0&sync_timestamp=1595998531778&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", @@ -11330,10 +7832,9 @@ } }, "mitt": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/mitt/download/mitt-1.1.2.tgz", - "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-2.1.0.tgz", + "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" }, "mixin-deep": { "version": "1.3.2", @@ -11357,12 +7858,12 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" } }, "mockjs": { @@ -11374,11 +7875,6 @@ "commander": "*" } }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.24.0.tgz", - "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" - }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", @@ -11394,13 +7890,14 @@ } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true }, "multicast-dns": { "version": "6.2.3", - "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1585239065356&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", "dev": true, "requires": { @@ -11415,16 +7912,28 @@ "dev": true }, "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", "dev": true }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz", - "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=", - "dev": true + "version": "2.14.2", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591931869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", + "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", + "dev": true, + "optional": true }, "nanomatch": { "version": "1.2.13", @@ -11445,6 +7954,11 @@ "to-regex": "^3.0.1" } }, + "nanopop": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz", + "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==" + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", @@ -11458,9 +7972,9 @@ "dev": true }, "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.1.tgz", - "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw=", + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", "dev": true }, "nice-try": { @@ -11471,476 +7985,78 @@ }, "no-case": { "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576721505371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz", "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", "dev": true, "requires": { "lower-case": "^1.1.1" } }, - "node-cache": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/node-cache/download/node-cache-4.2.1.tgz?cache=0&sync_timestamp=1575815899867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-cache%2Fdownload%2Fnode-cache-4.2.1.tgz", - "integrity": "sha1-79hHTe5O3sQTjN3tWA9VFlAPczQ=", - "dev": true, - "requires": { - "clone": "2.x", - "lodash": "^4.17.15" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - } - } - }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz?cache=0&sync_timestamp=1569524669712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz", - "integrity": "sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk=", - "dev": true - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz", - "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-ipc": { - "version": "9.1.1", - "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz", - "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=", - "dev": true, - "requires": { - "event-pubsub": "4.3.0", - "js-message": "1.0.5", - "js-queue": "2.0.0" - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", - "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npm.taobao.org/node-notifier/download/node-notifier-5.4.3.tgz", - "integrity": "sha1-y3La+UyTkECY4oucWQ/YZuRkvVA=", - "dev": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } - }, - "node-plop": { - "version": "0.18.0", - "resolved": "https://registry.npm.taobao.org/node-plop/download/node-plop-0.18.0.tgz", - "integrity": "sha1-tEZHiY7p44fUbmkfE6AfrFO/Sf4=", - "dev": true, - "requires": { - "change-case": "^3.0.1", - "co": "^4.6.0", - "core-js": "^2.4.1", - "del": "^3.0.0", - "globby": "^8.0.0", - "handlebars": "^4.1.0", - "inquirer": "^6.0.0", - "isbinaryfile": "^3.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.0", - "resolve": "^1.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1562888139305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "dev": true - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/del/download/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.0.0.tgz", - "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-8.0.2.tgz", - "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz?cache=0&sync_timestamp=1583819607980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-6.5.2.tgz", - "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz?cache=0&sync_timestamp=1562347183080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "node-releases": { - "version": "1.1.51", - "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.51.tgz?cache=0&sync_timestamp=1583684592405&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.51.tgz", - "integrity": "sha1-cNDgVCITQ9KWYAa/vU2YYizAC9A=", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "node-sass": { - "version": "4.13.1", - "resolved": "https://registry.npm.taobao.org/node-sass/download/node-sass-4.13.1.tgz", - "integrity": "sha1-nbVolpa7LuwsMrmL/qTHoumS0KM=", + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz", + "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", + "dev": true + }, + "node-ipc": { + "version": "9.1.3", + "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.3.tgz", + "integrity": "sha1-HfPwadEDGErpEn+ohdva6lakQ28=", "dev": true, "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "event-pubsub": "4.3.0", + "js-message": "1.0.7", + "js-queue": "2.0.2" } }, - "nomnom": { - "version": "1.8.1", - "resolved": "https://registry.npm.taobao.org/nomnom/download/nomnom-1.8.1.tgz", - "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "dev": true, "requires": { - "chalk": "~0.4.0", - "underscore": "~1.6.0" + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" }, "dependencies": { - "chalk": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-0.4.0.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - } + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true } } }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-4.0.3.tgz", - "integrity": "sha1-o3XK2dAv2SEnjZVMIlTVqlfhXkg=", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } + "node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.67.tgz?cache=0&sync_timestamp=1605581282886&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.67.tgz", + "integrity": "sha1-KOv8zNC6pqrY6NTY/ky8Sa4jnBI=", + "dev": true }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547447569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "dev": true, "requires": { @@ -11953,7 +8069,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true }, "normalize-range": { "version": "0.1.2", @@ -11963,58 +8080,27 @@ }, "normalize-url": { "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1580491266117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz", "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", "dev": true }, "normalize-wheel": { "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", - "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" + "resolved": "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" }, "normalize.css": { "version": "7.0.0", "resolved": "https://registry.npm.taobao.org/normalize.css/download/normalize.css-7.0.0.tgz", "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=" }, - "npm-path": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/npm-path/download/npm-path-2.0.4.tgz", - "integrity": "sha1-xkE0el/51qCeTZvOVYDE9QUnjmQ=", - "dev": true, - "requires": { - "which": "^1.2.10" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "npm-which": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz", - "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", - "dev": true, - "requires": { - "commander": "^2.9.0", - "npm-path": "^2.0.2", - "which": "^1.2.10" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "path-key": "^2.0.0" } }, "nprogress": { @@ -12024,7 +8110,7 @@ }, "nth-check": { "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1606860944410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz", "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", "dev": true, "requires": { @@ -12037,17 +8123,6 @@ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz?cache=0&sync_timestamp=1581061562193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz", - "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc=", - "dev": true - }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", @@ -12080,12 +8155,6 @@ "is-descriptor": "^0.1.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -12104,16 +8173,19 @@ "dev": true }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz", - "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=", - "dev": true + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.9.0.tgz?cache=0&sync_timestamp=1606804265193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.9.0.tgz", + "integrity": "sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=" }, "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.0.2.tgz?cache=0&sync_timestamp=1576479714417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.0.2.tgz", - "integrity": "sha1-a4DrhP5FFJj2UAeYLwNaW0Re3sQ=", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.4.tgz", + "integrity": "sha1-Y9bIPACkP0y8lDTrl1fIpbhWUGg=", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } }, "object-keys": { "version": "1.1.1", @@ -12131,79 +8203,26 @@ } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", - "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/object.defaults/download/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115104654&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", + "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", "dev": true, "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha1-Df2o0QgHTZxWPoBJDIg7ZmEJFUQ=", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/object.map/download/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "es-abstract": "^1.18.0-next.1" } }, "object.pick": { @@ -12216,14 +8235,14 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", - "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.2.tgz?cache=0&sync_timestamp=1606429851964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.2.tgz", + "integrity": "sha1-eiAV4G/LD1Rr1lJIbOhYOkcxxzE=", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.1", "has": "^1.0.3" } }, @@ -12233,12 +8252,6 @@ "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", "dev": true }, - "omelette": { - "version": "0.4.5", - "resolved": "https://registry.npm.taobao.org/omelette/download/omelette-0.4.5.tgz", - "integrity": "sha1-8WvEd7fiY7WXlqZWYZZOR2LprnQ=", - "dev": true - }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", @@ -12274,7 +8287,7 @@ }, "open": { "version": "6.4.0", - "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1583734682914&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-6.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1601376181109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-6.4.0.tgz", "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", "dev": true, "requires": { @@ -12282,9 +8295,9 @@ } }, "opener": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz", - "integrity": "sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0=", + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz", + "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", "dev": true }, "opn": { @@ -12296,19 +8309,9 @@ "is-wsl": "^1.1.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, "optionator": { "version": "0.8.3", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966238288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz", "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", "dev": true, "requires": { @@ -12334,12 +8337,6 @@ "wcwidth": "^1.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", @@ -12366,76 +8363,44 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", - "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz?cache=0&sync_timestamp=1560955759606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz", - "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.2.0" } }, "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } }, "p-retry": { "version": "3.0.1", @@ -12447,14 +8412,16 @@ } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true }, "pako": { "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1580283988434&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", + "dev": true }, "parallel-transform": { "version": "1.2.0", @@ -12494,95 +8461,64 @@ } }, "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.5.tgz", - "integrity": "sha1-ADJxND2ljclMrOSU+u89IUfs6g4=", + "version": "5.1.6", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz", + "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", "dev": true, "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/parse-filepath/download/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.1.0.tgz", + "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=", "dev": true, "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "parse5": "^6.0.1" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-6.0.1.tgz", + "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=", "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } } } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz?cache=0&sync_timestamp=1573036762880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-4.0.0.tgz", - "integrity": "sha1-bXhlbj2o14tOwLkG98CO8d/j9gg=", - "dev": true - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", "dev": true }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pascal-case/download/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } + "particles.js": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/particles.js/download/particles.js-2.0.0.tgz", + "integrity": "sha1-IThsQyjWx/lngKIB6W7t/AnHNvY=", + "dev": true }, "pascalcase": { "version": "0.1.1", @@ -12596,15 +8532,6 @@ "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", "dev": true }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/path-case/download/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", @@ -12612,9 +8539,10 @@ "dev": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -12631,7 +8559,8 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441322626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "path-parse": { "version": "1.0.6", @@ -12639,25 +8568,11 @@ "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", "dev": true }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/path-root/download/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/path-root-regex/download/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-2.4.0.tgz", - "integrity": "sha1-Nc5/Mz1WFvHB4b/iZsOrouWy5wQ=" + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true }, "path-type": { "version": "3.0.0", @@ -12666,12 +8581,20 @@ "dev": true, "requires": { "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", - "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz", + "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -12687,10 +8610,16 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "dev": true + }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", "dev": true }, "pinkie": { @@ -12708,148 +8637,43 @@ "pinkie": "^2.0.0" } }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pirates/download/pirates-4.0.1.tgz", - "integrity": "sha1-ZDqSyviUVm+RsrmG0sZpUKji+4c=", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "plantuml-encoder": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/plantuml-encoder/download/plantuml-encoder-1.4.0.tgz", - "integrity": "sha1-eJkwLPeF3pVr8aFn4VQg/u5Zdfc=" - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/please-upgrade-node/download/please-upgrade-node-3.2.0.tgz?cache=0&sync_timestamp=1565266069139&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fplease-upgrade-node%2Fdownload%2Fplease-upgrade-node-3.2.0.tgz", - "integrity": "sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", "dev": true, "requires": { - "semver-compare": "^1.0.0" + "find-up": "^4.0.0" } }, - "plop": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/plop/download/plop-2.3.0.tgz", - "integrity": "sha1-6bPM+dj9vOB37nN3t1/MX1Ed9WI=", + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", "dev": true, "requires": { - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.0", - "node-plop": "~0.18.0", - "ora": "^3.0.0", - "v8flags": "^2.0.10" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "ts-pnp": "^1.1.6" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz", - "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", - "dev": true, - "optional": true - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz", - "integrity": "sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs=", - "dev": true - }, "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.25.tgz", - "integrity": "sha1-JU/TN/+6hp9LnTftwpgFnLTTXso=", + "version": "1.0.28", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz", + "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", "dev": true, "requires": { "async": "^2.6.2", "debug": "^3.1.1", - "mkdirp": "^0.5.1" + "mkdirp": "^0.5.5" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true } } }, @@ -12860,9 +8684,10 @@ "dev": true }, "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.27.tgz?cache=0&sync_timestamp=1581994853208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.27.tgz", - "integrity": "sha1-zGfNxrDao3UQW3xCSoVWc0X8VNk=", + "version": "7.0.35", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1607512891622&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -12872,12 +8697,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -12885,9 +8712,9 @@ } }, "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz?cache=0&sync_timestamp=1582014198134&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.2.tgz", - "integrity": "sha1-UE780AjKAnMSBWiweSsWzc3oqsE=", + "version": "7.0.5", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1601732582224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", + "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", "dev": true, "requires": { "postcss": "^7.0.27", @@ -12897,7 +8724,7 @@ }, "postcss-colormin": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1603212787349&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz", "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", "dev": true, "requires": { @@ -12910,7 +8737,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -12918,7 +8745,7 @@ }, "postcss-convert-values": { "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1603212787465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", "dev": true, "requires": { @@ -12928,7 +8755,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -12945,7 +8772,7 @@ }, "postcss-discard-duplicates": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1603212787804&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", "dev": true, "requires": { @@ -12971,9 +8798,9 @@ } }, "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz", - "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1601607668112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", + "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", "dev": true, "requires": { "cosmiconfig": "^5.0.0", @@ -12982,7 +8809,7 @@ }, "postcss-loader": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz?cache=0&sync_timestamp=1605790892391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-loader%2Fdownload%2Fpostcss-loader-3.0.0.tgz", "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", "dev": true, "requires": { @@ -12994,7 +8821,7 @@ "dependencies": { "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -13007,7 +8834,7 @@ }, "postcss-merge-longhand": { "version": "4.0.11", - "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1603212783596&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", "dev": true, "requires": { @@ -13019,7 +8846,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13027,7 +8854,7 @@ }, "postcss-merge-rules": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1603212783716&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", "dev": true, "requires": { @@ -13041,7 +8868,7 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { @@ -13054,7 +8881,7 @@ }, "postcss-minify-font-values": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1603212783911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-minify-font-values-4.0.2.tgz", "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", "dev": true, "requires": { @@ -13064,7 +8891,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13072,7 +8899,7 @@ }, "postcss-minify-gradients": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1603212784003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", "dev": true, "requires": { @@ -13084,7 +8911,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13106,7 +8933,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13114,7 +8941,7 @@ }, "postcss-minify-selectors": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1603212784204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", "dev": true, "requires": { @@ -13126,7 +8953,7 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { @@ -13137,29 +8964,49 @@ } } }, + "postcss-modules": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/postcss-modules/download/postcss-modules-3.2.2.tgz?cache=0&sync_timestamp=1606641106141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules%2Fdownload%2Fpostcss-modules-3.2.2.tgz", + "integrity": "sha1-7jkN4PnxjnYeF3jfub4maFwCxR8=", + "dev": true, + "requires": { + "generic-names": "^2.0.1", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "string-hash": "^1.1.1" + } + }, "postcss-modules-extract-imports": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&sync_timestamp=1602588238811&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz", "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", + "dev": true, "requires": { "postcss": "^7.0.5" } }, "postcss-modules-local-by-default": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.2.tgz", - "integrity": "sha1-6KZWG+kUqvPAUodjd1JMqQ27eRU=", + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587661752&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", + "dev": true, "requires": { "icss-utils": "^4.1.1", - "postcss": "^7.0.16", + "postcss": "^7.0.32", "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.0" + "postcss-value-parser": "^4.1.0" } }, "postcss-modules-scope": { "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz?cache=0&sync_timestamp=1602593225142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.2.0.tgz", "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", + "dev": true, "requires": { "postcss": "^7.0.6", "postcss-selector-parser": "^6.0.0" @@ -13169,6 +9016,7 @@ "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz", "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", + "dev": true, "requires": { "icss-utils": "^4.0.0", "postcss": "^7.0.6" @@ -13196,7 +9044,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13204,7 +9052,7 @@ }, "postcss-normalize-positions": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1603212712085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz", "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", "dev": true, "requires": { @@ -13216,7 +9064,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13236,7 +9084,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13255,7 +9103,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13274,7 +9122,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13293,7 +9141,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13313,7 +9161,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13331,7 +9179,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13339,7 +9187,7 @@ }, "postcss-ordered-values": { "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1603212785171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", "dev": true, "requires": { @@ -13350,7 +9198,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13367,7 +9215,7 @@ }, "postcss-reduce-initial": { "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1603212785269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz", "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", "dev": true, "requires": { @@ -13379,7 +9227,7 @@ }, "postcss-reduce-transforms": { "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&sync_timestamp=1603212785466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-4.0.2.tgz", "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", "dev": true, "requires": { @@ -13391,20 +9239,22 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } } }, "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw=", + "version": "6.0.4", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.4.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.4.tgz", + "integrity": "sha1-VgdaE4CgRgTDiwY+p3Z6Epr1wrM=", + "dev": true, "requires": { "cssesc": "^3.0.0", "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" } }, "postcss-svgo": { @@ -13421,7 +9271,7 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", "dev": true } @@ -13439,13 +9289,14 @@ } }, "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.0.3.tgz?cache=0&sync_timestamp=1582038102813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.0.3.tgz", - "integrity": "sha1-ZR/0WTqp7ajV0NZlk6JBeurrMl0=" + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true }, "posthtml": { "version": "0.9.2", - "resolved": "https://registry.npm.taobao.org/posthtml/download/posthtml-0.9.2.tgz", + "resolved": "https://registry.npm.taobao.org/posthtml/download/posthtml-0.9.2.tgz?cache=0&sync_timestamp=1606388295556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml%2Fdownload%2Fposthtml-0.9.2.tgz", "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", "dev": true, "requires": { @@ -13455,7 +9306,7 @@ }, "posthtml-parser": { "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/posthtml-parser/download/posthtml-parser-0.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml-parser%2Fdownload%2Fposthtml-parser-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/posthtml-parser/download/posthtml-parser-0.2.1.tgz", "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", "dev": true, "requires": { @@ -13475,18 +9326,18 @@ } }, "posthtml-rename-id": { - "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/posthtml-rename-id/download/posthtml-rename-id-1.0.11.tgz", - "integrity": "sha1-AigaHkSCqjyMMPeYz5qIjjLZJ1w=", + "version": "1.0.12", + "resolved": "https://registry.npm.taobao.org/posthtml-rename-id/download/posthtml-rename-id-1.0.12.tgz", + "integrity": "sha1-z39us3FGvxr6wx5o8YxswZrmFDM=", "dev": true, "requires": { "escape-string-regexp": "1.0.5" } }, "posthtml-render": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/posthtml-render/download/posthtml-render-1.2.0.tgz?cache=0&sync_timestamp=1582613308689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml-render%2Fdownload%2Fposthtml-render-1.2.0.tgz", - "integrity": "sha1-PfDIAKi7uVr1g6lHSFIEaUd63fQ=", + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/posthtml-render/download/posthtml-render-1.4.0.tgz?cache=0&sync_timestamp=1605682819222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml-render%2Fdownload%2Fposthtml-render-1.4.0.tgz", + "integrity": "sha1-QBFAcMRYgcrLkzR9rj7/U6+8/xM=", "dev": true }, "posthtml-svg-mode": { @@ -13503,94 +9354,45 @@ }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz?cache=0&sync_timestamp=1585868608597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "prettier": { "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1606523097359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", + "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", "dev": true }, "prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "resolved": "https://registry.npm.taobao.org/prettier-linter-helpers/download/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha1-0j1B/hN1ZG3i0BBNNFSjAIgCz3s=", "dev": true, "requires": { "fast-diff": "^1.1.2" } }, - "pretty": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz", - "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", - "dev": true, - "requires": { - "condense-newlines": "^0.2.1", - "extend-shallow": "^2.0.1", - "js-beautify": "^1.6.12" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "dev": true, - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-format": { - "version": "23.6.0", - "resolved": "https://registry.npm.taobao.org/pretty-format/download/pretty-format-23.6.0.tgz?cache=0&sync_timestamp=1579655022191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-format%2Fdownload%2Fpretty-format-23.6.0.tgz", - "integrity": "sha1-XqrI7razO5h7f+YJfqaooUarV2A=", + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz", + "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", "dev": true, "requires": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - } + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, "printj": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/printj/download/printj-1.1.2.tgz", - "integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI=" - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz", - "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", - "dev": true + "version": "1.2.3", + "resolved": "https://r2.cnpmjs.org/printj/-/printj-1.2.3.tgz", + "integrity": "sha512-sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==" }, "process": { "version": "0.11.10", @@ -13601,7 +9403,8 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true }, "progress": { "version": "2.0.3", @@ -13615,28 +9418,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "prompts": { - "version": "0.1.14", - "resolved": "https://registry.npm.taobao.org/prompts/download/prompts-0.1.14.tgz", - "integrity": "sha1-qOFcYSxcnsj4ERhH3zM3ycvUQ7I=", - "dev": true, - "requires": { - "kleur": "^2.0.1", - "sisteransi": "^0.1.1" - } - }, - "property-expr": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/property-expr/download/property-expr-1.5.1.tgz?cache=0&sync_timestamp=1583512528282&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fproperty-expr%2Fdownload%2Fproperty-expr-1.5.1.tgz", - "integrity": "sha1-IuhwaJSgyOKNWHNYBPa6OjZzMU8=", - "dev": true - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz?cache=0&sync_timestamp=1582556112011&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz", @@ -13656,12 +9437,13 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true }, "psl": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.7.0.tgz?cache=0&sync_timestamp=1577538558975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.7.0.tgz", - "integrity": "sha1-8cTEeo75cWfepda79IFtc26ISjw=", + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", "dev": true }, "public-encrypt": { @@ -13676,6 +9458,14 @@ "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } } }, "pump": { @@ -13714,7 +9504,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true }, "q": { "version": "1.5.1", @@ -13723,14 +9514,16 @@ "dev": true }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", - "dev": true + "version": "6.10.3", + "resolved": "https://r.cnpmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } }, "query-string": { "version": "4.3.4", - "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1604609999412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { @@ -13751,30 +9544,11 @@ "dev": true }, "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz", - "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=", + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", "dev": true }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz", - "integrity": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", - "dev": true - } - } - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", @@ -13800,13 +9574,6 @@ "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", "dev": true }, - "raphael": { - "version": "git+https://github.com/nhn/raphael.git#78a6ed3ec269f33b6457b0ec66f8c3d1f2ed70e0", - "from": "git+https://github.com/nhn/raphael.git#2.2.0-c", - "requires": { - "eve": "git://github.com/adobe-webplatform/eve.git#eef80ed" - } - }, "raw-body": { "version": "2.4.0", "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", @@ -13820,75 +9587,28 @@ } }, "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-0.5.1.tgz?cache=0&sync_timestamp=1574695040943&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-loader%2Fdownload%2Fraw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1575620436254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } + "version": "0.5.1", + "resolved": "https://r2.cnpmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13900,107 +9620,41 @@ } }, "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/realpath-native/download/realpath-native-1.1.0.tgz", - "integrity": "sha1-IAMpT+oj+wZy8kduviL89Jii1lw=", - "dev": true, - "requires": { - "util.promisify": "^1.0.0" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz", + "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - } + "picomatch": "^2.2.1" } }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.0.tgz", - "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=", + "version": "1.4.2", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218439731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", + "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", "dev": true }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4=", + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz?cache=0&sync_timestamp=1583975113523&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", "dev": true, "requires": { "regenerate": "^1.4.0" } }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + "version": "0.13.7", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz", + "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=" }, "regenerator-transform": { - "version": "0.14.2", - "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.2.tgz?cache=0&sync_timestamp=1582478716594&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.2.tgz", - "integrity": "sha1-lJ2dh0aP+I1afkc067mUqJLeH/I=", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4", - "private": "^0.1.8" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "@babel/runtime": "^7.8.4" } }, "regex-not": { @@ -14021,39 +9675,59 @@ "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz?cache=0&sync_timestamp=1567160849322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-1.1.0.tgz", - "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", - "dev": true, - "optional": true + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "dev": true }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.6.0.tgz?cache=0&sync_timestamp=1568375270709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.6.0.tgz", - "integrity": "sha1-IDfBizJ8/Oim/qKk7EQfJDKvuLY=", + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413905865&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz", + "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", "dev": true, "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz", - "integrity": "sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw=", + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", "dev": true }, "regjsparser": { - "version": "0.6.3", - "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.3.tgz", - "integrity": "sha1-dBksWAXTXp9evjwftbQNQKijhGA=", + "version": "0.6.4", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz?cache=0&sync_timestamp=1583896806843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz", + "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -14061,7 +9735,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891198638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } @@ -14080,16 +9754,16 @@ "dev": true }, "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz", - "integrity": "sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk=", + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.4.tgz", + "integrity": "sha1-0yXlMq+yjT+Hlv/uMGvo/9b8hkw=", "dev": true, "requires": { "css-select": "^1.1.0", "dom-converter": "^0.2", "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -14100,7 +9774,7 @@ }, "css-select": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz?cache=0&sync_timestamp=1607468308878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { @@ -14112,7 +9786,7 @@ }, "css-what": { "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1602570970779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz", "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", "dev": true }, @@ -14149,15 +9823,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.2", "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz", @@ -14184,48 +9849,27 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - } - }, - "request-promise-core": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.3.tgz", - "integrity": "sha1-6aPAgbUTgN/qZ3M2Bh/qh5qCnuk=", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "request-promise-native": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.8.tgz?cache=0&sync_timestamp=1572829762814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest-promise-native%2Fdownload%2Frequest-promise-native-1.0.8.tgz", - "integrity": "sha1-pFW5YLgm5E4r+Jma9k3/K/5YyzY=", - "dev": true, - "requires": { - "request-promise-core": "1.1.3", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" + }, + "dependencies": { + "qs": { + "version": "6.5.3", + "resolved": "https://r.cnpmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + } } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "optional": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true }, "requires-port": { "version": "1.0.0", @@ -14233,23 +9877,18 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "reselect": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/reselect/download/reselect-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freselect%2Fdownload%2Freselect-3.0.1.tgz", - "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", - "dev": true - }, "resize-observer-polyfill": { "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.15.1.tgz?cache=0&sync_timestamp=1580943346382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.15.1.tgz", - "integrity": "sha1-J73N7/6vLWJEuVuw+fS0ZTRR8+g=", + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.19.0.tgz", + "integrity": "sha1-GvW/YwQJc0oGfK4pMYqsf6KaJnw=", "dev": true, "requires": { + "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } }, @@ -14260,32 +9899,13 @@ "dev": true, "requires": { "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/resolve-dir/download/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true, - "optional": true + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true }, "resolve-url": { "version": "0.2.1", @@ -14346,25 +9966,10 @@ "inherits": "^2.0.1" } }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npm.taobao.org/rsvp/download/rsvp-3.6.2.tgz", - "integrity": "sha1-LpZJFZmpbN4bUV1WdKj3qRRSkmo=", - "dev": true - }, "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-async%2Fdownload%2Frun-async-2.4.0.tgz", - "integrity": "sha1-5ZBUpbhods+uB/Qx0Yy63cWU8eg=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-node": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/run-node/download/run-node-1.0.0.tgz", - "integrity": "sha1-RrULlGoqotSUeuHYhumFb9nKvl4=", + "version": "2.4.1", + "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", "dev": true }, "run-queue": { @@ -14376,76 +9981,10 @@ "aproba": "^1.1.1" } }, - "runjs": { - "version": "4.4.2", - "resolved": "https://registry.npm.taobao.org/runjs/download/runjs-4.4.2.tgz", - "integrity": "sha1-Ot9bU60bEZuEazyuEzTpq3/zSSA=", - "dev": true, - "requires": { - "chalk": "2.3.0", - "lodash.padend": "4.6.1", - "microcli": "1.3.3", - "omelette": "0.4.5" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.3.0.tgz", - "integrity": "sha1-tepI78nBeT3MybR2fJORTT8tUro=", - "dev": true, - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - } - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true, - "optional": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "optional": true, - "requires": { - "rx-lite": "*" - } - }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", + "version": "6.6.3", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.6.3.tgz?cache=0&sync_timestamp=1607305563098&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.6.3.tgz", + "integrity": "sha1-jKhGNcTaqQDA05Z6buesYCce5VI=", "dev": true, "requires": { "tslib": "^1.9.0" @@ -14453,8 +9992,9 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1562377642757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true }, "safe-regex": { "version": "1.1.0", @@ -14471,164 +10011,31 @@ "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", "dev": true }, - "sane": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/sane/download/sane-2.5.2.tgz", - "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "capture-exit": "^1.2.0", - "exec-sh": "^0.2.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.3", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5", - "watch": "~0.18.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "sass": { + "version": "1.30.0", + "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.30.0.tgz", + "integrity": "sha1-YLu7r3a6EBF+YcbCTwAWHD1gYQ4=", "dev": true, "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - } - } + "chokidar": ">=2.0.0 <4.0.0" } }, "sass-loader": { - "version": "7.3.1", - "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz", - "integrity": "sha1-pb9ooEvOocE/+ELXRxUPerfQ0j8=", + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz?cache=0&sync_timestamp=1605100670008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-8.0.2.tgz", + "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=", "dev": true, "requires": { "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", "semver": "^6.3.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } @@ -14640,74 +10047,32 @@ "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", "dev": true }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "screenfull": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/screenfull/download/screenfull-4.2.0.tgz", - "integrity": "sha1-1SUqWg9WUEcZq77Z67zZIIEV2gM=" - }, - "script-ext-html-webpack-plugin": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/script-ext-html-webpack-plugin/download/script-ext-html-webpack-plugin-2.1.3.tgz", - "integrity": "sha1-tL9wPN2+PeLm9IPhnf66K17Eq/4=", - "dev": true, - "requires": { - "debug": "^4.1.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } }, "script-loader": { "version": "0.7.2", - "resolved": "https://registry.npm.taobao.org/script-loader/download/script-loader-0.7.2.tgz", - "integrity": "sha1-IBbbb4byX1z1baOJFdgzeLsWa6c=", + "resolved": "https://r2.cnpmjs.org/script-loader/-/script-loader-0.7.2.tgz", + "integrity": "sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==", + "dev": true, "requires": { "raw-loader": "~0.5.1" } }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, + "scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "compute-scroll-into-view": "^1.0.20" } }, "select": { @@ -14722,26 +10087,20 @@ "dev": true }, "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz?cache=0&sync_timestamp=1569952074772&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz", - "integrity": "sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs=", + "version": "1.10.8", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.8.tgz", + "integrity": "sha1-DRcgi30Swz+OrIXEGDXyf8PYGjA=", "dev": true, "requires": { - "node-forge": "0.9.0" + "node-forge": "^0.10.0" } }, "semver": { "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, "send": { "version": "0.17.1", "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", @@ -14765,7 +10124,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -14774,7 +10133,7 @@ "dependencies": { "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } @@ -14782,34 +10141,27 @@ }, "mime": { "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1608084083331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", "dev": true }, "ms": { "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", "dev": true } } }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/sentence-case/download/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz", + "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", "dev": true, "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" + "randombytes": "^2.1.0" } }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz?cache=0&sync_timestamp=1581887711256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-2.1.2.tgz", - "integrity": "sha1-7OxTsOAxe9yV73arcHS3OEeF+mE=", - "dev": true - }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", @@ -14827,7 +10179,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -14836,7 +10188,7 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { @@ -14852,6 +10204,12 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", @@ -14875,12 +10233,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-value": { "version": "2.0.1", @@ -14936,10 +10290,16 @@ "kind-of": "^6.0.2" } }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -14947,7 +10307,8 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "shell-quote": { "version": "1.7.2", @@ -14955,56 +10316,21 @@ "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", "dev": true }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", - "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", - "dev": true - }, - "showdown": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/showdown/download/showdown-1.9.0.tgz", - "integrity": "sha1-1J0qC22yG3wulu+FX3s7KijvRvQ=", + "side-channel": { + "version": "1.0.4", + "resolved": "https://r2.cnpmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "requires": { - "yargs": "^10.0.3" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-git": { - "version": "1.131.0", - "resolved": "https://registry.npm.taobao.org/simple-git/download/simple-git-1.131.0.tgz", - "integrity": "sha1-aNhb9qcG5Bi4qSyudl0q01h4HiE=", - "dev": true, - "requires": { - "debug": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "dev": true }, "simple-swizzle": { "version": "0.2.2", @@ -15023,12 +10349,6 @@ } } }, - "sisteransi": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/sisteransi/download/sisteransi-0.1.1.tgz", - "integrity": "sha1-VDFEfV99FnWqxmfM0LhlpJlMs84=", - "dev": true - }, "slash": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", @@ -15036,22 +10356,22 @@ "dev": true }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-1.0.0.tgz", - "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", - "dev": true, - "optional": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snake-case": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/snake-case/download/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz?cache=0&sync_timestamp=1581872792458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz", + "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", "dev": true, "requires": { - "no-case": "^2.2.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } } }, "snapdragon": { @@ -15072,7 +10392,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { @@ -15096,6 +10416,12 @@ "requires": { "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -15159,12 +10485,6 @@ "kind-of": "^3.2.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -15177,18 +10497,19 @@ } }, "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz", - "integrity": "sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0=", + "version": "0.3.20", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz", + "integrity": "sha1-smooPsVi74smh7RAM6Tuzqx12FU=", "dev": true, "requires": { "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" } }, "sockjs-client": { "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz?cache=0&sync_timestamp=1566505930428&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz", "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", "dev": true, "requires": { @@ -15201,9 +10522,9 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "version": "3.2.7", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" @@ -15217,19 +10538,17 @@ "requires": { "websocket-driver": ">=0.5.1" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true } } }, - "sortablejs": { - "version": "1.8.4", - "resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.8.4.tgz", - "integrity": "sha1-G7/q+pbTmbg/KOJdjknU+/2GfzA=" + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1602621924510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } }, "source-list-map": { "version": "2.0.1", @@ -15245,7 +10564,7 @@ }, "source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829475930&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", "dev": true, "requires": { @@ -15257,9 +10576,9 @@ } }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz", - "integrity": "sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=", + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -15280,10 +10599,16 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz", + "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=", + "dev": true + }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz", - "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -15291,15 +10616,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz", - "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz?cache=0&sync_timestamp=1587422410312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -15307,15 +10632,15 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz", - "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", + "version": "3.0.7", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.7.tgz?cache=0&sync_timestamp=1606610843748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.7.tgz", + "integrity": "sha1-6cGKQQ5e1+EkQqVJ+9ivp2cDjWU=", "dev": true }, "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.1.tgz", - "integrity": "sha1-bxLtHF236k8k67i4m6WMh8CCV/I=", + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970558936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", + "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", "dev": true, "requires": { "debug": "^4.1.0", @@ -15323,23 +10648,6 @@ "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } } }, "spdy-transport": { @@ -15356,21 +10664,6 @@ "wbuf": "^1.7.3" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", @@ -15396,16 +10689,13 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "squire-rte": { - "version": "github:sohee-lee7/Squire#b1e0e1031fa18912d233c204cbe7c7fae4a42621", - "from": "github:sohee-lee7/Squire#b1e0e1031fa18912d233c204cbe7c7fae4a42621" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "ssf": { - "version": "0.10.3", - "resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.10.3.tgz", - "integrity": "sha1-jq4fwpyQpVLnkhII+BiS1vd6yys=", + "version": "0.11.2", + "resolved": "https://r2.cnpmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", "requires": { "frac": "~1.1.2" } @@ -15442,22 +10732,10 @@ "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", "dev": true }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.2.tgz", - "integrity": "sha1-M+ujiXeIVYvr/C2wWdwVjsNs67g=", - "dev": true - }, "stackframe": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.1.1.tgz?cache=0&sync_timestamp=1578260012451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.1.1.tgz", - "integrity": "sha1-/+8KMxixtgw7WFZJiaylZgcp7HE=", - "dev": true - }, - "staged-git-files": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/staged-git-files/download/staged-git-files-1.1.2.tgz", - "integrity": "sha1-QybTOIbcns+immGTv1EbqQpGRUs=", + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", + "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", "dev": true }, "static-extend": { @@ -15483,28 +10761,13 @@ }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1587327902535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz", - "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "stream-browserify": { "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041545531&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz", "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", "dev": true, "requires": { @@ -15547,137 +10810,80 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, - "string-argv": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/string-argv/download/string-argv-0.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-argv%2Fdownload%2Fstring-argv-0.0.2.tgz", - "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/string-hash/download/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", "dev": true }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/string-length/download/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.padend": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.1.0.tgz?cache=0&sync_timestamp=1576312179430&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.padend%2Fdownload%2Fstring.prototype.padend-3.1.0.tgz", - "integrity": "sha1-3Aj1eoAQ3FwVNVAxj2fhOtu3KsM=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "string.prototype.padstart": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.1.0.tgz?cache=0&sync_timestamp=1576312396721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.padstart%2Fdownload%2Fstring.prototype.padstart-3.1.0.tgz", - "integrity": "sha1-tHwIdUDQcQvlpJN1dRoKYnvU/5A=", + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha1-m9uKxqvW1gKxek7TIYcNL43O/HQ=", + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.3.tgz?cache=0&sync_timestamp=1606007972119&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.3.tgz", + "integrity": "sha1-oivVPMpcfPRNfJ1ccyEYhz1s0Ys=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha1-RAMUsVmWyGbOigNBiU1FGGIAxdk=", + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.3.tgz?cache=0&sync_timestamp=1606007972027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.3.tgz", + "integrity": "sha1-m0y1kOEjuzZWRAHVmCQpjeUP1ao=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz", - "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "dev": true, "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" + "ansi-regex": "^5.0.0" }, "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", "dev": true } } }, - "strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-0.1.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true }, "strip-indent": { "version": "2.0.0", @@ -15686,9 +10892,9 @@ "dev": true }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", "dev": true }, "stylehacks": { @@ -15704,7 +10910,7 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045448419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", "dev": true, "requires": { @@ -15715,18 +10921,24 @@ } } }, + "stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, "requires": { "has-flag": "^3.0.0" } }, "svg-baker": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/svg-baker/download/svg-baker-1.5.0.tgz", - "integrity": "sha1-6U51Uj2TA+mis0SJhwgNlmy5CvQ=", + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/svg-baker/download/svg-baker-1.7.0.tgz?cache=0&sync_timestamp=1586349310975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvg-baker%2Fdownload%2Fsvg-baker-1.7.0.tgz", + "integrity": "sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=", "dev": true, "requires": { "bluebird": "^3.5.0", @@ -15752,13 +10964,13 @@ }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { @@ -15771,7 +10983,7 @@ "dependencies": { "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } @@ -15889,7 +11101,7 @@ }, "postcss": { "version": "5.2.18", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz?cache=0&sync_timestamp=1581994853208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-5.2.18.tgz", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz?cache=0&sync_timestamp=1607512891622&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-5.2.18.tgz", "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=", "dev": true, "requires": { @@ -15910,7 +11122,7 @@ }, "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { @@ -15920,14 +11132,14 @@ } }, "svg-baker-runtime": { - "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/svg-baker-runtime/download/svg-baker-runtime-1.4.3.tgz", - "integrity": "sha1-jsA12vOvSr5+eIEgho67+Eo0Ro8=", + "version": "1.4.7", + "resolved": "https://registry.npm.taobao.org/svg-baker-runtime/download/svg-baker-runtime-1.4.7.tgz", + "integrity": "sha1-9HIGN/W2IC7vY3jYHx/q0IFfik4=", "dev": true, "requires": { "deepmerge": "1.3.2", "mitt": "1.1.2", - "svg-baker": "^1.5.0" + "svg-baker": "^1.7.0" }, "dependencies": { "deepmerge": { @@ -15935,12 +11147,18 @@ "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", "dev": true + }, + "mitt": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/mitt/download/mitt-1.1.2.tgz", + "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", + "dev": true } } }, "svg-sprite-loader": { "version": "4.1.3", - "resolved": "https://registry.npm.taobao.org/svg-sprite-loader/download/svg-sprite-loader-4.1.3.tgz?cache=0&sync_timestamp=1580480714186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvg-sprite-loader%2Fdownload%2Fsvg-sprite-loader-4.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/svg-sprite-loader/download/svg-sprite-loader-4.1.3.tgz?cache=0&sync_timestamp=1608021801840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvg-sprite-loader%2Fdownload%2Fsvg-sprite-loader-4.1.3.tgz", "integrity": "sha1-0lz6daXE5Jn3tSgigdtus72hP+A=", "dev": true, "requires": { @@ -15970,19 +11188,18 @@ "dev": true }, "svgo": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.2.0.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.2.0.tgz", - "integrity": "sha1-MFqPwPT5cQgoxlA5u5PVeTIl/8M=", + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", "dev": true, "requires": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.28", - "css-url-regex": "^1.1.0", - "csso": "^3.5.1", - "js-yaml": "^3.12.0", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", "mkdirp": "~0.5.1", "object.values": "^1.1.0", "sax": "~1.2.4", @@ -15991,106 +11208,62 @@ "util.promisify": "~1.0.0" } }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/swap-case/download/swap-case-1.1.2.tgz?cache=0&sync_timestamp=1575601560703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fswap-case%2Fdownload%2Fswap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "dev": true, - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz", - "integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz", - "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", - "dev": true - }, - "synchronous-promise": { - "version": "2.0.10", - "resolved": "https://registry.npm.taobao.org/synchronous-promise/download/synchronous-promise-2.0.10.tgz", - "integrity": "sha1-5kxv06/SX0I5YzUwQ/Smjr05f9g=", - "dev": true - }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/table/download/table-4.0.2.tgz", - "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", + "version": "5.4.6", + "resolved": "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz?cache=0&sync_timestamp=1605825584818&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz", + "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", "dev": true, - "optional": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz?cache=0&sync_timestamp=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true, - "optional": true + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, - "optional": true + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, - "optional": true + "requires": { + "ansi-regex": "^4.1.0" + } } } }, "tapable": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088855476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", "dev": true }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz", - "integrity": "sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, "terser": { - "version": "4.6.6", - "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.6.6.tgz?cache=0&sync_timestamp=1583252322857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.6.6.tgz", - "integrity": "sha1-2iOC5sr734YgXoL7mhFb1mTVSGM=", + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1606494026148&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", + "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", "dev": true, "requires": { "commander": "^2.20.0", @@ -16098,12 +11271,6 @@ "source-map-support": "~0.5.12" }, "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", @@ -16113,16 +11280,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha1-Xsry29xfuZdF/QZ5H0b8ndscmnw=", + "version": "1.4.5", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1603881839307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz", + "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", + "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -16142,7 +11309,7 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { @@ -16161,7 +11328,7 @@ }, "make-dir": { "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1581538411621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", "dev": true, "requires": { @@ -16169,34 +11336,19 @@ "semver": "^5.6.0" } }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { "p-limit": "^2.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "pkg-dir": { @@ -16210,7 +11362,7 @@ }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -16227,134 +11379,33 @@ } } }, - "test-exclude": { - "version": "4.2.3", - "resolved": "https://registry.npm.taobao.org/test-exclude/download/test-exclude-4.2.3.tgz", - "integrity": "sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA=", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz", + "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "thread-loader": { "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1565261083321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1603809423332&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz", "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", "dev": true, "requires": { @@ -16363,16 +11414,10 @@ "neo-async": "^2.6.0" } }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true - }, "throttle-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz", - "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=" + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==" }, "through": { "version": "2.3.8", @@ -16397,9 +11442,9 @@ "dev": true }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.11.tgz", - "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=", + "version": "2.0.12", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793688024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", + "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -16416,31 +11461,15 @@ "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/title-case/download/title-case-2.1.1.tgz?cache=0&sync_timestamp=1575601563515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftitle-case%2Fdownload%2Ftitle-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1588178571895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz", "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", @@ -16450,13 +11479,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-mark": { - "version": "1.1.9", - "resolved": "https://registry.npm.taobao.org/to-mark/download/to-mark-1.1.9.tgz", - "integrity": "sha1-LPvI52XEMN3LRqIYvgebTKJ3PVs=" + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -16467,12 +11490,6 @@ "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", @@ -16528,72 +11545,28 @@ "punycode": "^2.1.1" } }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, "traverse": { "version": "0.6.6", "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz", - "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", "dev": true }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/tsconfig/download/tsconfig-7.0.0.tgz", - "integrity": "sha1-hFOIdaTcIW5cSlQys6Tew9VOkbc=", - "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz", + "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=", + "dev": true }, "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.11.1.tgz", - "integrity": "sha1-6xXRKIJ/vuKEFUnhcfRe0zisfjU=", + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", "dev": true }, "tty-browserify": { @@ -16602,69 +11575,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "tui-chart": { - "version": "3.10.1", - "resolved": "https://registry.npm.taobao.org/tui-chart/download/tui-chart-3.10.1.tgz?cache=0&sync_timestamp=1583286496287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftui-chart%2Fdownload%2Ftui-chart-3.10.1.tgz", - "integrity": "sha1-jwq/rPhmLtTRsdNYRB6LcC7ndIA=", - "requires": { - "core-js": "^3.6.4", - "raphael": "git+https://github.com/nhn/raphael.git#2.2.0-c", - "tui-code-snippet": "^2.3.1" - }, - "dependencies": { - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.4.tgz", - "integrity": "sha1-RAqDU2tFgRS5yyrBWAujd9xHBkc=" - }, - "tui-code-snippet": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/tui-code-snippet/download/tui-code-snippet-2.3.1.tgz", - "integrity": "sha1-0R2YOMkKLhTeyxDeullXWHMcZt4=" - } - } - }, - "tui-code-snippet": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/tui-code-snippet/download/tui-code-snippet-1.5.2.tgz", - "integrity": "sha1-9Ljw8ayZawtbYh93yVB68ZoN4jg=" - }, - "tui-color-picker": { - "version": "2.2.6", - "resolved": "https://registry.npm.taobao.org/tui-color-picker/download/tui-color-picker-2.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftui-color-picker%2Fdownload%2Ftui-color-picker-2.2.6.tgz", - "integrity": "sha1-urVORzgOVQuzrIrpdAIbPMJRiqk=", - "requires": { - "tui-code-snippet": "^2.2.0" - }, - "dependencies": { - "tui-code-snippet": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/tui-code-snippet/download/tui-code-snippet-2.3.1.tgz", - "integrity": "sha1-0R2YOMkKLhTeyxDeullXWHMcZt4=" - } - } - }, - "tui-editor": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/tui-editor/download/tui-editor-1.3.3.tgz", - "integrity": "sha1-l3KVk7mg97dCyVTjzhIww41m/y8=", - "requires": { - "@types/codemirror": "0.0.71", - "@types/jquery": "^3.3.29", - "@types/markdown-it": "0.0.7", - "codemirror": "^5.33.0", - "highlight.js": "^9.12.0", - "jquery": "^3.3.1", - "markdown-it": "^8.4.0", - "plantuml-encoder": "^1.2.5", - "resize-observer-polyfill": "^1.5.0", - "squire-rte": "github:sohee-lee7/Squire#b1e0e1031fa18912d233c204cbe7c7fae4a42621", - "to-mark": "^1.1.4", - "tui-chart": "^3.0.1", - "tui-code-snippet": "^1.5.0", - "tui-color-picker": "^2.2.1" - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", @@ -16689,6 +11599,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1606468796224&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", @@ -16705,49 +11621,30 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/uc.micro/download/uc.micro-1.0.6.tgz", - "integrity": "sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw=" - }, "uglify-js": { - "version": "3.8.0", - "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.8.0.tgz?cache=0&sync_timestamp=1582036112063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.8.0.tgz", - "integrity": "sha1-81Qa6XsvBI1+fjqk85/YofXXqAU=", + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz", + "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", "dev": true, - "optional": true, "requires": { - "commander": "~2.20.3", + "commander": "~2.19.0", "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true, - "optional": true + "version": "2.19.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1607933281807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", + "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "optional": true + "dev": true } } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/unc-path-regex/download/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "underscore": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/underscore/download/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" - }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -16765,15 +11662,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha1-W0tCbgjROoA2Xg1lesemwexGonc=", + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz?cache=0&sync_timestamp=1583948924460&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha1-qcxsx85joKMCP8meNBuUQx1AWlc=", + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583946096584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", "dev": true }, "unidecode": { @@ -16797,7 +11694,8 @@ "uniq": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true }, "uniqs": { "version": "2.0.0", @@ -16825,7 +11723,7 @@ }, "universalify": { "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583531099652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz", "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", "dev": true }, @@ -16883,36 +11781,28 @@ }, "upath": { "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1604768637331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", "dev": true }, "upper-case": { "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&sync_timestamp=1606859943902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/upper-case-first/download/upper-case-first-1.1.2.tgz?cache=0&sync_timestamp=1575601561477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case-first%2Fdownload%2Fupper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "dev": true, - "requires": { - "upper-case": "^1.1.1" - } - }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.0.tgz", + "integrity": "sha1-qnFCYd55PoqCNHp7zJznTobyhgI=", + "dev": true, "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz?cache=0&sync_timestamp=1585438689517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, @@ -16935,27 +11825,14 @@ } }, "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.1.2.tgz", - "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=", + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252594253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz", + "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" } }, "url-parse": { @@ -16983,15 +11860,9 @@ "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", "dev": true }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/user-home/download/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "util": { "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1588238435623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", "dev": true, "requires": { @@ -17009,7 +11880,8 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "util.promisify": { "version": "1.0.1", @@ -17021,6 +11893,27 @@ "es-abstract": "^1.17.2", "has-symbols": "^1.0.1", "object.getownpropertydescriptors": "^2.1.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "utila": { @@ -17037,18 +11930,15 @@ }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1583326207173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460052228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", "dev": true }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/v8flags/download/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "requires": { - "user-home": "^1.1.1" - } + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.2.0.tgz?cache=0&sync_timestamp=1603909372873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.2.0.tgz", + "integrity": "sha1-lHHvo++RKNL3xqfKOcTda1BVsTI=", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", @@ -17083,45 +11973,76 @@ "extsprintf": "^1.2.0" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", - "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", - "dev": true - }, - "vue": { - "version": "2.6.10", - "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.10.tgz?cache=0&sync_timestamp=1583556397972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.10.tgz", - "integrity": "sha1-pysaQqTYKnIepDjRtr9V5mGVxjc=" - }, - "vue-count-to": { - "version": "1.0.13", - "resolved": "https://registry.npm.taobao.org/vue-count-to/download/vue-count-to-1.0.13.tgz", - "integrity": "sha1-PnVz6m5kwrKXL2TgoqsuI8dZD/M=" - }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", + "dev": true + }, + "vue": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/vue/download/vue-3.0.5.tgz", + "integrity": "sha1-3huC66JKv+ceCXD8m41LK6vcP+E=", + "requires": { + "@vue/compiler-dom": "3.0.5", + "@vue/runtime-dom": "3.0.5", + "@vue/shared": "3.0.5" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/compiler-core/download/@vue/compiler-core-3.0.5.tgz", + "integrity": "sha1-puVMq+lTbnTGUTrNJknzEa8dQ6w=", + "requires": { + "@babel/parser": "^7.12.0", + "@babel/types": "^7.12.0", + "@vue/shared": "3.0.5", + "estree-walker": "^2.0.1", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/compiler-dom/download/@vue/compiler-dom-3.0.5.tgz", + "integrity": "sha1-eIWhPm0Y9k3ejrzuwFLtLBAmlsI=", + "requires": { + "@vue/compiler-core": "3.0.5", + "@vue/shared": "3.0.5" + } + }, + "@vue/shared": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/shared/download/@vue/shared-3.0.5.tgz", + "integrity": "sha1-wTHYi9ZxPMTZOzuxNy7bGYMiX/A=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, "vue-eslint-parser": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz", - "integrity": "sha1-wmjJbG2Uz+PZOKX3WTlZsMozYNE=", + "version": "7.3.0", + "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.3.0.tgz?cache=0&sync_timestamp=1608030996396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.3.0.tgz", + "integrity": "sha1-iUCFg52Z2BKW+ggdGWQ3M/I9dVk=", "dev": true, - "optional": true, "requires": { - "debug": "^3.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "lodash": "^4.17.4" + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.0.1", + "lodash": "^4.17.15" }, "dependencies": { "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.3.tgz", - "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1600070417656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, - "optional": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } } @@ -17133,33 +12054,10 @@ "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", "dev": true }, - "vue-jest": { - "version": "3.0.5", - "resolved": "https://registry.npm.taobao.org/vue-jest/download/vue-jest-3.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-jest%2Fdownload%2Fvue-jest-3.0.5.tgz", - "integrity": "sha1-1vEktULcv/IHv5KWwZQT9MQLcMk=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", - "chalk": "^2.1.0", - "extract-from-css": "^0.4.4", - "find-babel-config": "^1.1.0", - "js-beautify": "^1.6.14", - "node-cache": "^4.1.1", - "object-assign": "^4.1.1", - "source-map": "^0.5.6", - "tsconfig": "^7.0.0", - "vue-template-es2015-compiler": "^1.6.0" - } - }, - "vue-jsonp": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/vue-jsonp/-/vue-jsonp-0.1.8.tgz", - "integrity": "sha512-ebxvjHl5D7bv5Z7SeRzZUAPOSRMx+RiAeej7h6dPpbtk8MVz/b3n9fOZ8AAVmakb1pe36e+qG0J+K49a3LfpKA==" - }, "vue-loader": { - "version": "15.9.0", - "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.0.tgz", - "integrity": "sha1-XUsDeKRgYYj8g+WH7SPJS8OhCZg=", + "version": "15.9.5", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.5.tgz?cache=0&sync_timestamp=1607093678805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.5.tgz", + "integrity": "sha1-epYNxCCjQ53qrN2gOP3Nv3xDJwY=", "dev": true, "requires": { "@vue/component-compiler-utils": "^3.1.0", @@ -17169,46 +12067,117 @@ "vue-style-loader": "^4.1.0" }, "dependencies": { - "@vue/component-compiler-utils": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.1.1.tgz", - "integrity": "sha1-1O+PgCkmdARK1iEeM2owLk0qZXU=", + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" + "color-convert": "^2.0.1" } }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1573302169507&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", - "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", - "dev": true + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "vue-particles": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/vue-particles/download/vue-particles-1.0.9.tgz", + "integrity": "sha1-KdnMK+AVffHAqH7DuWyW8zJ5Um4=", + "dev": true, + "requires": { + "particles.js": "^2.0.0", + "vue": "^2.2.6" + }, + "dependencies": { + "vue": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", + "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==", "dev": true } } }, "vue-router": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.0.2.tgz", - "integrity": "sha1-3txnr+bE4rwlaCyLHCqMDXx+Vr4=" - }, - "vue-splitpane": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/vue-splitpane/download/vue-splitpane-1.0.4.tgz", - "integrity": "sha1-zfdEqPMb7csIbpVFqUU1ZdNgvQI=" + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-4.0.1.tgz?cache=0&sync_timestamp=1607347184356&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-4.0.1.tgz", + "integrity": "sha1-MJJA5QUksefU6C4n8KD6Jf49HXE=" }, "vue-style-loader": { "version": "4.1.2", @@ -17218,16 +12187,14 @@ "requires": { "hash-sum": "^1.0.2", "loader-utils": "^1.0.2" - } - }, - "vue-template-compiler": { - "version": "2.6.10", - "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.10.tgz?cache=0&sync_timestamp=1576267127911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.10.tgz", - "integrity": "sha1-MjtPNJXwT6o1AzN6gvXWUHeZycw=", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } } }, "vue-template-es2015-compiler": { @@ -17236,64 +12203,219 @@ "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", "dev": true }, - "vuedraggable": { - "version": "2.20.0", - "resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.20.0.tgz", - "integrity": "sha1-gurB+aMsEW70z1IV/hjfsVKvqd0=", + "vue-types": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz", + "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", "requires": { - "sortablejs": "^1.8.4" + "is-plain-object": "3.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==" + } } }, "vuex": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.1.0.tgz", - "integrity": "sha1-Y0uBUVzwz+l2vR/+lgF1XlH4Q7k=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz?cache=0&sync_timestamp=1583455604765&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fw3c-hr-time%2Fdownload%2Fw3c-hr-time-1.0.2.tgz", - "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } + "version": "4.0.0-rc.2", + "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-4.0.0-rc.2.tgz?cache=0&sync_timestamp=1606318256705&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuex%2Fdownload%2Fvuex-4.0.0-rc.2.tgz", + "integrity": "sha1-NoHITrb1FxsDntqhfMeBBeIHJPM=" }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", "requires": { - "makeerror": "1.0.x" + "loose-envify": "^1.0.0" } }, - "watch": { - "version": "0.18.0", - "resolved": "https://registry.npm.taobao.org/watch/download/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.5.tgz?cache=0&sync_timestamp=1607687490176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.7.5.tgz", + "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", "dev": true, "requires": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", + "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz", - "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=", + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz?cache=0&sync_timestamp=1604989085906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack-chokidar2%2Fdownload%2Fwatchpack-chokidar2-2.0.1.tgz", + "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", "dev": true, + "optional": true, "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602588845974&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1608033993741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } } }, "wbuf": { @@ -17314,52 +12436,58 @@ "defaults": "^1.0.3" } }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebidl-conversions%2Fdownload%2Fwebidl-conversions-4.0.2.tgz", - "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=", - "dev": true - }, "webpack": { - "version": "4.28.4", - "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.28.4.tgz", - "integrity": "sha1-HdrmyJiH1++3Uq3ww80yubB+rNA=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "version": "4.44.2", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.44.2.tgz?cache=0&sync_timestamp=1608060653278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.44.2.tgz", + "integrity": "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, "webpack-bundle-analyzer": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.6.0.tgz", - "integrity": "sha1-ObOo+CnKBEaCvG+eARyV3rVUrv0=", + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1608133719952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-walk": "^6.1.1", + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", "bfj": "^6.1.1", "chalk": "^2.4.1", "commander": "^2.18.0", @@ -17367,49 +12495,34 @@ "express": "^4.16.3", "filesize": "^3.6.1", "gzip-size": "^5.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mkdirp": "^0.5.1", "opener": "^1.5.1", "ws": "^6.0.0" }, "dependencies": { "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583823913618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534280466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } } } }, "webpack-chain": { - "version": "4.12.1", - "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz?cache=0&sync_timestamp=1580740851884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-4.12.1.tgz", - "integrity": "sha1-bIQ5u7KrVQlS1g4eqTGRQZBsAqY=", + "version": "6.5.1", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz", + "integrity": "sha1-TycoTLu2N+PI+970Pu9YjU2GEgY=", "dev": true, "requires": { "deepmerge": "^1.5.2", - "javascript-stringify": "^1.6.0" + "javascript-stringify": "^2.0.1" } }, "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1582191388714&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", - "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", + "version": "3.7.3", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz?cache=0&sync_timestamp=1608052639209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.3.tgz", + "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", "dev": true, "requires": { "memory-fs": "^0.4.1", @@ -17420,9 +12533,9 @@ } }, "webpack-dev-server": { - "version": "3.10.3", - "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.10.3.tgz", - "integrity": "sha1-81lFA2gT5X71gsJCDve0cOFNOvA=", + "version": "3.11.0", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz?cache=0&sync_timestamp=1606496402755&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz", + "integrity": "sha1-jxVKO84bz9HMYY705wMniFXn/4w=", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -17433,31 +12546,31 @@ "debug": "^4.1.1", "del": "^4.1.1", "express": "^4.17.1", - "html-entities": "^1.2.1", + "html-entities": "^1.3.1", "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", "internal-ip": "^4.3.0", "ip": "^1.1.5", "is-absolute-url": "^3.0.3", "killable": "^1.0.1", - "loglevel": "^1.6.6", + "loglevel": "^1.6.8", "opn": "^5.5.0", "p-retry": "^3.0.1", - "portfinder": "^1.0.25", + "portfinder": "^1.0.26", "schema-utils": "^1.0.0", "selfsigned": "^1.10.7", "semver": "^6.3.0", "serve-index": "^1.9.1", - "sockjs": "0.3.19", + "sockjs": "0.3.20", "sockjs-client": "1.4.0", - "spdy": "^4.0.1", + "spdy": "^4.0.2", "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", "url": "^0.11.0", "webpack-dev-middleware": "^3.7.2", "webpack-log": "^2.0.0", "ws": "^6.2.1", - "yargs": "12.0.5" + "yargs": "^13.3.2" }, "dependencies": { "ansi-regex": { @@ -17466,6 +12579,33 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", @@ -17474,7 +12614,7 @@ }, "chokidar": { "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602588845974&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", "dev": true, "requires": { @@ -17492,100 +12632,102 @@ "upath": "^1.1.1" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1570439926300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { "locate-path": "^3.0.0" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1608033993741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", "dev": true, + "optional": true, "requires": { - "pump": "^3.0.0" + "bindings": "^1.5.0", + "nan": "^2.12.1" } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", - "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, "is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz", "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "binary-extensions": "^1.0.0" } }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", @@ -17596,76 +12738,35 @@ "path-exists": "^3.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz", - "integrity": "sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { "p-limit": "^2.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", "dev": true, "requires": { - "find-up": "^3.0.0" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", "dev": true, "requires": { @@ -17676,10 +12777,38 @@ }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", @@ -17691,46 +12820,63 @@ }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1608033349725&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", "dev": true, "requires": { "has-flag": "^3.0.0" } }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz", - "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "version": "13.3.2", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1607207963779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-11.1.1.tgz", - "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1604886709178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -17751,7 +12897,7 @@ }, "webpack-merge": { "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz", "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", "dev": true, "requires": { @@ -17760,7 +12906,7 @@ }, "webpack-sources": { "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965333971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", "dev": true, "requires": { @@ -17777,52 +12923,25 @@ } }, "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz", - "integrity": "sha1-otTg1PTxFvHmKX66WLBdQwEA6fk=", + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "dev": true, "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz", - "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz", - "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=", + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", + "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", "dev": true }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-6.5.0.tgz?cache=0&sync_timestamp=1578023109671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-6.5.0.tgz", - "integrity": "sha1-8t8Cv/F2/WUHDfdK1cy7WhmZZag=", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -17830,16 +12949,18 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } + "wmf": { + "version": "1.0.2", + "resolved": "https://r2.cnpmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word": { + "version": "0.3.0", + "resolved": "https://r2.cnpmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" }, "word-wrap": { "version": "1.2.3", @@ -17847,12 +12968,6 @@ "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", @@ -17863,44 +12978,39 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792371412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "color-convert": "^2.0.1" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true } } }, @@ -17911,55 +13021,37 @@ "dev": true }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/write/download/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz", + "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", "dev": true, - "optional": true, "requires": { "mkdirp": "^0.5.1" } }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.3.tgz", - "integrity": "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, "ws": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-5.2.2.tgz", - "integrity": "sha1-3/7xSGa46NyRM1glFNG++vlumA8=", + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1607113213006&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", "dev": true, "requires": { "async-limiter": "~1.0.0" } }, "xlsx": { - "version": "0.14.1", - "resolved": "https://registry.npm.taobao.org/xlsx/download/xlsx-0.14.1.tgz", - "integrity": "sha1-7O31Nr0elAVUhv9IT1iI3KqJvT0=", - "requires": { - "adler-32": "~1.2.0", - "cfb": "^1.1.0", - "codepage": "~1.14.0", - "commander": "~2.17.1", - "crc-32": "~1.2.0", - "exit-on-epipe": "~1.0.1", - "ssf": "~0.10.2" + "version": "0.18.4", + "resolved": "https://r.cnpmjs.org/xlsx/-/xlsx-0.18.4.tgz", + "integrity": "sha512-u2plLVR/Ju2NxByPcWuxW3eOHEE/EH8w0vDyvHx8pFa8qO3fpq+l/57msr/Eq4cY5LErFOFD4sp4jIyPd6nFzQ==", + "requires": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" } }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz", - "integrity": "sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=", - "dev": true - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", @@ -17967,40 +13059,52 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.1.tgz?cache=0&sync_timestamp=1606778028917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.1.tgz", + "integrity": "sha1-jbK4PDHF11CZu4kLI/MJSJHiR9Q=", + "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true }, "yargs": { - "version": "10.1.2", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-10.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-10.1.2.tgz", - "integrity": "sha1-RU0HTCsWpRpD4vt4B+T53mnMtcU=", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1607207963779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.1.0" + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" } }, "yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-8.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-8.1.0.tgz", - "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", + "version": "18.1.3", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1604886709178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + } } }, "yorkie": { @@ -18015,9 +13119,20 @@ "strip-indent": "^2.0.0" }, "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "execa": { "version": "0.8.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1606970975645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, "requires": { @@ -18030,55 +13145,35 @@ "strip-eof": "^1.0.0" } }, - "normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", - "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true - } - } - }, - "yup": { - "version": "0.26.10", - "resolved": "https://registry.npm.taobao.org/yup/download/yup-0.26.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyup%2Fdownload%2Fyup-0.26.10.tgz", - "integrity": "sha1-NUWDlmMokDj68l+s/AfhH9Z8DLE=", - "dev": true, - "requires": { - "@babel/runtime": "7.0.0", - "fn-name": "~2.0.1", - "lodash": "^4.17.10", - "property-expr": "^1.5.0", - "synchronous-promise": "^2.0.5", - "toposort": "^2.0.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.0.0.tgz?cache=0&sync_timestamp=1583373757080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.0.0.tgz", - "integrity": "sha1-ret4/t/IVaoFvAQWQPP2+Y6FQkw=", + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "dev": true, "requires": { - "regenerator-runtime": "^0.12.0" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.12.1.tgz?cache=0&sync_timestamp=1582505712016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.12.1.tgz", - "integrity": "sha1-+hpxVEdkwDb4xJsToIsllMn4oN4=", + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", "dev": true }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true } } - }, - "zrender": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.0.7.tgz?cache=0&sync_timestamp=1583136509110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzrender%2Fdownload%2Fzrender-4.0.7.tgz", - "integrity": "sha1-Fa6WCCL17+1BCZXTflEH/j3hDm0=" } } } diff --git a/WebSite/package.json b/WebSite/package.json index 939263a..8a76f66 100644 --- a/WebSite/package.json +++ b/WebSite/package.json @@ -1,122 +1,54 @@ { - "name": "vue-element-admin", - "version": "1.1.0", - "description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features", - "author": "Pan <panfree23@gmail.com>", - "license": "MIT", + "name": "vue-element-next", + "version": "0.7.8", + "private": true, "scripts": { - "serve": "vue-cli-service serve --open", + "serve": "vue-cli-service serve", + "serve-mock": "vue-cli-service serve --mode mock", "build": "vue-cli-service build", - "build:prod": "vue-cli-service build", - "build:stage": "vue-cli-service build --mode staging", - "build:test": "vue-cli-service build --mode test", - "preview": "node build/index.js --preview", - "lint": "eslint --ext .js,.vue src", - "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src", - "test:unit": "jest --clearCache && vue-cli-service test:unit", - "test:ci": "npm run lint && npm run test:unit", - "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", - "new": "plop" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "src/**/*.{js,vue}": [ - "eslint --fix", - "git add" - ] - }, - "keywords": [ - "vue", - "admin", - "dashboard", - "element-ui", - "boilerplate", - "admin-template", - "management-system" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/PanJiaChen/vue-element-admin.git" - }, - "bugs": { - "url": "https://github.com/PanJiaChen/vue-element-admin/issues" + "lint": "vue-cli-service lint" }, "dependencies": { - "axios": "0.18.1", + "@ant-design/icons-vue": "^7.0.1", + "@element-plus/icons": "0.0.11", + "@element-plus/icons-vue": "^2.3.1", + "ant-design-vue": "^4.0.0-rc.6", + "axios": "^0.21.1", "clipboard": "2.0.4", - "codemirror": "5.45.0", - "css-loader": "^3.5.3", - "driver.js": "0.9.5", - "dropzone": "5.5.1", - "echarts": "4.2.1", - "element-ui": "2.13.0", - "file-saver": "2.0.1", - "fuse.js": "3.4.4", - "js-cookie": "2.2.0", - "jsonlint": "1.6.3", - "jszip": "3.2.1", - "moment": "^2.24.0", + "core-js": "^3.6.5", + "crypto-js": "4.0.0", + "element-plus": "^1.0.2-beta.31", + "file-saver": "^2.0.5", + "js-cookie": "^3.0.5", "normalize.css": "7.0.0", "nprogress": "0.2.0", - "path-to-regexp": "2.4.0", - "screenfull": "4.2.0", - "script-loader": "0.7.2", - "showdown": "1.9.0", - "sortablejs": "1.8.4", - "tui-editor": "1.3.3", - "vue": "2.6.10", - "vue-count-to": "1.0.13", - "vue-jsonp": "^0.1.8", - "vue-router": "3.0.2", - "vue-splitpane": "1.0.4", - "vuedraggable": "2.20.0", - "vuex": "3.1.0", - "xlsx": "0.14.1" + "qs": "^6.10.3", + "vue": "3.0.5", + "vue-router": "^4.0.0-0", + "vuex": "^4.0.0-0", + "xlsx": "^0.18.4" }, "devDependencies": { - "@babel/core": "7.0.0", - "@babel/register": "7.0.0", - "@vue/cli-plugin-babel": "3.5.3", - "@vue/cli-plugin-eslint": "^3.9.1", - "@vue/cli-plugin-unit-jest": "3.5.3", - "@vue/cli-service": "3.5.3", + "@fortawesome/fontawesome-free": "^5.15.1", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-plugin-router": "~4.5.0", + "@vue/cli-plugin-vuex": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "@vue/compiler-sfc": "3.0.5", "@vue/eslint-config-prettier": "^6.0.0", - "@vue/test-utils": "1.0.0-beta.29", - "autoprefixer": "^9.5.1", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "10.0.1", - "babel-jest": "23.6.0", + "babel-eslint": "^10.1.0", "chalk": "2.4.2", - "chokidar": "2.1.5", - "connect": "3.6.6", - "eslint": "5.15.3", - "eslint-plugin-prettier": "^3.1.2", - "eslint-plugin-vue": "5.2.2", - "html-webpack-plugin": "3.2.0", - "husky": "1.3.1", - "lint-staged": "8.1.5", + "chokidar": "3.5.1", + "eslint": "^6.7.2", + "eslint-plugin-prettier": "^3.1.3", + "eslint-plugin-vue": "^7.0.0-0", "mockjs": "1.0.1-beta3", - "node-sass": "^4.9.0", - "plop": "2.3.0", "prettier": "^1.19.1", - "runjs": "^4.3.2", - "sass-loader": "^7.1.0", - "script-ext-html-webpack-plugin": "2.1.3", - "serve-static": "^1.13.2", + "sass": "^1.26.5", + "sass-loader": "^8.0.2", + "script-loader": "^0.7.2", "svg-sprite-loader": "4.1.3", - "svgo": "1.2.0", - "vue-template-compiler": "2.6.10" - }, - "engines": { - "node": ">=8.9", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] + "vue-particles": "^1.0.9" + } } diff --git a/WebSite/plop-templates/component/index.hbs b/WebSite/plop-templates/component/index.hbs deleted file mode 100644 index 7661055..0000000 --- a/WebSite/plop-templates/component/index.hbs +++ /dev/null @@ -1,26 +0,0 @@ -{{#if template}} -<template> - <div /> -</template> -{{/if}} - -{{#if script}} -<script> -export default { - name: '{{ properCase name }}', - props: {}, - data() { - return {} - }, - created() {}, - mounted() {}, - methods: {} -} -</script> -{{/if}} - -{{#if style}} -<style lang="scss" scoped> - -</style> -{{/if}} diff --git a/WebSite/plop-templates/component/prompt.js b/WebSite/plop-templates/component/prompt.js deleted file mode 100644 index 3723e8e..0000000 --- a/WebSite/plop-templates/component/prompt.js +++ /dev/null @@ -1,55 +0,0 @@ -const { notEmpty } = require('../utils.js') - -module.exports = { - description: 'generate vue component', - prompts: [{ - type: 'input', - name: 'name', - message: 'component name please', - validate: notEmpty('name') - }, - { - type: 'checkbox', - name: 'blocks', - message: 'Blocks:', - choices: [{ - name: '<template>', - value: 'template', - checked: true - }, - { - name: '<script>', - value: 'script', - checked: true - }, - { - name: 'style', - value: 'style', - checked: true - } - ], - validate(value) { - if (value.indexOf('script') === -1 && value.indexOf('template') === -1) { - return 'Components require at least a <script> or <template> tag.' - } - return true - } - } - ], - actions: data => { - const name = '{{properCase name}}' - const actions = [{ - type: 'add', - path: `src/components/${name}/index.vue`, - templateFile: 'plop-templates/component/index.hbs', - data: { - name: name, - template: data.blocks.includes('template'), - script: data.blocks.includes('script'), - style: data.blocks.includes('style') - } - }] - - return actions - } -} diff --git a/WebSite/plop-templates/store/index.hbs b/WebSite/plop-templates/store/index.hbs deleted file mode 100644 index 4f8e2dc..0000000 --- a/WebSite/plop-templates/store/index.hbs +++ /dev/null @@ -1,16 +0,0 @@ -{{#if state}} -const state = {} -{{/if}} - -{{#if mutations}} -const mutations = {} -{{/if}} - -{{#if actions}} -const actions = {} -{{/if}} - -export default { - namespaced: true, - {{options}} -} diff --git a/WebSite/plop-templates/store/prompt.js b/WebSite/plop-templates/store/prompt.js deleted file mode 100644 index bcbc11d..0000000 --- a/WebSite/plop-templates/store/prompt.js +++ /dev/null @@ -1,62 +0,0 @@ -const { notEmpty } = require('../utils.js') - -module.exports = { - description: 'generate store', - prompts: [{ - type: 'input', - name: 'name', - message: 'store name please', - validate: notEmpty('name') - }, - { - type: 'checkbox', - name: 'blocks', - message: 'Blocks:', - choices: [{ - name: 'state', - value: 'state', - checked: true - }, - { - name: 'mutations', - value: 'mutations', - checked: true - }, - { - name: 'actions', - value: 'actions', - checked: true - } - ], - validate(value) { - if (!value.includes('state') || !value.includes('mutations')) { - return 'store require at least state and mutations' - } - return true - } - } - ], - actions(data) { - const name = '{{name}}' - const { blocks } = data - const options = ['state', 'mutations'] - const joinFlag = `, - ` - if (blocks.length === 3) { - options.push('actions') - } - - const actions = [{ - type: 'add', - path: `src/store/modules/${name}.js`, - templateFile: 'plop-templates/store/index.hbs', - data: { - options: options.join(joinFlag), - state: blocks.includes('state'), - mutations: blocks.includes('mutations'), - actions: blocks.includes('actions') - } - }] - return actions - } -} diff --git a/WebSite/plop-templates/utils.js b/WebSite/plop-templates/utils.js deleted file mode 100644 index 0310ca0..0000000 --- a/WebSite/plop-templates/utils.js +++ /dev/null @@ -1,9 +0,0 @@ -exports.notEmpty = name => { - return v => { - if (!v || v.trim === '') { - return `${name} is required` - } else { - return true - } - } -} diff --git a/WebSite/plop-templates/view/index.hbs b/WebSite/plop-templates/view/index.hbs deleted file mode 100644 index 7661055..0000000 --- a/WebSite/plop-templates/view/index.hbs +++ /dev/null @@ -1,26 +0,0 @@ -{{#if template}} -<template> - <div /> -</template> -{{/if}} - -{{#if script}} -<script> -export default { - name: '{{ properCase name }}', - props: {}, - data() { - return {} - }, - created() {}, - mounted() {}, - methods: {} -} -</script> -{{/if}} - -{{#if style}} -<style lang="scss" scoped> - -</style> -{{/if}} diff --git a/WebSite/plop-templates/view/prompt.js b/WebSite/plop-templates/view/prompt.js deleted file mode 100644 index 1d490ee..0000000 --- a/WebSite/plop-templates/view/prompt.js +++ /dev/null @@ -1,55 +0,0 @@ -const { notEmpty } = require('../utils.js') - -module.exports = { - description: 'generate a view', - prompts: [{ - type: 'input', - name: 'name', - message: 'view name please', - validate: notEmpty('name') - }, - { - type: 'checkbox', - name: 'blocks', - message: 'Blocks:', - choices: [{ - name: '<template>', - value: 'template', - checked: true - }, - { - name: '<script>', - value: 'script', - checked: true - }, - { - name: 'style', - value: 'style', - checked: true - } - ], - validate(value) { - if (value.indexOf('script') === -1 && value.indexOf('template') === -1) { - return 'View require at least a <script> or <template> tag.' - } - return true - } - } - ], - actions: data => { - const name = '{{name}}' - const actions = [{ - type: 'add', - path: `src/views/${name}/index.vue`, - templateFile: 'plop-templates/view/index.hbs', - data: { - name: name, - template: data.blocks.includes('template'), - script: data.blocks.includes('script'), - style: data.blocks.includes('style') - } - }] - - return actions - } -} diff --git a/WebSite/plopfile.js b/WebSite/plopfile.js deleted file mode 100644 index 57387bf..0000000 --- a/WebSite/plopfile.js +++ /dev/null @@ -1,9 +0,0 @@ -const viewGenerator = require('./plop-templates/view/prompt') -const componentGenerator = require('./plop-templates/component/prompt') -const storeGenerator = require('./plop-templates/store/prompt.js') - -module.exports = function(plop) { - plop.setGenerator('view', viewGenerator) - plop.setGenerator('component', componentGenerator) - plop.setGenerator('store', storeGenerator) -} diff --git a/WebSite/postcss.config.js b/WebSite/postcss.config.js deleted file mode 100644 index 961986e..0000000 --- a/WebSite/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {} - } -} diff --git a/WebSite/public/favicon.ico b/WebSite/public/favicon.ico index 34b63ac63a87ee3ea8e7a0f3f5b5406c437e2112..f59ac780025ac465c389393f1a16cf832c39ce95 100644 GIT binary patch literal 4286 zcmeH~Sx8h-7=X`cs1Je?5j{j%V>ymXW@#dgmdm(gF4xgaLLw}pUPM}60u2f(@y?7Z z<JN<TLAIDPqal%CJp@VgBo%=X;zLDBh<98%{b#0=*E@6XxigQ^8UB0L|NqYY|9h4} zNCUs9C`6v<ek4L$5kfi;XhKIoNV_{h-~SZ22b}FWrv-DlO;IeSQ-KrYHBSs>1y$H$ zXP5X=EbwJY^4Zm2A0%%nupUESOxB_9C_H5`DzQC%7E?xG6nU-m9&K-0_bz<9J%!EZ zxlVaY{`b^8&j~Tyi~dgd1-3nSksX7tuCCe;|4F_z3LWvqIZt9R;S-s(X0v@@E-&<L z&HvVXyMEAU*I~ne*3EC|NM`eSZoq$%w?@^tAspC?gr76)@j+IX7BBE6tU3G?I%>kb zE&A6|;E1m#Y%0_TV=YHnd<^?Um47tv(Rp^ggR;dwxZIJ%=JVW$w?*|WWn(E@fVm>( zlQQvvp=&q(#uu~Z;1XI-ZdOm+II_SIcV5aSb^0AVYRO>nNes?yw5q-azMu5Pr#`sY znZV}r+za)@^^qlG2X+8wO^#1|aJWZ12WP<-#(A(Nv{Y?hx2&#|?})o1$ENMsLprNq z=9(CMhyiy=9n~|c|3e!B-@l_AUwQ6G3_d=ZbWpHXCJW81Gm)EGc{Qkd3dN)Q^~Am} zE^W)R$G-2GZbHj1`;owN(~3SI^RrfxE19YUzQ0L1ayg8-PK|+ouPO4$eZkEA9Z&Uq z<u~5cf$w8K$#F@0?uZV<_qmtq!}k@v#Ee1NN7vI^R7Ex~a_&oG`(8gKH2^Vqt>^<X zKTAcbR8LyZcj#M{-ktQpzEm&OgMFq>k?)CtS*j<lpPeY$WVFZ5G5Bk+FMF+Lp|xro z@K+dfn057Cki8ogIueWwHimU6yPrV}#u<EwfhkM;&f+rMGw!nZa30r+b;M<e!5Jo> z=X%9Dv<&x*Fkmk*_%744G}-e^XseC{{t{yjKj2;xM!7VHJD!Qb#^9e}I$kb^7(8b1 z$(dLx)rYt~Wbj?boQdgDJ!u`{o67b9_du+7=k3)Xcz-LbE1NHYy{;M9Nn#zPGOY7N z_qinZU(I4NFFP%=>p;o&zt)FonvcMECe$Mn!5C9%)L={nA&mdXFN7MXtZEuFi3pmB YokFlj=0j&9sH~UfL*2cZs{rt%-;yi*S^xk5 literal 67646 zcmeHQ33wdEm2O$a2gEi66S8a^!){2(X2Y@}*zze`)?rJU(MUFiMYeol`2frK#KsuO zmSjtF$~K2NVhlNfB)}R7SkfFaCWOr{`-R<PITFnGWxw6rWZ5JvA?f}9>N#4YIW(H- zo|aUj@2RJ{r>m>p|LWDNSFfrSr2u~|Eeif$u3R;tK>3)WC|7}SiYLW+e&x3_lNCW) zTK<<DkQ|U4kQ|U4kQ|U4kQ|U4kQ|U4kQ|U4kQ|U4kQ|U4kQ|U4kQ|U4kQ|U4kQ|U4 zkQ|U4kQ|U4kQ|U4$Q=jV{%XY?v@4!ajp7N`;Cuh07ip54*GU0~;tkX&ErA8OD}>C+ zR1SCpF}#VnD^NAY(^oSQ_)Y=-Q*rK69RC8x%Ygl*pi6-NM{#|U$L|<_q}x%@6|58T zLYZ(QKeyk8bhWAVkPjO?2iki|(6)h5$e}p<YT1@20pBY@vp_46K8WK<P&eqipdWyK z2<-Vi1bPa;xz7`**^BQtL1)av@oJp=q$^;ba^EZUQF)-g@cC;8UpV<oLpk6I)Ix_l z6j!in9PqyexUB^FK*aWcK<W_a|8UP+pznZ=f^G#>LQj0&7qVaE>Z7c&zo=1K1Eq%6 zPiCH&1Bd<PXp=U@8L0aRu>l<cy#jh4G!)F!-SZ3NOPTsI=nmjth5lk%_e%#M2kaxN z6y<w~%PP<2jsrfnb+o_Ez~b{fLHi<L@ioxfpmg}<^7@B(-Z>Eaj^n`p2H2XH-4&`R zaKVOzju8668Ca6LijVS~I{X!|<*Jo?14|3sA^XR{_hyjUxF?dKKcgH!1N|%L9(TY| z2K#cdCuAS%3oX;eA1Jr{WXAz_z@{ANU04A7>+jL-p9Zi007`^MKF@uCGW`m47X8B( z*pZ(BUEm4TVO(ifyuDHmh9U*zoy%WY2;57-+wX(^1j;AQ>7GrUKw0=Ps1sD|_1iAy z_{598q3GG6aAEY`)74uI>}zU4Z-CPA-ip`%8|8iwRO1cVF6jz!jA|RbfM!s07yWm^ znsU&OKvu*ylQR7rb@)2yMo*~vLfA1%M@ZU;iNwK!@f7@aw4c5Jew`fw*z4tl`rs7s zU)>q3yb!iRLCeb(&<S?sXwT9_>=<?D?*H}-j-lwMeFVhumY#nj<@+yDuU^!14eZ*F z0slhk1UG!m2Tv~;b(lvg41Um`!ts3*_+ykm$4WBv9_slbr~x$18CqQE1rOlUjId<X z9Jl+gQM&r-3ZVDt%Y7YWC7g^bOJvM|zRunVU2x_07cMVgpU^dm<{Q*kUspPUmE(c? z1E7(r_tVJ{>m7g`Yy$q5yZX>4Kn_O3$Axhb>N*GY|4&dlK8^J2zXK1R2Q`8xQ`s+) zM)Jqyw-=zk$3cGtjdXkmTfbj}7ta9uTF^vKpqe~V=o24FANcs-=d*tvb^G^WgMFYz zbtfUr4-XdK!Tyfp#z!&VGy{FZcwcC#LVY<>K41Nh-SqYB0?{5GEKl<GyN*-U>Rk_1 zsQd0NA4tc_#kJ07Z7SMqF3U*U;2qF@#Jv1f+lysmFz1AJQ#b6z0ArphsMnLj0eg3^ zUEOh@L|s`qLr?>bdRn<;hPq~Hk&ppzUrzCl$P)X<K8%xY0{&Ayuo1nGgW>!^eHMa- zg^#}j?RxuN3)PM5=c=n~W~wVHAP2x)Pb(^}Q*Yb5Ky^N!a~%+o0Umz~dKj@u^ST0c zV-S-vEJeWCEByT1Q5VKu>FZ~?@9gh)9a^Mr**0Ho{aU4ZM^~A;sd28_V4K+w|CNhp zsH<y>)B}$$R-xOBuE)Q@hj=^iXI!h&)?GHN<iP2-UkKb!SRH%z<*i?@RByg%w$Sg* z4^;?U4?k6{-r6)@>ko8#fO=uCw^Vie4acA5pxyKg@Go)ttH&OFu~s>PSmsmRw_08n z;OC&-|FY%rN88_a$AT!%TW*`Lc0OlQ+n%UWH{Lu~Wt-Rc0ZcdTC^ote(CZfZ5#NE1 z+5x&`f8Qd@+XX(v*CS?X3ChiJuD&kT`i{0wtT%0#8}08`*=MSat7og5HqKMm-7qUE z7kU|3v#dz;6DHS<@llT>Hu~D5y>*4qTb9)UzFylHjAz%I%%6;9i+23MuPjm5ub8dj zkG8#{{5o|7j+BGdj-rJ4H&o3~ceO84Ic6}qj?@LOf$A}rK8bdL6+gb9?E;kXu*tm1 z91H0F-LU%_s$u5=bGGZPyNlKJD`yYX`#KwdW5lMN#j2~vbo?WAWPEBn@SldGa=*o5 z44|7XMY$fcGX8A)?Bh4AofFmlYwC)`7=X6mfPP<(KfbT~hgoVn?$2W#e~)KB0s6Zy zbuTM$`K=RY0=c{b<>LHzKKYaK*>1mGy}fhMK>ZFqpzrIGeP<uAZQnxG0H1Kma>wzM zakDRBook6Z=oo92IYspSSD{>%jql^w{m_%N@6q-LiFYD7*t~gOzVVO9${WzR%YpxR z#uw!K1MC^=!Sz*<@>%Lg-On*UeL0D69n?9<4ef+O-$ox`yf0`l{QD{J-w6CC<y!`T z`*k48`u*s;+3PD)sl$_EO}&stH;6s}zJolB1Cq(Z&w>4J5Z5c^O$`A1nIMi;l9e;B z=c)TS=1YY=$No3pG%KZya6W+Z1)Mjuhz=lM!!lrl9>~x5(9-y0%*Q$2RBfL=Uity= zyr*2)`N{MEf45=H95D_sVLl*}HuDQ$-vpZ2b*2h?UYNVTftB&6?%(4oO^g3ljPE<1 zsaCh&xiI-}(Lb!h9MSF$_<|r;7SnhCg|%t*DAU-^fVr^*R>q(H-p!ll4IKCB#`kR3 zP1}oA#(K1zT&%9bd~mY9g1@Ezn0BDWbO7b?Cx|5|+0(t=R9nEx_}_VNx#ri^;T?}H z`*n`(ou}>40XB8*^~uKx#J_RX9JTcum8wB;A=&DcvzUwd8#mUfn)R_V{`B`!XUAh6 zO+%+M&S(Gea?ze$-FEndF+Z3>UYOq<N6NCr$*B9eZuunezl8I0W_+xQKie{Obt)`* zjlO;7^YHD5$Mu{eS`FWDvin3Ifce71Pg`mnpqD4k!)^io=b41R<;MTi%^dTKIlW}# zdYtFDulXUw_w+e5{y_!~|6{efz9GeU5i-L$B+7|J`vBJE2cR$d5LamQ2hXvb|BrZX z-Blc&>xpm691pHtUL?i_ZvDI-@b3Wr8!=CmY#b=^!kplp_m%70oYlT_uE2va!4&RU zVdMwT`7Fpfai74j^E;Z|&-wj$?3v~`zUAS?1Lt&cFXKIL+XEXQncfK728<bD94YE< zRr)FBW{P}$HoWoGxDV?8DbPPzg%2E;(U(KJE*XZ5`DGj!b^U;H<9^Bp;{%f2PZ?so z=v@zL@q+{Mu!c;~C+kD|Ki^1O5YPAo=sC;q0KS>+`xlDXo<wb5oTJ?j8;^Z|#O{lf zpYp?aQ2GsM>m|(teZVcZ%+uzCtbzAHS%yylbJm~k>NRdGfO)8k!MhU?{^j)u?5O)0 zvzbiyNARRCKUw?dIFRcD=o^UqKGBhJV-_9@QXVibXWxwZp+cj20PJ@$5zpWry@}+{ z)N{1Q>BAGToGJQm>h8Us(xhc$K8y{gjhLzrApU#3mh}a&e(VFD1&ucfe@|~E*RyT} zCFQ3n*U<K9yU~}I3NyB2;zl`18qY&L0^9DEE%TG=5sm@rE8gR_H2%coZM4rT48xy$ zJz;M&5M!3}Cj;!a;gjK7o^<$gJ~*N7*Oi}RNMT1TPTU93x5Std_BHG;@>+LYxf7J* zm*}I7GXNl1@HunOhc^>E+dRGi|2FvL*WHLX{uH{O@w|IHWr*WQEvxJU*tf5))#8N* z^#90*&*3;>|M3bd`-0wsjl12b_RoA_Uwj(a`}2uE<Fgs3KLDrjcs+U^xV1ip`5VYf z%JOEQPv~nhX^mLwGAGsp?;}RnX(aww%RU*rd?+P96PIl$^+|XS=Xx9A*NNgBk9#=H zSnff`@j(VS4iIYwlH|vjQtF)M6Z9jektu_Dkc9u36SCiJB>qRc#hxbn@O;{v3Gp%d zJmb99Ek_(z{cLRxH$fl3HU5m>81z~W;J?RRD%Oank}LWNb~KkHw<q(&lQ7ReMF0Gt zk@(ZUgl8=WajlB!_%kMRC-!rQ*yIW4d?62OAs+|6oY}k$<*KnEwO*mGfj(nl2d3*+ z%;(Ps(ErDb#GiS4Lk{ls`Y-vwpD~%~>^`<puJLXE7GifY(9`VKx9wYyJT46V0{Z}t zDGoxm;{A#F;78muF)p*W8;!pwVB;PD+}q#u_RskKbpCqU>O0VvXWT~NPo|G2l?}kY zf%3JpwPf&pi+OzdE$s7+#^YbjKA;U`?w+r}hx>UX)cIkXjo5IV-+@Om)BO=yZhKtY zGa{W0z*rL6p%&8tKZE{XXf*!J-xGAu4`klnkLYXJ_C>r#0(&ol7w7xw%Ngq04c@n_ zEy4Oh-I#!Vz^z;7ix@(S;r}M~oV(N<{Oy+kf75J$n2#p8pPsm|?PnXW!?{ASUziSa zAz$<Zg?&L>Bi8;+%d8P&Kl~@O{l_pqA7=*shkMH~7hrz?&;29Fcsl^?|8{4o7PFnC z{YUIR#`k7ZCdLFL!hh}cv!H*pcp)*qL|-&iJ(ErOlHB_T=%O`7&j0D<>JZ=M8L}@$ zS>8=jo~$s?=Slw^+Zt_pw(*Frk3SNB&I#!6&G<W>)%JK5{0i_bCuslr^+h*xuK?-* zGvq)0Gk$_SWUk;l_ssZoVC@Osq4#mr{f9=^-+RU({PV)@3*%3$N&Wo)xV8oTa#npZ z@TdNuFR)+U@v?xlur;ub$RawxiM<8SN1HSQex)O@lyd>&&<7j?{@m--uy#QFwe=m^ z{*4V)GsXH$uH|EFPXs5n+2${0AE!lIgTAA6HzwXMBqDn}Zdfzd3gf_Y;Q!3Gwtd7D z>?04sUPX)tC<VP|B>rsA9j9#A*P~SUUfAx~7c_03kGSvfnh)4zjL{mjzc-b<;&~!2 z2;+!|Y>B=A`i1krTd;<V<A2hAtU0y7d{8I&f5EZS=Dwo}xZs`6Vo#uuk@!1bu!%Vr z;@`L$_E*>r7kzQKKj8PBEzrd|+P{%Hfb%^4e2sV(bqxCkt~KR;qKpfr-`L3dr^)+O z*he$kU%nyIEKNOn{f=>nt!Y9T8Ha8NANJj&&CN3gM_?Z5i-8Bv(I3kg4X)M8RT+ps z_l)IyfUq;d&!pWi_K?GKx#ooWXY*$46@WFxxq5a6`TQR3Z>O)XX6%uk{Jew6eY%dm zz^g%TWKizG^9nvc&db%8VgJ6c%@;X}Hh-{0rG5}L7=D|pG7x{Uj~M2e6Foap2F?f3 z=fE*TR(5CRZHG43Q+N-<C(!;)ZS(ODgUvY^W%1;S_wo5Kevkb<eJ)W#o2UK9z1q^o zcVy06fhFUMxp(}Ab#p|&vwr2A*z+T0K{>dlT*R2cZip|tfoaBIl>+~GI80A-%z?7- z-Je*8l6xMoPiGtl{dxz#TB#AfA9~W@b(tIsLbveQZI9vkk!Qyp4;x*Mfjs?R@OkSI zf30D$-kA!KJ0#`=A2tGi=E*irovbHQ^evy8;Mt~^BPIj%w;sj2wx{?k^d5<O&o;mx zShEaeGjC2P#uGF3Za$wy8~YUAPd?q#T`AsGpJ_Wa>i5mvMd$<U7omJlfeaf9An$zg zKcCNLydB>ob4~jh8)I;cf^x|D9_bNr0eOoJ8{x9?3dVZ#F~3&;Jv(HKjK0wss5~Dy zJPtC{Cp^Nj*6SIz`!m3P0mx|hvd&*sRp_RgVw73h0onIeY(w7!?q6)~E6ExgGcxG- zZWVmOjtM9?{Q>6024v4?eS5RY_un9v2XlIkEA9?nubl9&Gy}e@pK%oL!1kRLK0&M# zvYQqk1X;5RZrPTDZRS<P@z;C&_Q|fkTBS8unl&zFW<c8%?}#k~{`IH}-+PxWPe#lA zTvKrz{<P1!0yTxcK(*rQtu_<7oIUI0YfT)ZOhtX}1xZ^lbsP8{c*Hf8*W=xw6Py^| zq5UiSdm3_vM?Ny59zdPAXPEWh7nd3zqx28`B-~HwcC4wGhL~!l%R)ZAT*%C$&($+V zggya7<_3_jQP>!r@0;-D9DuI>!pU!~QGh>ac<TC8a)LPu1#v>>!&ko_SdDgDfc+rH z#ct57&c4bCoI4|p<PYP7Tp`;>(Wjk6y*~gM-L|ZjKi`>h4#Y9>wTPRX<O1fd(8z1= z$>jLhndP(vJ_&jrM4y(`FfyV%+$ZNpAP?mKb7%(>Iz!O&z}`x8cgZlz<@wfNnS#CP zXbaFDJPR^{-&V<!^Yh;WwPH`k&*3<xBUB08887Kjj`o=Q-i}=2m`z@cQ3Fv1=7B7; zk0{ELE4leK^1>c$_HACj?J7^717qNk-M42d58OYZqvuAvN7%7o1j)cVsLTDpeL3PX zrn&mi&QVXVfqQXg%6BXM-sP`TI(wFn!8=SS1K$S?H+z8NcKU42BKCO~j@O}2zo;v; z3^oq>b_>MhSqbk%WpQKun6q~o-zR=8_}2@v`nZ5H%5^SpV;pk=WA`PPm%9vm%Z<l5 zVbgW`7bmK!JePz6e1Dm<cM0qP`{m%_gP>o5a@7~-Dj)hRUI#smxwuC7XRieQ6EJow z;CwvVzvAk({=9q=2=ac~9f1D>1Ya@Ud+*o;KL0a_`ZZVh4J9AiaV*C-Kuxe!{ubl4 z^MHQ={j>DV3%?EGo#ZDs9N=8R&euxOe~R%T{UkpI4F$WQ-b4TNX^;>4Xcfk4SG)XG zSl_CR*}DAJi?_=S=dF{A@D+pKt{$voM!XZ^AH3lITcDw0n(DsaAYb|+I6q0fQ;IhI z*PX%2v9#ehR(HcEFF)pU0P8)3j>TAUGWuBVHMa%Cwn@EAUn*lH*heH9H}E|D?EDRX z%RQ>-kD)#}1#)8C!MKDX$k?ZV^M%J=s;A!3bb1hTufufC-F&2sd!iQ@h%q!{NkTQ} zp%0$w4m#jFcdP?JFW8>|etp306%c)GJiY{ZLHxP>5qx)IOtux@?VziX{!1J$Mm`rD zdSUq(AKEzkaoNs|!!Q>)yZw02F>wM_oVXiyVr?Pt=e`pYaDF1rGu}8#z#p-P_VK`e z9DHwMy@Bd6zB3$`GY_#&4Y5hJ%HiPBTog~{VIl`y7%z&L5)oGtZogsK(C`)e5kzsO z@6|(nj(%MB<t73pA0;^;IUqS8IUqS8IUqS8IUqS8IUqS8IUqS8IUqS8IUqS8IUqS8 zIUqS8IUqS8IUqS8IUqS8IbbRWuveG-#Bt!9(*J~_Owpfs9{}mo=a8PRJ0b9krT;9_ z#nBTVigYYTW~V5H(d+MubnFS?bTosYc71&0h88Vd5SLb(!zZ-Mu_8v&;Sy-Y!^v<7 zqUmr3v2?M>FqYOb(5k~swGzeBT8Uz5tx8&TMIl6ny7Y8DK$jL7hO5sTL<x0i@c>;~ zlvtnU1N7<XacR~-f1MB1r};pAnl(t7ZjQSipDvEOK0Pjt0`<#3K8*tQyB?oLf%{z_ zL|Vsh!QpJvI=n@G>C!QI(h$xxtqM^J|3iKI-A_RE*W=R^fEL{kfJe%7F|G%7zi&qR zT#7U<>j8-u*!VQ%P2T`mJbijP(>jJ0$EBN@)-ixd9Rsum8LObkURU8_@$*;(o3(VL zg5lev6(TeFiAY>HyJ&&6tI-0B%JE#dfRUd^3RoQZeYk+pq*kEl?O~2I$F7qjy2~QN X;@D+E7Ad=S_FbjlW&KY_+xPzm3MBT? diff --git a/WebSite/public/index.html b/WebSite/public/index.html index e6b877d..1cb2826 100644 --- a/WebSite/public/index.html +++ b/WebSite/public/index.html @@ -1,16 +1,25 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-02 15:20:19 +--> <!DOCTYPE html> -<html> +<html lang="en"> <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <meta name="renderer" content="webkit"> - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> + <!-- <meta charset="utf-8" http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';default-src 'self';"> --> + <meta charset="utf-8" http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline';img-src 'self' data:;font-src 'self' data:"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> + <!-- <title><%= htmlWebpackPlugin.options.title %></title> --> <title><%= webpackConfig.name %></title> - <link rel="stylesheet" href="http://at.alicdn.com/t/font_1876535_e9h4x5vyl4.css"/> </head> <body> - <div id="app"></div> + <noscript> + <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> + </noscript> + <div id="app" class="light"></div> <!-- built files will be auto injected --> </body> </html> diff --git a/WebSite/src/App.vue b/WebSite/src/App.vue index 00fceee..e28d235 100644 --- a/WebSite/src/App.vue +++ b/WebSite/src/App.vue @@ -1,14 +1,35 @@ <template> - <div id="app"> - <router-view /> + <div id="app-inner"> + <router-view v-slot="{ Component }"> + <transition name="fade-transform-top" mode="out-in"> + <component :is="Component" /> + </transition> + </router-view> </div> </template> <script> +import { watch } from 'vue'; +import { useStore } from 'vuex'; export default { - name: "App" + name: 'App', + setup() { + const store = useStore(); + + watch( + () => store.state.app.themes, + val => { + document.querySelector('#app').className = val.find( + t => t.active + ).className; + }, + { immediate: true, deep: true } + ); + } }; </script> -<style lang="scss"> -@import "./styles/reset"; +<style > +.el-table__body tr.current-row>td{ + background-color: #cce4ff !important; + } </style> diff --git a/WebSite/src/api/article.js b/WebSite/src/api/article.js deleted file mode 100644 index 1d9fa29..0000000 --- a/WebSite/src/api/article.js +++ /dev/null @@ -1,41 +0,0 @@ -import request from "@/utils/request"; - -export function fetchList(query) { - return request({ - url: "/vue-element-admin/article/list", - method: "get", - params: query - }); -} - -export function fetchArticle(id) { - return request({ - url: "/vue-element-admin/article/detail", - method: "get", - params: { id } - }); -} - -export function fetchPv(pv) { - return request({ - url: "/vue-element-admin/article/pv", - method: "get", - params: { pv } - }); -} - -export function createArticle(data) { - return request({ - url: "/vue-element-admin/article/create", - method: "post", - data - }); -} - -export function updateArticle(data) { - return request({ - url: "/vue-element-admin/article/update", - method: "post", - data - }); -} diff --git a/WebSite/src/api/qiniu.js b/WebSite/src/api/qiniu.js deleted file mode 100644 index c843100..0000000 --- a/WebSite/src/api/qiniu.js +++ /dev/null @@ -1,8 +0,0 @@ -import request from "@/utils/request"; - -export function getToken() { - return request({ - url: "/qiniu/upload/token", // å‡åœ°å€ è‡ªè¡Œæ›¿æ¢ - method: "get" - }); -} diff --git a/WebSite/src/api/remote-search.js b/WebSite/src/api/remote-search.js deleted file mode 100644 index 2cccb11..0000000 --- a/WebSite/src/api/remote-search.js +++ /dev/null @@ -1,17 +0,0 @@ -import request from "@/utils/request"; - -export function searchUser(name) { - return request({ - url: "/vue-element-admin/search/user", - method: "get", - params: { name } - }); -} - -export function transactionList(query) { - return request({ - url: "/vue-element-admin/transaction/list", - method: "get", - params: query - }); -} diff --git a/WebSite/src/api/role.js b/WebSite/src/api/role.js deleted file mode 100644 index e861bb5..0000000 --- a/WebSite/src/api/role.js +++ /dev/null @@ -1,38 +0,0 @@ -import request from "@/utils/request"; - -export function getRoutes() { - return request({ - url: "/vue-element-admin/routes", - method: "get" - }); -} - -export function getRoles() { - return request({ - url: "/vue-element-admin/roles", - method: "get" - }); -} - -export function addRole(data) { - return request({ - url: "/vue-element-admin/role", - method: "post", - data - }); -} - -export function updateRole(id, data) { - return request({ - url: `/vue-element-admin/role/${id}`, - method: "put", - data - }); -} - -export function deleteRole(id) { - return request({ - url: `/vue-element-admin/role/${id}`, - method: "delete" - }); -} diff --git a/WebSite/src/api/user.js b/WebSite/src/api/user.js index d55d770..ccb04e1 100644 --- a/WebSite/src/api/user.js +++ b/WebSite/src/api/user.js @@ -1,31 +1,17 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:56 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-04-21 10:21:42 - */ -import request from "@/utils/request"; +import request from '@/core/base/request'; -export function login(data) { - return request({ - url: "/vue-element-admin/user/login", - method: "post", - data - }); -} +class User { + static setCurrent(data) { + return request.post('/user/pc/v1/setCurrent', data); + } -export function getInfo(token) { - return request({ - url: "/vue-element-admin/user/info", - method: "get", - params: { token } - }); -} + static getCurrent() { + return request.post('/user/pc/v1/getCurrent'); + } -export function logout() { - return request({ - url: "/vue-element-admin/user/logout", - method: "post" - }); + static getToken(data) { + return request.post('login/sfpLoginVerify', data); + } } + +export default User; diff --git a/WebSite/src/assets/configs/default.json b/WebSite/src/assets/configs/default.json deleted file mode 100644 index c89256b..0000000 --- a/WebSite/src/assets/configs/default.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "default", - "recognizeId": "seasky_base_data" -} diff --git a/WebSite/src/assets/configs/staging.json b/WebSite/src/assets/configs/staging.json deleted file mode 100644 index d5649cb..0000000 --- a/WebSite/src/assets/configs/staging.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "staging", - "recognizeId": "seasky_base_data" -} diff --git a/WebSite/src/assets/configs/test.json b/WebSite/src/assets/configs/test.json deleted file mode 100644 index 95de420..0000000 --- a/WebSite/src/assets/configs/test.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "test", - "recognizeId": "seasky_base_data" -} diff --git a/WebSite/src/components/BackToTop/index.vue b/WebSite/src/components/BackToTop/index.vue deleted file mode 100644 index eb313d5..0000000 --- a/WebSite/src/components/BackToTop/index.vue +++ /dev/null @@ -1,128 +0,0 @@ -<template> - <transition :name="transitionName"> - <div - v-show="visible" - :style="customStyle" - class="back-to-ceiling" - @click="backToTop" - > - <svg - width="16" - height="16" - viewBox="0 0 17 17" - xmlns="http://www.w3.org/2000/svg" - class="Icon Icon--backToTopArrow" - aria-hidden="true" - style="height:16px;width:16px" - > - <path - d="M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" - /> - </svg> - </div> - </transition> -</template> - -<script> -export default { - name: "BackToTop", - props: { - visibilityHeight: { - type: Number, - default: 400 - }, - backPosition: { - type: Number, - default: 0 - }, - customStyle: { - type: Object, - default: function() { - return { - right: "50px", - bottom: "50px", - width: "40px", - height: "40px", - "border-radius": "4px", - "line-height": "45px", - background: "#e7eaf1" - }; - } - }, - transitionName: { - type: String, - default: "fade" - } - }, - data() { - return { - visible: false, - interval: null, - isMoving: false - }; - }, - mounted() { - window.addEventListener("scroll", this.handleScroll); - }, - beforeDestroy() { - window.removeEventListener("scroll", this.handleScroll); - if (this.interval) { - clearInterval(this.interval); - } - }, - methods: { - handleScroll() { - this.visible = window.pageYOffset > this.visibilityHeight; - }, - backToTop() { - if (this.isMoving) return; - const start = window.pageYOffset; - let i = 0; - this.isMoving = true; - this.interval = setInterval(() => { - const next = Math.floor(this.easeInOutQuad(10 * i, start, -start, 500)); - if (next <= this.backPosition) { - window.scrollTo(0, this.backPosition); - clearInterval(this.interval); - this.isMoving = false; - } else { - window.scrollTo(0, next); - } - i++; - }, 16.7); - }, - easeInOutQuad(t, b, c, d) { - if ((t /= d / 2) < 1) return (c / 2) * t * t + b; - return (-c / 2) * (--t * (t - 2) - 1) + b; - } - } -}; -</script> - -<style scoped> -.back-to-ceiling { - position: fixed; - display: inline-block; - text-align: center; - cursor: pointer; -} - -.back-to-ceiling:hover { - background: #d5dbe7; -} - -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.5s; -} - -.fade-enter, -.fade-leave-to { - opacity: 0; -} - -.back-to-ceiling .Icon { - fill: #9aaabf; - background: none; -} -</style> diff --git a/WebSite/src/components/Breadcrumb/index.vue b/WebSite/src/components/Breadcrumb/index.vue deleted file mode 100644 index 4a73c70..0000000 --- a/WebSite/src/components/Breadcrumb/index.vue +++ /dev/null @@ -1,142 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 12:38:19 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-15 11:27:38 ---> -<template> - <el-breadcrumb class="app-breadcrumb" separator="/"> - <transition-group name="breadcrumb"> - <el-breadcrumb-item v-for="(item, index) in levelList" :key="item.id"> - <span - v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" - class="no-redirect" - >{{ item.meta.title }}</span - > - <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> - </el-breadcrumb-item> - </transition-group> - </el-breadcrumb> -</template> - -<script> -import { deepClone } from "@/utils/index.js"; -import pathToRegexp from "path-to-regexp"; -import { mapGetters } from "vuex"; -export default { - data() { - return { - levelList: null - }; - }, - computed: { - ...mapGetters(["menuTree"]) - }, - watch: { - $route(route) { - // if you go to the redirect page, do not update the breadcrumbs - if (route.path.startsWith("/redirect/")) { - return; - } - // this.getBreadcrumb(); - this.getBreadcrumbFromMenu(); - } - }, - created() { - // this.getBreadcrumb(); - this.getBreadcrumbFromMenu(); - }, - methods: { - getBreadcrumbFromMenu() { - this.levelList = []; - const matched = this.$route.matched.filter( - item => item.meta && item.meta.title - ); - if (matched && matched.length === 1 && matched[0].name === "Home") { - this.levelList.unshift({ - id: "0", - redirect: "noRedirect", - path: `/i/`, - meta: { title: "首页" } - }); - } else { - const menu = deepClone(this.menuTree); - menu.forEach(m => this.filterMenuNode(m, this.$route.path)); - } - }, - filterMenuNode(node, path) { - if (node.children && node.children.length > 0) { - node.children.forEach(c => this.filterMenuNode(c, path)); - node.children = node.children.filter( - c => - `/i/${c.routingUrl}` === path || - (c.children && c.children.length > 0) - ); - } - if ( - `/i/${node.routingUrl}` === path || - (node.children && node.children.length > 0) - ) { - this.levelList.unshift({ - id: node.id, - redirect: "noRedirect", - path: `/i/${node.routingUrl}`, - meta: { title: node.name } - }); - } - }, - // getBreadcrumb() { - // // only show routes with meta.title - // let matched = this.$route.matched.filter( - // item => item.meta && item.meta.title - // ); - // const first = matched[0]; - // if (!this.isDashboard(first)) { - // matched = [{ path: "/", meta: { title: "首页" } }].concat(matched); - // } - - // this.levelList = matched.filter( - // item => item.meta && item.meta.title && item.meta.breadcrumb !== false - // ); - // }, - // isDashboard(route) { - // const name = route && route.name; - // if (!name) { - // return false; - // } - // return ( - // name.trim().toLocaleLowerCase() === "Dashboard".toLocaleLowerCase() - // ); - // }, - pathCompile(path) { - // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561 - const { params } = this.$route; - var toPath = pathToRegexp.compile(path); - return toPath(params); - }, - handleLink(item) { - const { redirect, path } = item; - if (redirect) { - this.$router.push(redirect); - return; - } - this.$router.push(this.pathCompile(path)); - } - } -}; -</script> - -<style lang="scss" scoped> -.app-breadcrumb.el-breadcrumb { - display: inline-block; - font-size: 14px; - line-height: 50px; - margin-left: 8px; - - .no-redirect { - color: #97a8be; - cursor: text; - } -} -</style> diff --git a/WebSite/src/components/Charts/Keyboard.vue b/WebSite/src/components/Charts/Keyboard.vue deleted file mode 100644 index 05af311..0000000 --- a/WebSite/src/components/Charts/Keyboard.vue +++ /dev/null @@ -1,169 +0,0 @@ -<template> - <div :id="id" :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - id: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "200px" - }, - height: { - type: String, - default: "200px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.initChart(); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(document.getElementById(this.id)); - - const xAxisData = []; - const data = []; - const data2 = []; - for (let i = 0; i < 50; i++) { - xAxisData.push(i); - data.push((Math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5); - data2.push((Math.sin(i / 5) * (i / 5 + 10) + i / 6) * 3); - } - this.chart.setOption({ - backgroundColor: "#08263a", - grid: { - left: "5%", - right: "5%" - }, - xAxis: [ - { - show: false, - data: xAxisData - }, - { - show: false, - data: xAxisData - } - ], - visualMap: { - show: false, - min: 0, - max: 50, - dimension: 0, - inRange: { - color: [ - "#4a657a", - "#308e92", - "#b1cfa5", - "#f5d69f", - "#f5898b", - "#ef5055" - ] - } - }, - yAxis: { - axisLine: { - show: false - }, - axisLabel: { - textStyle: { - color: "#4a657a" - } - }, - splitLine: { - show: true, - lineStyle: { - color: "#08263f" - } - }, - axisTick: { - show: false - } - }, - series: [ - { - name: "back", - type: "bar", - data: data2, - z: 1, - itemStyle: { - normal: { - opacity: 0.4, - barBorderRadius: 5, - shadowBlur: 3, - shadowColor: "#111" - } - } - }, - { - name: "Simulate Shadow", - type: "line", - data, - z: 2, - showSymbol: false, - animationDelay: 0, - animationEasing: "linear", - animationDuration: 1200, - lineStyle: { - normal: { - color: "transparent" - } - }, - areaStyle: { - normal: { - color: "#08263a", - shadowBlur: 50, - shadowColor: "#000" - } - } - }, - { - name: "front", - type: "bar", - data, - xAxisIndex: 1, - z: 3, - itemStyle: { - normal: { - barBorderRadius: 5 - } - } - } - ], - animationEasing: "elasticOut", - animationEasingUpdate: "elasticOut", - animationDelay(idx) { - return idx * 20; - }, - animationDelayUpdate(idx) { - return idx * 20; - } - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Charts/LineMarker.vue b/WebSite/src/components/Charts/LineMarker.vue deleted file mode 100644 index a4e86f8..0000000 --- a/WebSite/src/components/Charts/LineMarker.vue +++ /dev/null @@ -1,276 +0,0 @@ -<template> - <div :id="id" :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - id: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "200px" - }, - height: { - type: String, - default: "200px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.initChart(); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(document.getElementById(this.id)); - - this.chart.setOption({ - backgroundColor: "#394056", - title: { - top: 20, - text: "Requests", - textStyle: { - fontWeight: "normal", - fontSize: 16, - color: "#F1F1F3" - }, - left: "1%" - }, - tooltip: { - trigger: "axis", - axisPointer: { - lineStyle: { - color: "#57617B" - } - } - }, - legend: { - top: 20, - icon: "rect", - itemWidth: 14, - itemHeight: 5, - itemGap: 13, - data: ["CMCC", "CTCC", "CUCC"], - right: "4%", - textStyle: { - fontSize: 12, - color: "#F1F1F3" - } - }, - grid: { - top: 100, - left: "2%", - right: "2%", - bottom: "2%", - containLabel: true - }, - xAxis: [ - { - type: "category", - boundaryGap: false, - axisLine: { - lineStyle: { - color: "#57617B" - } - }, - data: [ - "13:00", - "13:05", - "13:10", - "13:15", - "13:20", - "13:25", - "13:30", - "13:35", - "13:40", - "13:45", - "13:50", - "13:55" - ] - } - ], - yAxis: [ - { - type: "value", - name: "(%)", - axisTick: { - show: false - }, - axisLine: { - lineStyle: { - color: "#57617B" - } - }, - axisLabel: { - margin: 10, - textStyle: { - fontSize: 14 - } - }, - splitLine: { - lineStyle: { - color: "#57617B" - } - } - } - ], - series: [ - { - name: "CMCC", - type: "line", - smooth: true, - symbol: "circle", - symbolSize: 5, - showSymbol: false, - lineStyle: { - normal: { - width: 1 - } - }, - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "rgba(137, 189, 27, 0.3)" - }, - { - offset: 0.8, - color: "rgba(137, 189, 27, 0)" - } - ], - false - ), - shadowColor: "rgba(0, 0, 0, 0.1)", - shadowBlur: 10 - } - }, - itemStyle: { - normal: { - color: "rgb(137,189,27)", - borderColor: "rgba(137,189,2,0.27)", - borderWidth: 12 - } - }, - data: [220, 182, 191, 134, 150, 120, 110, 125, 145, 122, 165, 122] - }, - { - name: "CTCC", - type: "line", - smooth: true, - symbol: "circle", - symbolSize: 5, - showSymbol: false, - lineStyle: { - normal: { - width: 1 - } - }, - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "rgba(0, 136, 212, 0.3)" - }, - { - offset: 0.8, - color: "rgba(0, 136, 212, 0)" - } - ], - false - ), - shadowColor: "rgba(0, 0, 0, 0.1)", - shadowBlur: 10 - } - }, - itemStyle: { - normal: { - color: "rgb(0,136,212)", - borderColor: "rgba(0,136,212,0.2)", - borderWidth: 12 - } - }, - data: [120, 110, 125, 145, 122, 165, 122, 220, 182, 191, 134, 150] - }, - { - name: "CUCC", - type: "line", - smooth: true, - symbol: "circle", - symbolSize: 5, - showSymbol: false, - lineStyle: { - normal: { - width: 1 - } - }, - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "rgba(219, 50, 51, 0.3)" - }, - { - offset: 0.8, - color: "rgba(219, 50, 51, 0)" - } - ], - false - ), - shadowColor: "rgba(0, 0, 0, 0.1)", - shadowBlur: 10 - } - }, - itemStyle: { - normal: { - color: "rgb(219,50,51)", - borderColor: "rgba(219,50,51,0.2)", - borderWidth: 12 - } - }, - data: [220, 182, 125, 145, 122, 191, 134, 150, 120, 110, 165, 122] - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Charts/MixChart.vue b/WebSite/src/components/Charts/MixChart.vue deleted file mode 100644 index 865755f..0000000 --- a/WebSite/src/components/Charts/MixChart.vue +++ /dev/null @@ -1,277 +0,0 @@ -<template> - <div :id="id" :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - id: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "200px" - }, - height: { - type: String, - default: "200px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.initChart(); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(document.getElementById(this.id)); - const xData = (function() { - const data = []; - for (let i = 1; i < 13; i++) { - data.push(i + "month"); - } - return data; - })(); - this.chart.setOption({ - backgroundColor: "#344b58", - title: { - text: "statistics", - x: "20", - top: "20", - textStyle: { - color: "#fff", - fontSize: "22" - }, - subtextStyle: { - color: "#90979c", - fontSize: "16" - } - }, - tooltip: { - trigger: "axis", - axisPointer: { - textStyle: { - color: "#fff" - } - } - }, - grid: { - left: "5%", - right: "5%", - borderWidth: 0, - top: 150, - bottom: 95, - textStyle: { - color: "#fff" - } - }, - legend: { - x: "5%", - top: "10%", - textStyle: { - color: "#90979c" - }, - data: ["female", "male", "average"] - }, - calculable: true, - xAxis: [ - { - type: "category", - axisLine: { - lineStyle: { - color: "#90979c" - } - }, - splitLine: { - show: false - }, - axisTick: { - show: false - }, - splitArea: { - show: false - }, - axisLabel: { - interval: 0 - }, - data: xData - } - ], - yAxis: [ - { - type: "value", - splitLine: { - show: false - }, - axisLine: { - lineStyle: { - color: "#90979c" - } - }, - axisTick: { - show: false - }, - axisLabel: { - interval: 0 - }, - splitArea: { - show: false - } - } - ], - dataZoom: [ - { - show: true, - height: 30, - xAxisIndex: [0], - bottom: 30, - start: 10, - end: 80, - handleIcon: - "path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z", - handleSize: "110%", - handleStyle: { - color: "#d3dee5" - }, - textStyle: { - color: "#fff" - }, - borderColor: "#90979c" - }, - { - type: "inside", - show: true, - height: 15, - start: 1, - end: 35 - } - ], - series: [ - { - name: "female", - type: "bar", - stack: "total", - barMaxWidth: 35, - barGap: "10%", - itemStyle: { - normal: { - color: "rgba(255,144,128,1)", - label: { - show: true, - textStyle: { - color: "#fff" - }, - position: "insideTop", - formatter(p) { - return p.value > 0 ? p.value : ""; - } - } - } - }, - data: [ - 709, - 1917, - 2455, - 2610, - 1719, - 1433, - 1544, - 3285, - 5208, - 3372, - 2484, - 4078 - ] - }, - - { - name: "male", - type: "bar", - stack: "total", - itemStyle: { - normal: { - color: "rgba(0,191,183,1)", - barBorderRadius: 0, - label: { - show: true, - position: "top", - formatter(p) { - return p.value > 0 ? p.value : ""; - } - } - } - }, - data: [ - 327, - 1776, - 507, - 1200, - 800, - 482, - 204, - 1390, - 1001, - 951, - 381, - 220 - ] - }, - { - name: "average", - type: "line", - stack: "total", - symbolSize: 10, - symbol: "circle", - itemStyle: { - normal: { - color: "rgba(252,230,48,1)", - barBorderRadius: 0, - label: { - show: true, - position: "top", - formatter(p) { - return p.value > 0 ? p.value : ""; - } - } - } - }, - data: [ - 1036, - 3693, - 2962, - 3810, - 2519, - 1915, - 1748, - 4675, - 6209, - 4323, - 2865, - 4298 - ] - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Charts/mixins/resize.js b/WebSite/src/components/Charts/mixins/resize.js deleted file mode 100644 index 77d662d..0000000 --- a/WebSite/src/components/Charts/mixins/resize.js +++ /dev/null @@ -1,66 +0,0 @@ -import { debounce } from "@/utils"; - -export default { - data() { - return { - $_sidebarElm: null, - $_resizeHandler: null - }; - }, - mounted() { - this.initListener(); - }, - activated() { - if (!this.$_resizeHandler) { - // avoid duplication init - this.initListener(); - } - - // when keep-alive chart activated, auto resize - this.resize(); - }, - beforeDestroy() { - this.destroyListener(); - }, - deactivated() { - this.destroyListener(); - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_sidebarResizeHandler(e) { - if (e.propertyName === "width") { - this.$_resizeHandler(); - } - }, - initListener() { - this.$_resizeHandler = debounce(() => { - this.resize(); - }, 100); - window.addEventListener("resize", this.$_resizeHandler); - - this.$_sidebarElm = document.getElementsByClassName( - "sidebar-container" - )[0]; - this.$_sidebarElm && - this.$_sidebarElm.addEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - }, - destroyListener() { - window.removeEventListener("resize", this.$_resizeHandler); - this.$_resizeHandler = null; - - this.$_sidebarElm && - this.$_sidebarElm.removeEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - }, - resize() { - const { chart } = this; - chart && chart.resize(); - } - } -}; diff --git a/WebSite/src/components/DeptGroup/index.vue b/WebSite/src/components/DeptGroup/index.vue deleted file mode 100644 index 4220bc6..0000000 --- a/WebSite/src/components/DeptGroup/index.vue +++ /dev/null @@ -1,105 +0,0 @@ -<template> - <div class="deptGroup" style="position:relative"> - <el-input - :placeholder="holder" - name="treeInfo" - @click.native="showDeptInfo" - v-model="deptName" - :suffix-icon="treeVisble ? 'el-icon-caret-top' : 'el-icon-caret-bottom'" - ></el-input> - <div class="deptInfo" v-if="treeVisble"> - <el-input - placeholder="输入关键å—进行过滤" - name="treeInfo" - v-model="filterText" - @click.native="showDeptInfo" - > - </el-input> - <el-tree - class="filter-tree" - :data="deptList" - :props="defaultProps" - highlight-current - :default-expand-all="true" - :filter-node-method="filterNode" - ref="tree" - @node-click="handleNodeClick" - > - </el-tree> - </div> - </div> -</template> - -<script> -export default { - props: { - holder: { - type: String - }, - deptList: { - type: Array - } - }, - data() { - return { - treeVisble: false, - deptName: "", //部门åç§° - filterText: "", - defaultProps: { - children: "children", - label: "fullName" - }, - event: null - }; - }, - mounted() { - document.body.addEventListener("click", e => { - if (this.event) { - if (e.target.name !== "treeInfo" || e.target !== this.event.target) { - this.treeVisble = false; - } - } - }); - }, - watch: { - filterText(val) { - this.$refs.tree.filter(val); - }, - deptName(val) { - if (val == "") { - this.$emit("clearGroupId"); - } - } - }, - methods: { - showDeptInfo(e) { - this.event = e; - this.treeVisble = true; - }, - // æ ‘èŠ‚ç‚¹ç‚¹å‡» - handleNodeClick(data) { - this.deptName = data.fullName; - this.$emit("handleSetVal", data); - this.treeVisble = false; - }, - filterNode(value, data) { - if (!value) return true; - return data.fullName.indexOf(value) !== -1; - } - } -}; -</script> - -<style lang="scss" scoped> -.deptInfo { - // position: absolute; - position: fixed; - width: 209px; - height: 200px; - z-index: 10; - .el-tree { - height: 200px; - overflow: scroll; - } -} -</style> diff --git a/WebSite/src/components/DndList/index.vue b/WebSite/src/components/DndList/index.vue deleted file mode 100644 index c30eb14..0000000 --- a/WebSite/src/components/DndList/index.vue +++ /dev/null @@ -1,182 +0,0 @@ -<template> - <div class="dndList"> - <div :style="{ width: width1 }" class="dndList-list"> - <h3>{{ list1Title }}</h3> - <draggable - :set-data="setData" - :list="list1" - group="article" - class="dragArea" - > - <div - v-for="element in list1" - :key="element.id" - class="list-complete-item" - > - <div class="list-complete-item-handle"> - {{ element.id }}[{{ element.author }}] {{ element.title }} - </div> - <div style="position:absolute;right:0px;"> - <span - style="float: right ;margin-top: -20px;margin-right:5px;" - @click="deleteEle(element)" - > - <i style="color:#ff4949" class="el-icon-delete" /> - </span> - </div> - </div> - </draggable> - </div> - <div :style="{ width: width2 }" class="dndList-list"> - <h3>{{ list2Title }}</h3> - <draggable :list="list2" group="article" class="dragArea"> - <div - v-for="element in list2" - :key="element.id" - class="list-complete-item" - > - <div class="list-complete-item-handle2" @click="pushEle(element)"> - {{ element.id }} [{{ element.author }}] {{ element.title }} - </div> - </div> - </draggable> - </div> - </div> -</template> - -<script> -import draggable from "vuedraggable"; - -export default { - name: "DndList", - components: { draggable }, - props: { - list1: { - type: Array, - default() { - return []; - } - }, - list2: { - type: Array, - default() { - return []; - } - }, - list1Title: { - type: String, - default: "list1" - }, - list2Title: { - type: String, - default: "list2" - }, - width1: { - type: String, - default: "48%" - }, - width2: { - type: String, - default: "48%" - } - }, - methods: { - isNotInList1(v) { - return this.list1.every(k => v.id !== k.id); - }, - isNotInList2(v) { - return this.list2.every(k => v.id !== k.id); - }, - deleteEle(ele) { - for (const item of this.list1) { - if (item.id === ele.id) { - const index = this.list1.indexOf(item); - this.list1.splice(index, 1); - break; - } - } - if (this.isNotInList2(ele)) { - this.list2.unshift(ele); - } - }, - pushEle(ele) { - for (const item of this.list2) { - if (item.id === ele.id) { - const index = this.list2.indexOf(item); - this.list2.splice(index, 1); - break; - } - } - if (this.isNotInList1(ele)) { - this.list1.push(ele); - } - }, - setData(dataTransfer) { - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - dataTransfer.setData("Text", ""); - } - } -}; -</script> - -<style lang="scss" scoped> -.dndList { - background: #fff; - padding-bottom: 40px; - &:after { - content: ""; - display: table; - clear: both; - } - .dndList-list { - float: left; - padding-bottom: 30px; - &:first-of-type { - margin-right: 2%; - } - .dragArea { - margin-top: 15px; - min-height: 50px; - padding-bottom: 30px; - } - } -} - -.list-complete-item { - cursor: pointer; - position: relative; - font-size: 14px; - padding: 5px 12px; - margin-top: 4px; - border: 1px solid #bfcbd9; - transition: all 1s; -} - -.list-complete-item-handle { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - margin-right: 50px; -} - -.list-complete-item-handle2 { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - margin-right: 20px; -} - -.list-complete-item.sortable-chosen { - background: #4ab7bd; -} - -.list-complete-item.sortable-ghost { - background: #30b08f; -} - -.list-complete-enter, -.list-complete-leave-active { - opacity: 0; -} -</style> diff --git a/WebSite/src/components/DragSelect/index.vue b/WebSite/src/components/DragSelect/index.vue deleted file mode 100644 index b255f2f..0000000 --- a/WebSite/src/components/DragSelect/index.vue +++ /dev/null @@ -1,70 +0,0 @@ -<template> - <el-select - ref="dragSelect" - v-model="selectVal" - v-bind="$attrs" - class="drag-select" - multiple - v-on="$listeners" - > - <slot /> - </el-select> -</template> - -<script> -import Sortable from "sortablejs"; - -export default { - name: "DragSelect", - props: { - value: { - type: Array, - required: true - } - }, - computed: { - selectVal: { - get() { - return [...this.value]; - }, - set(val) { - this.$emit("input", [...val]); - } - } - }, - mounted() { - this.setSort(); - }, - methods: { - setSort() { - const el = this.$refs.dragSelect.$el.querySelectorAll( - ".el-select__tags > span" - )[0]; - this.sortable = Sortable.create(el, { - ghostClass: "sortable-ghost", // Class name for the drop placeholder, - setData: function(dataTransfer) { - dataTransfer.setData("Text", ""); - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - }, - onEnd: evt => { - const targetRow = this.value.splice(evt.oldIndex, 1)[0]; - this.value.splice(evt.newIndex, 0, targetRow); - } - }); - } - } -}; -</script> - -<style scoped> -.drag-select >>> .sortable-ghost { - opacity: 0.8; - color: #fff !important; - background: #42b983 !important; -} - -.drag-select >>> .el-tag { - cursor: pointer; -} -</style> diff --git a/WebSite/src/components/Dropzone/index.vue b/WebSite/src/components/Dropzone/index.vue deleted file mode 100644 index 2fadc74..0000000 --- a/WebSite/src/components/Dropzone/index.vue +++ /dev/null @@ -1,312 +0,0 @@ -<template> - <div :id="id" :ref="id" :action="url" class="dropzone"> - <input type="file" name="file" /> - </div> -</template> - -<script> -import Dropzone from "dropzone"; -import "dropzone/dist/dropzone.css"; -// import { getToken } from 'api/qiniu'; - -Dropzone.autoDiscover = false; - -export default { - props: { - id: { - type: String, - required: true - }, - url: { - type: String, - required: true - }, - clickable: { - type: Boolean, - default: true - }, - defaultMsg: { - type: String, - default: "ä¸Šä¼ å›¾ç‰‡" - }, - acceptedFiles: { - type: String, - default: "" - }, - thumbnailHeight: { - type: Number, - default: 200 - }, - thumbnailWidth: { - type: Number, - default: 200 - }, - showRemoveLink: { - type: Boolean, - default: true - }, - maxFilesize: { - type: Number, - default: 2 - }, - maxFiles: { - type: Number, - default: 3 - }, - autoProcessQueue: { - type: Boolean, - default: true - }, - useCustomDropzoneOptions: { - type: Boolean, - default: false - }, - defaultImg: { - default: "", - type: [String, Array] - }, - couldPaste: { - type: Boolean, - default: false - } - }, - data() { - return { - dropzone: "", - initOnce: true - }; - }, - watch: { - defaultImg(val) { - if (val.length === 0) { - this.initOnce = false; - return; - } - if (!this.initOnce) return; - this.initImages(val); - this.initOnce = false; - } - }, - mounted() { - const element = document.getElementById(this.id); - const vm = this; - this.dropzone = new Dropzone(element, { - clickable: this.clickable, - thumbnailWidth: this.thumbnailWidth, - thumbnailHeight: this.thumbnailHeight, - maxFiles: this.maxFiles, - maxFilesize: this.maxFilesize, - dictRemoveFile: "Remove", - addRemoveLinks: this.showRemoveLink, - acceptedFiles: this.acceptedFiles, - autoProcessQueue: this.autoProcessQueue, - dictDefaultMessage: - '<i style="margin-top: 3em;display: inline-block" class="material-icons">' + - this.defaultMsg + - "</i><br>Drop files here to upload", - dictMaxFilesExceeded: "åªèƒ½ä¸€ä¸ªå›¾", - previewTemplate: - '<div class="dz-preview dz-file-preview"> <div class="dz-image" style="width:' + - this.thumbnailWidth + - "px;height:" + - this.thumbnailHeight + - 'px" ><img style="width:' + - this.thumbnailWidth + - "px;height:" + - this.thumbnailHeight + - 'px" data-dz-thumbnail /></div> <div class="dz-details"><div class="dz-size"><span data-dz-size></span></div> <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div> <div class="dz-error-message"><span data-dz-errormessage></span></div> <div class="dz-success-mark"> <i class="material-icons">done</i> </div> <div class="dz-error-mark"><i class="material-icons">error</i></div></div>', - init() { - const val = vm.defaultImg; - if (!val) return; - if (Array.isArray(val)) { - if (val.length === 0) return; - val.map((v, i) => { - const mockFile = { name: "name" + i, size: 12345, url: v }; - this.options.addedfile.call(this, mockFile); - this.options.thumbnail.call(this, mockFile, v); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - vm.initOnce = false; - return true; - }); - } else { - const mockFile = { name: "name", size: 12345, url: val }; - this.options.addedfile.call(this, mockFile); - this.options.thumbnail.call(this, mockFile, val); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - vm.initOnce = false; - } - }, - accept: (file, done) => { - /* 七牛*/ - // const token = this.$store.getters.token; - // getToken(token).then(response => { - // file.token = response.data.qiniu_token; - // file.key = response.data.qiniu_key; - // file.url = response.data.qiniu_url; - // done(); - // }) - done(); - }, - sending: (file, xhr, formData) => { - // formData.append('token', file.token); - // formData.append('key', file.key); - vm.initOnce = false; - } - }); - - if (this.couldPaste) { - document.addEventListener("paste", this.pasteImg); - } - - this.dropzone.on("success", file => { - vm.$emit("dropzone-success", file, vm.dropzone.element); - }); - this.dropzone.on("addedfile", file => { - vm.$emit("dropzone-fileAdded", file); - }); - this.dropzone.on("removedfile", file => { - vm.$emit("dropzone-removedFile", file); - }); - this.dropzone.on("error", (file, error, xhr) => { - vm.$emit("dropzone-error", file, error, xhr); - }); - this.dropzone.on("successmultiple", (file, error, xhr) => { - vm.$emit("dropzone-successmultiple", file, error, xhr); - }); - }, - destroyed() { - document.removeEventListener("paste", this.pasteImg); - this.dropzone.destroy(); - }, - methods: { - removeAllFiles() { - this.dropzone.removeAllFiles(true); - }, - processQueue() { - this.dropzone.processQueue(); - }, - pasteImg(event) { - const items = (event.clipboardData || event.originalEvent.clipboardData) - .items; - if (items[0].kind === "file") { - this.dropzone.addFile(items[0].getAsFile()); - } - }, - initImages(val) { - if (!val) return; - if (Array.isArray(val)) { - val.map((v, i) => { - const mockFile = { name: "name" + i, size: 12345, url: v }; - this.dropzone.options.addedfile.call(this.dropzone, mockFile); - this.dropzone.options.thumbnail.call(this.dropzone, mockFile, v); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - return true; - }); - } else { - const mockFile = { name: "name", size: 12345, url: val }; - this.dropzone.options.addedfile.call(this.dropzone, mockFile); - this.dropzone.options.thumbnail.call(this.dropzone, mockFile, val); - mockFile.previewElement.classList.add("dz-success"); - mockFile.previewElement.classList.add("dz-complete"); - } - } - } -}; -</script> - -<style scoped> -.dropzone { - border: 2px solid #e5e5e5; - font-family: "Roboto", sans-serif; - color: #777; - transition: background-color 0.2s linear; - padding: 5px; -} - -.dropzone:hover { - background-color: #f6f6f6; -} - -i { - color: #ccc; -} - -.dropzone .dz-image img { - width: 100%; - height: 100%; -} - -.dropzone input[name="file"] { - display: none; -} - -.dropzone .dz-preview .dz-image { - border-radius: 0px; -} - -.dropzone .dz-preview:hover .dz-image img { - transform: none; - filter: none; - width: 100%; - height: 100%; -} - -.dropzone .dz-preview .dz-details { - bottom: 0px; - top: 0px; - color: white; - background-color: rgba(33, 150, 243, 0.8); - transition: opacity 0.2s linear; - text-align: left; -} - -.dropzone .dz-preview .dz-details .dz-filename span, -.dropzone .dz-preview .dz-details .dz-size span { - background-color: transparent; -} - -.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span { - border: none; -} - -.dropzone .dz-preview .dz-details .dz-filename:hover span { - background-color: transparent; - border: none; -} - -.dropzone .dz-preview .dz-remove { - position: absolute; - z-index: 30; - color: white; - margin-left: 15px; - padding: 10px; - top: inherit; - bottom: 15px; - border: 2px white solid; - text-decoration: none; - text-transform: uppercase; - font-size: 0.8rem; - font-weight: 800; - letter-spacing: 1.1px; - opacity: 0; -} - -.dropzone .dz-preview:hover .dz-remove { - opacity: 1; -} - -.dropzone .dz-preview .dz-success-mark, -.dropzone .dz-preview .dz-error-mark { - margin-left: -40px; - margin-top: -50px; -} - -.dropzone .dz-preview .dz-success-mark i, -.dropzone .dz-preview .dz-error-mark i { - color: white; - font-size: 5rem; -} -</style> diff --git a/WebSite/src/components/ErrorLog/index.vue b/WebSite/src/components/ErrorLog/index.vue deleted file mode 100644 index 5cf626b..0000000 --- a/WebSite/src/components/ErrorLog/index.vue +++ /dev/null @@ -1,92 +0,0 @@ -<template> - <div v-if="errorLogs.length > 0"> - <el-badge - :is-dot="true" - style="line-height: 25px;margin-top: -5px;" - @click.native="dialogTableVisible = true" - > - <el-button style="padding: 8px 10px;" size="small" type="danger"> - <svg-icon icon-class="bug" /> - </el-button> - </el-badge> - - <el-dialog :visible.sync="dialogTableVisible" width="80%" append-to-body> - <div slot="title"> - <span style="padding-right: 10px;">Error Log</span> - <el-button - size="mini" - type="primary" - icon="el-icon-delete" - @click="clearAll" - >Clear All</el-button - > - </div> - <el-table :data="errorLogs" border> - <el-table-column label="Message"> - <template slot-scope="{ row }"> - <div> - <span class="message-title">Msg:</span> - <el-tag type="danger"> - {{ row.err.message }} - </el-tag> - </div> - <br /> - <div> - <span class="message-title" style="padding-right: 10px;" - >Info: - </span> - <el-tag type="warning"> - {{ row.vm.$vnode.tag }} error in {{ row.info }} - </el-tag> - </div> - <br /> - <div> - <span class="message-title" style="padding-right: 16px;" - >Url: - </span> - <el-tag type="success"> - {{ row.url }} - </el-tag> - </div> - </template> - </el-table-column> - <el-table-column label="Stack"> - <template slot-scope="scope"> - {{ scope.row.err.stack }} - </template> - </el-table-column> - </el-table> - </el-dialog> - </div> -</template> - -<script> -export default { - name: "ErrorLog", - data() { - return { - dialogTableVisible: false - }; - }, - computed: { - errorLogs() { - return this.$store.getters.errorLogs; - } - }, - methods: { - clearAll() { - this.dialogTableVisible = false; - this.$store.dispatch("errorLog/clearErrorLog"); - } - } -}; -</script> - -<style scoped> -.message-title { - font-size: 16px; - color: #333; - font-weight: bold; - padding-right: 8px; -} -</style> diff --git a/WebSite/src/components/GithubCorner/index.vue b/WebSite/src/components/GithubCorner/index.vue deleted file mode 100644 index 22662b8..0000000 --- a/WebSite/src/components/GithubCorner/index.vue +++ /dev/null @@ -1,59 +0,0 @@ -<template> - <a - href="https://github.com/PanJiaChen/vue-element-admin" - target="_blank" - class="github-corner" - aria-label="View source on Github" - > - <svg - width="80" - height="80" - viewBox="0 0 250 250" - style="fill:#40c9c6; color:#fff;" - aria-hidden="true" - > - <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" /> - <path - d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" - fill="currentColor" - style="transform-origin: 130px 106px;" - class="octo-arm" - /> - <path - d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" - fill="currentColor" - class="octo-body" - /> - </svg> - </a> -</template> - -<style scoped> -.github-corner:hover .octo-arm { - animation: octocat-wave 560ms ease-in-out; -} - -@keyframes octocat-wave { - 0%, - 100% { - transform: rotate(0); - } - 20%, - 60% { - transform: rotate(-25deg); - } - 40%, - 80% { - transform: rotate(10deg); - } -} - -@media (max-width: 500px) { - .github-corner:hover .octo-arm { - animation: none; - } - .github-corner .octo-arm { - animation: octocat-wave 560ms ease-in-out; - } -} -</style> diff --git a/WebSite/src/components/Hamburger/index.vue b/WebSite/src/components/Hamburger/index.vue deleted file mode 100644 index cc798b5..0000000 --- a/WebSite/src/components/Hamburger/index.vue +++ /dev/null @@ -1,46 +0,0 @@ -<template> - <div style="padding: 0 15px;" @click="toggleClick"> - <svg - :class="{ 'is-active': isActive }" - class="hamburger" - viewBox="0 0 1024 1024" - xmlns="http://www.w3.org/2000/svg" - width="64" - height="64" - > - <path - d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" - /> - </svg> - </div> -</template> - -<script> -export default { - name: "Hamburger", - props: { - isActive: { - type: Boolean, - default: false - } - }, - methods: { - toggleClick() { - this.$emit("toggleClick"); - } - } -}; -</script> - -<style scoped> -.hamburger { - display: inline-block; - vertical-align: middle; - width: 20px; - height: 20px; -} - -.hamburger.is-active { - transform: rotate(180deg); -} -</style> diff --git a/WebSite/src/components/HeaderSearch/index.vue b/WebSite/src/components/HeaderSearch/index.vue deleted file mode 100644 index 336e178..0000000 --- a/WebSite/src/components/HeaderSearch/index.vue +++ /dev/null @@ -1,198 +0,0 @@ -<template> - <div :class="{ show: show }" class="header-search"> - <svg-icon - class-name="search-icon" - icon-class="search" - @click.stop="click" - /> - <el-select - ref="headerSearchSelect" - v-model="search" - :remote-method="querySearch" - filterable - default-first-option - remote - placeholder="Search" - class="header-search-select" - @change="change" - > - <el-option - v-for="item in options" - :key="item.path" - :value="item" - :label="item.title.join(' > ')" - /> - </el-select> - </div> -</template> - -<script> -// fuse is a lightweight fuzzy-search module -// make search results more in line with expectations -import Fuse from "fuse.js"; -import path from "path"; - -export default { - name: "HeaderSearch", - data() { - return { - search: "", - options: [], - searchPool: [], - show: false, - fuse: undefined - }; - }, - computed: { - routes() { - return this.$store.getters.permissionRoutes; - } - }, - watch: { - routes() { - this.searchPool = this.generateRoutes(this.routes); - }, - searchPool(list) { - this.initFuse(list); - }, - show(value) { - if (value) { - document.body.addEventListener("click", this.close); - } else { - document.body.removeEventListener("click", this.close); - } - } - }, - mounted() { - this.searchPool = this.generateRoutes(this.routes); - }, - methods: { - click() { - this.show = !this.show; - if (this.show) { - this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.focus(); - } - }, - close() { - this.$refs.headerSearchSelect && this.$refs.headerSearchSelect.blur(); - this.options = []; - this.show = false; - }, - change(val) { - this.$router.push(val.path); - this.search = ""; - this.options = []; - this.$nextTick(() => { - this.show = false; - }); - }, - initFuse(list) { - this.fuse = new Fuse(list, { - shouldSort: true, - threshold: 0.4, - location: 0, - distance: 100, - maxPatternLength: 32, - minMatchCharLength: 1, - keys: [ - { - name: "title", - weight: 0.7 - }, - { - name: "path", - weight: 0.3 - } - ] - }); - }, - // Filter out the routes that can be displayed in the sidebar - // And generate the internationalized title - generateRoutes(routes, basePath = "/", prefixTitle = []) { - let res = []; - - for (const router of routes) { - // skip hidden router - if (router.hidden) { - continue; - } - - const data = { - path: path.resolve(basePath, router.path), - title: [...prefixTitle] - }; - - if (router.meta && router.meta.title) { - data.title = [...data.title, router.meta.title]; - - if (router.redirect !== "noRedirect") { - // only push the routes with title - // special case: need to exclude parent router without redirect - res.push(data); - } - } - - // recursive child routes - if (router.children) { - const tempRoutes = this.generateRoutes( - router.children, - data.path, - data.title - ); - if (tempRoutes.length >= 1) { - res = [...res, ...tempRoutes]; - } - } - } - return res; - }, - querySearch(query) { - if (query !== "") { - this.options = this.fuse.search(query); - } else { - this.options = []; - } - } - } -}; -</script> - -<style lang="scss" scoped> -.header-search { - font-size: 0 !important; - - .search-icon { - cursor: pointer; - font-size: 18px; - vertical-align: middle; - } - - .header-search-select { - font-size: 18px; - transition: width 0.2s; - width: 0; - overflow: hidden; - background: transparent; - border-radius: 0; - display: inline-block; - vertical-align: middle; - - /deep/ .el-input__inner { - border-radius: 0; - border: 0; - padding-left: 0; - padding-right: 0; - box-shadow: none !important; - border-bottom: 1px solid #d9d9d9; - vertical-align: middle; - } - } - - &.show { - .header-search-select { - width: 210px; - margin-left: 10px; - } - } -} -</style> diff --git a/WebSite/src/components/ImageCropper/index.vue b/WebSite/src/components/ImageCropper/index.vue deleted file mode 100644 index 06a60aa..0000000 --- a/WebSite/src/components/ImageCropper/index.vue +++ /dev/null @@ -1,1816 +0,0 @@ -<template> - <div v-show="value" class="vue-image-crop-upload"> - <div class="vicp-wrap"> - <div class="vicp-close" @click="off"> - <i class="vicp-icon4" /> - </div> - - <div v-show="step == 1" class="vicp-step1"> - <div - class="vicp-drop-area" - @dragleave="preventDefault" - @dragover="preventDefault" - @dragenter="preventDefault" - @click="handleClick" - @drop="handleChange" - > - <i v-show="loading != 1" class="vicp-icon1"> - <i class="vicp-icon1-arrow" /> - <i class="vicp-icon1-body" /> - <i class="vicp-icon1-bottom" /> - </i> - <span v-show="loading !== 1" class="vicp-hint">{{ lang.hint }}</span> - <span v-show="!isSupported" class="vicp-no-supported-hint">{{ - lang.noSupported - }}</span> - <input - v-show="false" - v-if="step == 1" - ref="fileinput" - type="file" - @change="handleChange" - /> - </div> - <div v-show="hasError" class="vicp-error"> - <i class="vicp-icon2" /> - {{ errorMsg }} - </div> - <div class="vicp-operate"> - <a @click="off" @mousedown="ripple">{{ lang.btn.off }}</a> - </div> - </div> - - <div v-if="step == 2" class="vicp-step2"> - <div class="vicp-crop"> - <div v-show="true" class="vicp-crop-left"> - <div class="vicp-img-container"> - <img - ref="img" - :src="sourceImgUrl" - :style="sourceImgStyle" - class="vicp-img" - draggable="false" - @drag="preventDefault" - @dragstart="preventDefault" - @dragend="preventDefault" - @dragleave="preventDefault" - @dragover="preventDefault" - @dragenter="preventDefault" - @drop="preventDefault" - @touchstart="imgStartMove" - @touchmove="imgMove" - @touchend="createImg" - @touchcancel="createImg" - @mousedown="imgStartMove" - @mousemove="imgMove" - @mouseup="createImg" - @mouseout="createImg" - /> - <div - :style="sourceImgShadeStyle" - class="vicp-img-shade vicp-img-shade-1" - /> - <div - :style="sourceImgShadeStyle" - class="vicp-img-shade vicp-img-shade-2" - /> - </div> - - <div class="vicp-range"> - <input - :value="scale.range" - type="range" - step="1" - min="0" - max="100" - @input="zoomChange" - /> - <i - class="vicp-icon5" - @mousedown="startZoomSub" - @mouseout="endZoomSub" - @mouseup="endZoomSub" - /> - <i - class="vicp-icon6" - @mousedown="startZoomAdd" - @mouseout="endZoomAdd" - @mouseup="endZoomAdd" - /> - </div> - - <div v-if="!noRotate" class="vicp-rotate"> - <i - @mousedown="startRotateLeft" - @mouseout="endRotate" - @mouseup="endRotate" - >↺</i - > - <i - @mousedown="startRotateRight" - @mouseout="endRotate" - @mouseup="endRotate" - >↻</i - > - </div> - </div> - <div v-show="true" class="vicp-crop-right"> - <div class="vicp-preview"> - <div v-if="!noSquare" class="vicp-preview-item"> - <img :src="createImgUrl" :style="previewStyle" /> - <span>{{ lang.preview }}</span> - </div> - <div - v-if="!noCircle" - class="vicp-preview-item vicp-preview-item-circle" - > - <img :src="createImgUrl" :style="previewStyle" /> - <span>{{ lang.preview }}</span> - </div> - </div> - </div> - </div> - <div class="vicp-operate"> - <a @click="setStep(1)" @mousedown="ripple">{{ lang.btn.back }}</a> - <a - class="vicp-operate-btn" - @click="prepareUpload" - @mousedown="ripple" - >{{ lang.btn.save }}</a - > - </div> - </div> - - <div v-if="step == 3" class="vicp-step3"> - <div class="vicp-upload"> - <span v-show="loading === 1" class="vicp-loading">{{ - lang.loading - }}</span> - <div class="vicp-progress-wrap"> - <span - v-show="loading === 1" - :style="progressStyle" - class="vicp-progress" - /> - </div> - <div v-show="hasError" class="vicp-error"> - <i class="vicp-icon2" /> - {{ errorMsg }} - </div> - <div v-show="loading === 2" class="vicp-success"> - <i class="vicp-icon3" /> - {{ lang.success }} - </div> - </div> - <div class="vicp-operate"> - <a @click="setStep(2)" @mousedown="ripple">{{ lang.btn.back }}</a> - <a @click="off" @mousedown="ripple">{{ lang.btn.close }}</a> - </div> - </div> - <canvas v-show="false" ref="canvas" :width="width" :height="height" /> - </div> - </div> -</template> - -<script> -"use strict"; -import request from "@/utils/request"; -import language from "./utils/language.js"; -import mimes from "./utils/mimes.js"; -import data2blob from "./utils/data2blob.js"; -import effectRipple from "./utils/effectRipple.js"; -export default { - props: { - // åŸŸï¼Œä¸Šä¼ æ–‡ä»¶name,触å‘事件会带上(如果一个页é¢å¤šä¸ªå›¾ç‰‡ä¸Šä¼ 控件,å¯ä»¥åšåŒºåˆ† - field: { - type: String, - default: "avatar" - }, - // 原åkey,类似于id,触å‘事件会带上(如果一个页é¢å¤šä¸ªå›¾ç‰‡ä¸Šä¼ 控件,å¯ä»¥åšåŒºåˆ† - ki: { - type: Number, - default: 0 - }, - // æ˜¾ç¤ºè¯¥æŽ§ä»¶ä¸Žå¦ - value: { - type: Boolean, - default: true - }, - // ä¸Šä¼ åœ°å€ - url: { - type: String, - default: "" - }, - // å…¶ä»–è¦ä¸Šä¼ 文件附带的数æ®ï¼Œå¯¹è±¡æ ¼å¼ - params: { - type: Object, - default: null - }, - // Add custom headers - headers: { - type: Object, - default: null - }, - // 剪è£å›¾ç‰‡çš„宽 - width: { - type: Number, - default: 200 - }, - // 剪è£å›¾ç‰‡çš„高 - height: { - type: Number, - default: 200 - }, - // 䏿˜¾ç¤ºæ—‹è½¬åŠŸèƒ½ - noRotate: { - type: Boolean, - default: true - }, - // ä¸é¢„览圆形图片 - noCircle: { - type: Boolean, - default: false - }, - // ä¸é¢„览方形图片 - noSquare: { - type: Boolean, - default: false - }, - // 啿–‡ä»¶å¤§å°é™åˆ¶ - maxSize: { - type: Number, - default: 10240 - }, - // è¯è¨€ç±»åž‹ - langType: { - type: String, - default: "zh" - }, - // è¯è¨€åŒ… - langExt: { - type: Object, - default: null - }, - // å›¾ç‰‡ä¸Šä¼ æ ¼å¼ - imgFormat: { - type: String, - default: "png" - }, - // æ˜¯å¦æ”¯æŒè·¨åŸŸ - withCredentials: { - type: Boolean, - default: false - } - }, - data() { - const { imgFormat, langType, langExt, width, height } = this; - let isSupported = true; - const allowImgFormat = ["jpg", "png"]; - const tempImgFormat = - allowImgFormat.indexOf(imgFormat) === -1 ? "jpg" : imgFormat; - const lang = language[langType] ? language[langType] : language["en"]; - const mime = mimes[tempImgFormat]; - // è§„èŒƒå›¾ç‰‡æ ¼å¼ - this.imgFormat = tempImgFormat; - if (langExt) { - Object.assign(lang, langExt); - } - if (typeof FormData !== "function") { - isSupported = false; - } - return { - // 图片的mime - mime, - // è¯è¨€åŒ… - lang, - // æµè§ˆå™¨æ˜¯å¦æ”¯æŒè¯¥æŽ§ä»¶ - isSupported, - // æµè§ˆå™¨æ˜¯å¦æ”¯æŒè§¦å±äº‹ä»¶ - isSupportTouch: document.hasOwnProperty("ontouchstart"), - // æ¥éª¤ - step: 1, // 1选择文件 2å‰ªè£ 3ä¸Šä¼ - // ä¸Šä¼ çŠ¶æ€åŠè¿›åº¦ - loading: 0, // 0未开始 1æ£åœ¨ 2æˆåŠŸ 3错误 - progress: 0, - // æ˜¯å¦æœ‰é”™è¯¯åŠé”™è¯¯ä¿¡æ¯ - hasError: false, - errorMsg: "", - // 需求图宽高比 - ratio: width / height, - // 原图地å€ã€ç”Ÿæˆå›¾ç‰‡åœ°å€ - sourceImg: null, - sourceImgUrl: "", - createImgUrl: "", - // 原图片拖动事件åˆå§‹å€¼ - sourceImgMouseDown: { - on: false, - mX: 0, // é¼ æ ‡æŒ‰ä¸‹çš„åæ ‡ - mY: 0, - x: 0, // scaleåŽŸå›¾åæ ‡ - y: 0 - }, - // 生æˆå›¾ç‰‡é¢„è§ˆçš„å®¹å™¨å¤§å° - previewContainer: { - width: 100, - height: 100 - }, - // 原图容器宽高 - sourceImgContainer: { - // sic - width: 240, - height: 184 // 如果生æˆå›¾æ¯”例与æ¤ä¸€è‡´ä¼šå‡ºçްbug,先改æˆç‰¹æ®Šçš„æ ¼å¼å§ï¼Œå“ˆå“ˆå“ˆ - }, - // 原图展示属性 - scale: { - zoomAddOn: false, // æŒ‰é’®ç¼©æ”¾äº‹ä»¶å¼€å¯ - zoomSubOn: false, // æŒ‰é’®ç¼©æ”¾äº‹ä»¶å¼€å¯ - range: 1, // 最大100 - rotateLeft: false, // 按钮å‘å·¦æ—‹è½¬äº‹ä»¶å¼€å¯ - rotateRight: false, // 按钮å‘峿—‹è½¬äº‹ä»¶å¼€å¯ - degree: 0, // 旋转度数 - x: 0, - y: 0, - width: 0, - height: 0, - maxWidth: 0, - maxHeight: 0, - minWidth: 0, // 最宽 - minHeight: 0, - naturalWidth: 0, // 原宽 - naturalHeight: 0 - } - }; - }, - computed: { - // è¿›åº¦æ¡æ ·å¼ - progressStyle() { - const { progress } = this; - return { - width: progress + "%" - }; - }, - // åŽŸå›¾æ ·å¼ - sourceImgStyle() { - const { scale, sourceImgMasking } = this; - const top = scale.y + sourceImgMasking.y + "px"; - const left = scale.x + sourceImgMasking.x + "px"; - return { - top, - left, - width: scale.width + "px", - height: scale.height + "px", - transform: "rotate(" + scale.degree + "deg)", // 旋转时 å·¦ä¾§åŽŸå§‹å›¾æ—‹è½¬æ ·å¼ - "-ms-transform": "rotate(" + scale.degree + "deg)", // 兼容IE9 - "-moz-transform": "rotate(" + scale.degree + "deg)", // 兼容FireFox - "-webkit-transform": "rotate(" + scale.degree + "deg)", // 兼容Safari å’Œ chrome - "-o-transform": "rotate(" + scale.degree + "deg)" // 兼容 Opera - }; - }, - // 原图蒙版属性 - sourceImgMasking() { - const { width, height, ratio, sourceImgContainer } = this; - const sic = sourceImgContainer; - const sicRatio = sic.width / sic.height; // 原图容器宽高比 - let x = 0; - let y = 0; - let w = sic.width; - let h = sic.height; - let scale = 1; - if (ratio < sicRatio) { - scale = sic.height / height; - w = sic.height * ratio; - x = (sic.width - w) / 2; - } - if (ratio > sicRatio) { - scale = sic.width / width; - h = sic.width / ratio; - y = (sic.height - h) / 2; - } - return { - scale, // 蒙版相对需求宽高的缩放 - x, - y, - width: w, - height: h - }; - }, - // 原图é®ç½©æ ·å¼ - sourceImgShadeStyle() { - const { sourceImgMasking, sourceImgContainer } = this; - const sic = sourceImgContainer; - const sim = sourceImgMasking; - const w = - sim.width === sic.width ? sim.width : (sic.width - sim.width) / 2; - const h = - sim.height === sic.height ? sim.height : (sic.height - sim.height) / 2; - return { - width: w + "px", - height: h + "px" - }; - }, - previewStyle() { - const { ratio, previewContainer } = this; - const pc = previewContainer; - let w = pc.width; - let h = pc.height; - const pcRatio = w / h; - if (ratio < pcRatio) { - w = pc.height * ratio; - } - if (ratio > pcRatio) { - h = pc.width / ratio; - } - return { - width: w + "px", - height: h + "px" - }; - } - }, - watch: { - value(newValue) { - if (newValue && this.loading !== 1) { - this.reset(); - } - } - }, - created() { - // 绑定按键escéšè—æ¤æ’件事件 - document.addEventListener("keyup", this.closeHandler); - }, - destroyed() { - document.removeEventListener("keyup", this.closeHandler); - }, - methods: { - // 点击波纹效果 - ripple(e) { - effectRipple(e); - }, - // 关闿ާ件 - off() { - setTimeout(() => { - this.$emit("input", false); - this.$emit("close"); - if (this.step === 3 && this.loading === 2) { - this.setStep(1); - } - }, 200); - }, - // 设置æ¥éª¤ - setStep(no) { - // 延时是为了显示动画效果呢,哈哈哈 - setTimeout(() => { - this.step = no; - }, 200); - }, - /* 图片选择区域函数绑定 - ---------------------------------------------------------------*/ - preventDefault(e) { - e.preventDefault(); - return false; - }, - handleClick(e) { - if (this.loading !== 1) { - if (e.target !== this.$refs.fileinput) { - e.preventDefault(); - if (document.activeElement !== this.$refs) { - this.$refs.fileinput.click(); - } - } - } - }, - handleChange(e) { - e.preventDefault(); - if (this.loading !== 1) { - const files = e.target.files || e.dataTransfer.files; - this.reset(); - if (this.checkFile(files[0])) { - this.setSourceImg(files[0]); - } - } - }, - /* ---------------------------------------------------------------*/ - // 检测选择的文件是å¦åˆé€‚ - checkFile(file) { - const { lang, maxSize } = this; - // ä»…é™å›¾ç‰‡ - if (file.type.indexOf("image") === -1) { - this.hasError = true; - this.errorMsg = lang.error.onlyImg; - return false; - } - // è¶…å‡ºå¤§å° - if (file.size / 1024 > maxSize) { - this.hasError = true; - this.errorMsg = lang.error.outOfSize + maxSize + "kb"; - return false; - } - return true; - }, - // é‡ç½®æŽ§ä»¶ - reset() { - this.loading = 0; - this.hasError = false; - this.errorMsg = ""; - this.progress = 0; - }, - // è®¾ç½®å›¾ç‰‡æº - setSourceImg(file) { - const fr = new FileReader(); - fr.onload = e => { - this.sourceImgUrl = fr.result; - this.startCrop(); - }; - fr.readAsDataURL(file); - }, - // 剪è£å‰å‡†å¤‡å·¥ä½œ - startCrop() { - const { - width, - height, - ratio, - scale, - sourceImgUrl, - sourceImgMasking, - lang - } = this; - const sim = sourceImgMasking; - const img = new Image(); - img.src = sourceImgUrl; - img.onload = () => { - const nWidth = img.naturalWidth; - const nHeight = img.naturalHeight; - const nRatio = nWidth / nHeight; - let w = sim.width; - let h = sim.height; - let x = 0; - let y = 0; - // 图片åƒç´ ä¸è¾¾æ ‡ - if (nWidth < width || nHeight < height) { - this.hasError = true; - this.errorMsg = lang.error.lowestPx + width + "*" + height; - return false; - } - if (ratio > nRatio) { - h = w / nRatio; - y = (sim.height - h) / 2; - } - if (ratio < nRatio) { - w = h * nRatio; - x = (sim.width - w) / 2; - } - scale.range = 0; - scale.x = x; - scale.y = y; - scale.width = w; - scale.height = h; - scale.degree = 0; - scale.minWidth = w; - scale.minHeight = h; - scale.maxWidth = nWidth * sim.scale; - scale.maxHeight = nHeight * sim.scale; - scale.naturalWidth = nWidth; - scale.naturalHeight = nHeight; - this.sourceImg = img; - this.createImg(); - this.setStep(2); - }; - }, - // é¼ æ ‡æŒ‰ä¸‹å›¾ç‰‡å‡†å¤‡ç§»åŠ¨ - imgStartMove(e) { - e.preventDefault(); - // 支æŒè§¦æ‘¸äº‹ä»¶ï¼Œåˆ™é¼ æ ‡äº‹ä»¶æ— æ•ˆ - if (this.isSupportTouch && !e.targetTouches) { - return false; - } - const et = e.targetTouches ? e.targetTouches[0] : e; - const { sourceImgMouseDown, scale } = this; - const simd = sourceImgMouseDown; - simd.mX = et.screenX; - simd.mY = et.screenY; - simd.x = scale.x; - simd.y = scale.y; - simd.on = true; - }, - // é¼ æ ‡æŒ‰ä¸‹çŠ¶æ€ä¸‹ç§»åŠ¨ï¼Œå›¾ç‰‡ç§»åŠ¨ - imgMove(e) { - e.preventDefault(); - // 支æŒè§¦æ‘¸äº‹ä»¶ï¼Œåˆ™é¼ æ ‡äº‹ä»¶æ— æ•ˆ - if (this.isSupportTouch && !e.targetTouches) { - return false; - } - const et = e.targetTouches ? e.targetTouches[0] : e; - const { - sourceImgMouseDown: { on, mX, mY, x, y }, - scale, - sourceImgMasking - } = this; - const sim = sourceImgMasking; - const nX = et.screenX; - const nY = et.screenY; - const dX = nX - mX; - const dY = nY - mY; - let rX = x + dX; - let rY = y + dY; - if (!on) return; - if (rX > 0) { - rX = 0; - } - if (rY > 0) { - rY = 0; - } - if (rX < sim.width - scale.width) { - rX = sim.width - scale.width; - } - if (rY < sim.height - scale.height) { - rY = sim.height - scale.height; - } - scale.x = rX; - scale.y = rY; - }, - // 按钮按下开始å‘峿—‹è½¬ - startRotateRight(e) { - const { scale } = this; - scale.rotateRight = true; - const rotate = () => { - if (scale.rotateRight) { - const degree = ++scale.degree; - this.createImg(degree); - setTimeout(function() { - rotate(); - }, 60); - } - }; - rotate(); - }, - // 按钮按下开始å‘左旋转 - startRotateLeft(e) { - const { scale } = this; - scale.rotateLeft = true; - const rotate = () => { - if (scale.rotateLeft) { - const degree = --scale.degree; - this.createImg(degree); - setTimeout(function() { - rotate(); - }, 60); - } - }; - rotate(); - }, - // åœæ¢æ—‹è½¬ - endRotate() { - const { scale } = this; - scale.rotateLeft = false; - scale.rotateRight = false; - }, - // 按钮按下开始放大 - startZoomAdd(e) { - const { scale } = this; - scale.zoomAddOn = true; - const zoom = () => { - if (scale.zoomAddOn) { - const range = scale.range >= 100 ? 100 : ++scale.range; - this.zoomImg(range); - setTimeout(function() { - zoom(); - }, 60); - } - }; - zoom(); - }, - // 按钮æ¾å¼€æˆ–ç§»å¼€å–æ¶ˆæ”¾å¤§ - endZoomAdd(e) { - this.scale.zoomAddOn = false; - }, - // æŒ‰é’®æŒ‰ä¸‹å¼€å§‹ç¼©å° - startZoomSub(e) { - const { scale } = this; - scale.zoomSubOn = true; - const zoom = () => { - if (scale.zoomSubOn) { - const range = scale.range <= 0 ? 0 : --scale.range; - this.zoomImg(range); - setTimeout(function() { - zoom(); - }, 60); - } - }; - zoom(); - }, - // 按钮æ¾å¼€æˆ–ç§»å¼€å–æ¶ˆç¼©å° - endZoomSub(e) { - const { scale } = this; - scale.zoomSubOn = false; - }, - zoomChange(e) { - this.zoomImg(e.target.value); - }, - // 缩放原图 - zoomImg(newRange) { - const { sourceImgMasking, scale } = this; - const { - maxWidth, - maxHeight, - minWidth, - minHeight, - width, - height, - x, - y - } = scale; - const sim = sourceImgMasking; - // 蒙版宽高 - const sWidth = sim.width; - const sHeight = sim.height; - // 新宽高 - const nWidth = minWidth + ((maxWidth - minWidth) * newRange) / 100; - const nHeight = minHeight + ((maxHeight - minHeight) * newRange) / 100; - // æ–°åæ ‡ï¼ˆæ ¹æ®è’™ç‰ˆä¸å¿ƒç‚¹ç¼©æ”¾ï¼‰ - let nX = sWidth / 2 - (nWidth / width) * (sWidth / 2 - x); - let nY = sHeight / 2 - (nHeight / height) * (sHeight / 2 - y); - // åˆ¤æ–æ–°åæ ‡æ˜¯å¦è¶…过蒙版é™åˆ¶ - if (nX > 0) { - nX = 0; - } - if (nY > 0) { - nY = 0; - } - if (nX < sWidth - nWidth) { - nX = sWidth - nWidth; - } - if (nY < sHeight - nHeight) { - nY = sHeight - nHeight; - } - // èµ‹å€¼å¤„ç† - scale.x = nX; - scale.y = nY; - scale.width = nWidth; - scale.height = nHeight; - scale.range = newRange; - setTimeout(() => { - if (scale.range === newRange) { - this.createImg(); - } - }, 300); - }, - // 生æˆéœ€æ±‚图片 - createImg(e) { - const { - mime, - sourceImg, - scale: { x, y, width, height, degree }, - sourceImgMasking: { scale } - } = this; - const canvas = this.$refs.canvas; - const ctx = canvas.getContext("2d"); - if (e) { - // å–æ¶ˆé¼ æ ‡æŒ‰ä¸‹ç§»åŠ¨çŠ¶æ€ - this.sourceImgMouseDown.on = false; - } - canvas.width = this.width; - canvas.height = this.height; - ctx.clearRect(0, 0, this.width, this.height); - // 将逿˜ŽåŒºåŸŸè®¾ç½®ä¸ºç™½è‰²åº•è¾¹ - ctx.fillStyle = "#fff"; - ctx.fillRect(0, 0, this.width, this.height); - ctx.translate(this.width * 0.5, this.height * 0.5); - ctx.rotate((Math.PI * degree) / 180); - ctx.translate(-this.width * 0.5, -this.height * 0.5); - ctx.drawImage( - sourceImg, - x / scale, - y / scale, - width / scale, - height / scale - ); - this.createImgUrl = canvas.toDataURL(mime); - }, - prepareUpload() { - const { url, createImgUrl, field, ki } = this; - this.$emit("crop-success", createImgUrl, field, ki); - if (typeof url === "string" && url) { - this.upload(); - } else { - this.off(); - } - }, - // ä¸Šä¼ å›¾ç‰‡ - upload() { - const { - lang, - imgFormat, - mime, - url, - params, - field, - ki, - createImgUrl - } = this; - const fmData = new FormData(); - fmData.append( - field, - data2blob(createImgUrl, mime), - field + "." + imgFormat - ); - // æ·»åŠ å…¶ä»–å‚æ•° - if (typeof params === "object" && params) { - Object.keys(params).forEach(k => { - fmData.append(k, params[k]); - }); - } - // 监å¬è¿›åº¦å›žè°ƒ - // const uploadProgress = (event) => { - // if (event.lengthComputable) { - // this.progress = 100 * Math.round(event.loaded) / event.total - // } - // } - // ä¸Šä¼ æ–‡ä»¶ - this.reset(); - this.loading = 1; - this.setStep(3); - request({ - url, - method: "post", - data: fmData - }) - .then(resData => { - this.loading = 2; - this.$emit("crop-upload-success", resData.data); - }) - .catch(err => { - if (this.value) { - this.loading = 3; - this.hasError = true; - this.errorMsg = lang.fail; - this.$emit("crop-upload-fail", err, field, ki); - } - }); - }, - closeHandler(e) { - if (this.value && (e.key === "Escape" || e.keyCode === 27)) { - this.off(); - } - } - } -}; -</script> - -<style lang="scss"> -@charset "UTF-8"; -@-webkit-keyframes vicp_progress { - 0% { - background-position-y: 0; - } - 100% { - background-position-y: 40px; - } -} -@keyframes vicp_progress { - 0% { - background-position-y: 0; - } - 100% { - background-position-y: 40px; - } -} -@-webkit-keyframes vicp { - 0% { - opacity: 0; - -webkit-transform: scale(0) translatey(-60px); - transform: scale(0) translatey(-60px); - } - 100% { - opacity: 1; - -webkit-transform: scale(1) translatey(0); - transform: scale(1) translatey(0); - } -} -@keyframes vicp { - 0% { - opacity: 0; - -webkit-transform: scale(0) translatey(-60px); - transform: scale(0) translatey(-60px); - } - 100% { - opacity: 1; - -webkit-transform: scale(1) translatey(0); - transform: scale(1) translatey(0); - } -} -.vue-image-crop-upload { - position: fixed; - display: block; - -webkit-box-sizing: border-box; - box-sizing: border-box; - z-index: 10000; - top: 0; - bottom: 0; - left: 0; - right: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.65); - -webkit-tap-highlight-color: transparent; - -moz-tap-highlight-color: transparent; -} -.vue-image-crop-upload .vicp-wrap { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - position: fixed; - display: block; - -webkit-box-sizing: border-box; - box-sizing: border-box; - z-index: 10000; - top: 0; - bottom: 0; - left: 0; - right: 0; - margin: auto; - width: 600px; - height: 330px; - padding: 25px; - background-color: #fff; - border-radius: 2px; - -webkit-animation: vicp 0.12s ease-in; - animation: vicp 0.12s ease-in; -} -.vue-image-crop-upload .vicp-wrap .vicp-close { - position: absolute; - right: -30px; - top: -30px; -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4 { - position: relative; - display: block; - width: 30px; - height: 30px; - cursor: pointer; - -webkit-transition: -webkit-transform 0.18s; - transition: -webkit-transform 0.18s; - transition: transform 0.18s; - transition: transform 0.18s, -webkit-transform 0.18s; - -webkit-transform: rotate(0); - -ms-transform: rotate(0); - transform: rotate(0); -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4::after, -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4::before { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - content: ""; - position: absolute; - top: 12px; - left: 4px; - width: 20px; - height: 3px; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - background-color: #fff; -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4::after { - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); -} -.vue-image-crop-upload .vicp-wrap .vicp-close .vicp-icon4:hover { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area { - position: relative; - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 35px; - height: 170px; - background-color: rgba(0, 0, 0, 0.03); - text-align: center; - border: 1px dashed rgba(0, 0, 0, 0.08); - overflow: hidden; -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area .vicp-icon1 { - display: block; - margin: 0 auto 6px; - width: 42px; - height: 42px; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-icon1 - .vicp-icon1-arrow { - display: block; - margin: 0 auto; - width: 0; - height: 0; - border-bottom: 14.7px solid rgba(0, 0, 0, 0.3); - border-left: 14.7px solid transparent; - border-right: 14.7px solid transparent; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-icon1 - .vicp-icon1-body { - display: block; - width: 12.6px; - height: 14.7px; - margin: 0 auto; - background-color: rgba(0, 0, 0, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-icon1 - .vicp-icon1-bottom { - -webkit-box-sizing: border-box; - box-sizing: border-box; - display: block; - height: 12.6px; - border: 6px solid rgba(0, 0, 0, 0.3); - border-top: none; -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area .vicp-hint { - display: block; - padding: 15px; - font-size: 14px; - color: #666; - line-height: 30px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step1 - .vicp-drop-area - .vicp-no-supported-hint { - display: block; - position: absolute; - top: 0; - left: 0; - padding: 30px; - width: 100%; - height: 60px; - line-height: 30px; - background-color: #eee; - text-align: center; - color: #666; - font-size: 14px; -} -.vue-image-crop-upload .vicp-wrap .vicp-step1 .vicp-drop-area:hover { - cursor: pointer; - border-color: rgba(0, 0, 0, 0.1); - background-color: rgba(0, 0, 0, 0.05); -} -.vue-image-crop-upload .vicp-wrap .vicp-step2 .vicp-crop { - overflow: hidden; -} -.vue-image-crop-upload .vicp-wrap .vicp-step2 .vicp-crop .vicp-crop-left { - float: left; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container { - position: relative; - display: block; - width: 240px; - height: 180px; - background-color: #e5e5e0; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img { - position: absolute; - display: block; - cursor: move; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img-shade { - -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - position: absolute; - background-color: rgba(241, 242, 243, 0.8); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img-shade.vicp-img-shade-1 { - top: 0; - left: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-img-container - .vicp-img-shade.vicp-img-shade-2 { - bottom: 0; - right: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate { - position: relative; - width: 240px; - height: 18px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i { - display: block; - width: 18px; - height: 18px; - border-radius: 100%; - line-height: 18px; - text-align: center; - font-size: 12px; - font-weight: bold; - background-color: rgba(0, 0, 0, 0.08); - color: #fff; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i:hover { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - cursor: pointer; - background-color: rgba(0, 0, 0, 0.14); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i:first-child { - float: left; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-rotate - i:last-child { - float: right; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range { - position: relative; - margin: 30px 0 10px 0; - width: 240px; - height: 18px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5, -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6 { - position: absolute; - top: 0; - width: 18px; - height: 18px; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.08); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5:hover, -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6:hover { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - cursor: pointer; - background-color: rgba(0, 0, 0, 0.14); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5 { - left: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon5::before { - position: absolute; - content: ""; - display: block; - left: 3px; - top: 8px; - width: 12px; - height: 2px; - background-color: #fff; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6 { - right: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6::before { - position: absolute; - content: ""; - display: block; - left: 3px; - top: 8px; - width: 12px; - height: 2px; - background-color: #fff; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - .vicp-icon6::after { - position: absolute; - content: ""; - display: block; - top: 3px; - left: 8px; - width: 2px; - height: 12px; - background-color: #fff; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"] { - display: block; - padding-top: 5px; - margin: 0 auto; - width: 180px; - height: 8px; - vertical-align: top; - background: transparent; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - cursor: pointer; - /* æ»‘å— - ---------------------------------------------------------------*/ - /* è½¨é“ - ---------------------------------------------------------------*/ -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus { - outline: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-webkit-slider-thumb { - -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - -webkit-appearance: none; - appearance: none; - margin-top: -3px; - width: 12px; - height: 12px; - background-color: #61c091; - border-radius: 100%; - border: none; - -webkit-transition: 0.2s; - transition: 0.2s; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-moz-range-thumb { - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - -moz-appearance: none; - appearance: none; - width: 12px; - height: 12px; - background-color: #61c091; - border-radius: 100%; - border: none; - -webkit-transition: 0.2s; - transition: 0.2s; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-thumb { - box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.18); - appearance: none; - width: 12px; - height: 12px; - background-color: #61c091; - border: none; - border-radius: 100%; - -webkit-transition: 0.2s; - transition: 0.2s; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:active::-moz-range-thumb { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - width: 14px; - height: 14px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:active::-ms-thumb { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - width: 14px; - height: 14px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:active::-webkit-slider-thumb { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.23); - margin-top: -4px; - width: 14px; - height: 14px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-webkit-slider-runnable-track { - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - width: 100%; - height: 6px; - cursor: pointer; - border-radius: 2px; - border: none; - background-color: rgba(68, 170, 119, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-moz-range-track { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - width: 100%; - height: 6px; - cursor: pointer; - border-radius: 2px; - border: none; - background-color: rgba(68, 170, 119, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-track { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12); - width: 100%; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; - height: 6px; - border-radius: 2px; - border: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-fill-lower { - background-color: rgba(68, 170, 119, 0.3); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]::-ms-fill-upper { - background-color: rgba(68, 170, 119, 0.15); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-webkit-slider-runnable-track { - background-color: rgba(68, 170, 119, 0.5); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-moz-range-track { - background-color: rgba(68, 170, 119, 0.5); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-ms-fill-lower { - background-color: rgba(68, 170, 119, 0.45); -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-left - .vicp-range - input[type="range"]:focus::-ms-fill-upper { - background-color: rgba(68, 170, 119, 0.25); -} -.vue-image-crop-upload .vicp-wrap .vicp-step2 .vicp-crop .vicp-crop-right { - float: right; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview { - height: 150px; - overflow: hidden; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item { - position: relative; - padding: 5px; - width: 100px; - height: 100px; - float: left; - margin-right: 16px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item - span { - position: absolute; - bottom: -30px; - width: 100%; - font-size: 14px; - color: #bbb; - display: block; - text-align: center; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item - img { - position: absolute; - display: block; - top: 0; - bottom: 0; - left: 0; - right: 0; - margin: auto; - padding: 3px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.15); - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item.vicp-preview-item-circle { - margin-right: 0; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step2 - .vicp-crop - .vicp-crop-right - .vicp-preview - .vicp-preview-item.vicp-preview-item-circle - img { - border-radius: 100%; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload { - position: relative; - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 35px; - height: 170px; - background-color: rgba(0, 0, 0, 0.03); - text-align: center; - border: 1px dashed #ddd; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-loading { - display: block; - padding: 15px; - font-size: 16px; - color: #999; - line-height: 30px; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-progress-wrap { - margin-top: 12px; - background-color: rgba(0, 0, 0, 0.08); - border-radius: 3px; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step3 - .vicp-upload - .vicp-progress-wrap - .vicp-progress { - position: relative; - display: block; - height: 5px; - border-radius: 3px; - background-color: #4a7; - -webkit-box-shadow: 0 2px 6px 0 rgba(68, 170, 119, 0.3); - box-shadow: 0 2px 6px 0 rgba(68, 170, 119, 0.3); - -webkit-transition: width 0.15s linear; - transition: width 0.15s linear; - background-image: -webkit-linear-gradient( - 135deg, - rgba(255, 255, 255, 0.2) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.2) 50%, - rgba(255, 255, 255, 0.2) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - -45deg, - rgba(255, 255, 255, 0.2) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.2) 50%, - rgba(255, 255, 255, 0.2) 75%, - transparent 75%, - transparent - ); - background-size: 40px 40px; - -webkit-animation: vicp_progress 0.5s linear infinite; - animation: vicp_progress 0.5s linear infinite; -} -.vue-image-crop-upload - .vicp-wrap - .vicp-step3 - .vicp-upload - .vicp-progress-wrap - .vicp-progress::after { - content: ""; - position: absolute; - display: block; - top: -3px; - right: -3px; - width: 9px; - height: 9px; - border: 1px solid rgba(245, 246, 247, 0.7); - -webkit-box-shadow: 0 1px 4px 0 rgba(68, 170, 119, 0.7); - box-shadow: 0 1px 4px 0 rgba(68, 170, 119, 0.7); - border-radius: 100%; - background-color: #4a7; -} -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-error, -.vue-image-crop-upload .vicp-wrap .vicp-step3 .vicp-upload .vicp-success { - height: 100px; - line-height: 100px; -} -.vue-image-crop-upload .vicp-wrap .vicp-operate { - position: absolute; - right: 20px; - bottom: 20px; -} -.vue-image-crop-upload .vicp-wrap .vicp-operate a { - position: relative; - float: left; - display: block; - margin-left: 10px; - width: 100px; - height: 36px; - line-height: 36px; - text-align: center; - cursor: pointer; - font-size: 14px; - color: #4a7; - border-radius: 2px; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.vue-image-crop-upload .vicp-wrap .vicp-operate a:hover { - background-color: rgba(0, 0, 0, 0.03); -} -.vue-image-crop-upload .vicp-wrap .vicp-error, -.vue-image-crop-upload .vicp-wrap .vicp-success { - display: block; - font-size: 14px; - line-height: 24px; - height: 24px; - color: #d10; - text-align: center; - vertical-align: top; -} -.vue-image-crop-upload .vicp-wrap .vicp-success { - color: #4a7; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon3 { - position: relative; - display: inline-block; - width: 20px; - height: 20px; - top: 4px; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon3::after { - position: absolute; - top: 3px; - left: 6px; - width: 6px; - height: 10px; - border-width: 0 2px 2px 0; - border-color: #4a7; - border-style: solid; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - content: ""; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon2 { - position: relative; - display: inline-block; - width: 20px; - height: 20px; - top: 4px; -} -.vue-image-crop-upload .vicp-wrap .vicp-icon2::after, -.vue-image-crop-upload .vicp-wrap .vicp-icon2::before { - content: ""; - position: absolute; - top: 9px; - left: 4px; - width: 13px; - height: 2px; - background-color: #d10; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); -} -.vue-image-crop-upload .vicp-wrap .vicp-icon2::after { - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); -} -.e-ripple { - position: absolute; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.15); - background-clip: padding-box; - pointer-events: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transform: scale(0); - -ms-transform: scale(0); - transform: scale(0); - opacity: 1; -} -.e-ripple.z-active { - opacity: 0; - -webkit-transform: scale(2); - -ms-transform: scale(2); - transform: scale(2); - -webkit-transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out, - -webkit-transform 0.6s ease-out; -} -</style> diff --git a/WebSite/src/components/ImageCropper/utils/data2blob.js b/WebSite/src/components/ImageCropper/utils/data2blob.js deleted file mode 100644 index 59092dc..0000000 --- a/WebSite/src/components/ImageCropper/utils/data2blob.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * database64æ–‡ä»¶æ ¼å¼è½¬æ¢ä¸º2进制 - * - * @param {[String]} data dataURL çš„æ ¼å¼ä¸º “data:image/png;base64,****â€,逗å·ä¹‹å‰éƒ½æ˜¯ä¸€äº›è¯´æ˜Žæ€§çš„æ–‡å—,我们åªéœ€è¦é€—å·ä¹‹åŽçš„就行了 - * @param {[String]} mime [description] - * @return {[blob]} [description] - */ -export default function(data, mime) { - data = data.split(",")[1]; - data = window.atob(data); - var ia = new Uint8Array(data.length); - for (var i = 0; i < data.length; i++) { - ia[i] = data.charCodeAt(i); - } - // canvas.toDataURL è¿”å›žçš„é»˜è®¤æ ¼å¼å°±æ˜¯ image/png - return new Blob([ia], { - type: mime - }); -} diff --git a/WebSite/src/components/ImageCropper/utils/effectRipple.js b/WebSite/src/components/ImageCropper/utils/effectRipple.js deleted file mode 100644 index 3d42d00..0000000 --- a/WebSite/src/components/ImageCropper/utils/effectRipple.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * 点击波纹效果 - * - * @param {[event]} e [description] - * @param {[Object]} arg_opts [description] - * @return {[bollean]} [description] - */ -export default function(e, arg_opts) { - var opts = Object.assign( - { - ele: e.target, // æ³¢çº¹ä½œç”¨å…ƒç´ - type: "hit", // hit点击ä½ç½®æ‰©æ•£centerä¸å¿ƒç‚¹æ‰©å±• - bgc: "rgba(0, 0, 0, 0.15)" // 波纹颜色 - }, - arg_opts - ); - var target = opts.ele; - if (target) { - var rect = target.getBoundingClientRect(); - var ripple = target.querySelector(".e-ripple"); - if (!ripple) { - ripple = document.createElement("span"); - ripple.className = "e-ripple"; - ripple.style.height = ripple.style.width = - Math.max(rect.width, rect.height) + "px"; - target.appendChild(ripple); - } else { - ripple.className = "e-ripple"; - } - switch (opts.type) { - case "center": - ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + "px"; - ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + "px"; - break; - default: - ripple.style.top = - e.pageY - - rect.top - - ripple.offsetHeight / 2 - - document.body.scrollTop + - "px"; - ripple.style.left = - e.pageX - - rect.left - - ripple.offsetWidth / 2 - - document.body.scrollLeft + - "px"; - } - ripple.style.backgroundColor = opts.bgc; - ripple.className = "e-ripple z-active"; - return false; - } -} diff --git a/WebSite/src/components/ImageCropper/utils/language.js b/WebSite/src/components/ImageCropper/utils/language.js deleted file mode 100644 index 36cb300..0000000 --- a/WebSite/src/components/ImageCropper/utils/language.js +++ /dev/null @@ -1,240 +0,0 @@ -export default { - zh: { - hint: "点击,或拖动图片至æ¤å¤„", - loading: "æ£åœ¨ä¸Šä¼ ……", - noSupported: "æµè§ˆå™¨ä¸æ”¯æŒè¯¥åŠŸèƒ½ï¼Œè¯·ä½¿ç”¨IE10以上或其他现在æµè§ˆå™¨ï¼", - success: "ä¸Šä¼ æˆåŠŸ", - fail: "å›¾ç‰‡ä¸Šä¼ å¤±è´¥", - preview: "头åƒé¢„览", - btn: { - off: "å–æ¶ˆ", - close: "å…³é—", - back: "上一æ¥", - save: "ä¿å˜" - }, - error: { - onlyImg: "ä»…é™å›¾ç‰‡æ ¼å¼", - outOfSize: "啿–‡ä»¶å¤§å°ä¸èƒ½è¶…过 ", - lowestPx: "图片最低åƒç´ 为(宽*高):" - } - }, - "zh-tw": { - hint: "點擊,或拖動圖片至æ¤è™•", - loading: "æ£åœ¨ä¸Šå‚³â€¦â€¦", - noSupported: "ç€è¦½å™¨ä¸æ”¯æŒè©²åŠŸèƒ½ï¼Œè«‹ä½¿ç”¨IE10以上或其他ç¾ä»£ç€è¦½å™¨ï¼", - success: "上傳æˆåŠŸ", - fail: "圖片上傳失敗", - preview: "é åƒé 覽", - btn: { - off: "å–æ¶ˆ", - close: "關閉", - back: "上一æ¥", - save: "ä¿å˜" - }, - error: { - onlyImg: "僅é™åœ–ç‰‡æ ¼å¼", - outOfSize: "單文件大å°ä¸èƒ½è¶…éŽ ", - lowestPx: "圖片最低åƒç´ 為(寬*高):" - } - }, - en: { - hint: "Click or drag the file here to upload", - loading: "Uploading…", - noSupported: "Browser is not supported, please use IE10+ or other browsers", - success: "Upload success", - fail: "Upload failed", - preview: "Preview", - btn: { - off: "Cancel", - close: "Close", - back: "Back", - save: "Save" - }, - error: { - onlyImg: "Image only", - outOfSize: "Image exceeds size limit: ", - lowestPx: "Image's size is too low. Expected at least: " - } - }, - ro: { - hint: "Atinge sau trage fiÈ™ierul aici", - loading: "Se încarcă", - noSupported: - "Browser-ul tău nu suportă acest feature. Te rugăm încearcă cu alt browser.", - success: "S-a încărcat cu succes", - fail: "A apărut o problemă la încărcare", - preview: "Previzualizează", - - btn: { - off: "Anulează", - close: "ÃŽnchide", - back: "ÃŽnapoi", - save: "Salvează" - }, - - error: { - onlyImg: "Doar imagini", - outOfSize: "Imaginea depășeÈ™te limita de: ", - loewstPx: "Imaginea este prea mică; Minim: " - } - }, - ru: { - hint: "Ðажмите, или перетащите файл в Ñто окно", - loading: "Загружаю……", - noSupported: - "Ваш браузер не поддерживаетÑÑ, пожалуйÑта, иÑпользуйте IE10 + или другие браузеры", - success: "Загрузка выполнена уÑпешно", - fail: "Ошибка загрузки", - preview: "ПредпроÑмотр", - btn: { - off: "Отменить", - close: "Закрыть", - back: "Ðазад", - save: "Сохранить" - }, - error: { - onlyImg: "Только изображениÑ", - outOfSize: "Изображение превышает предельный размер: ", - lowestPx: "Минимальный размер изображениÑ: " - } - }, - "pt-br": { - hint: "Clique ou arraste o arquivo aqui para carregar", - loading: "Carregando…", - noSupported: "Browser não suportado, use o IE10+ ou outro browser", - success: "Sucesso ao carregar imagem", - fail: "Falha ao carregar imagem", - preview: "Pré-visualizar", - btn: { - off: "Cancelar", - close: "Fechar", - back: "Voltar", - save: "Salvar" - }, - error: { - onlyImg: "Apenas imagens", - outOfSize: "A imagem excede o limite de tamanho: ", - lowestPx: "O tamanho da imagem é muito pequeno. Tamanho mÃnimo: " - } - }, - fr: { - hint: "Cliquez ou glissez le fichier ici.", - loading: "Téléchargement…", - noSupported: - "Votre navigateur n'est pas supporté. Utilisez IE10 + ou un autre navigateur s'il vous plaît.", - success: "Téléchargement réussit", - fail: "Téléchargement echoué", - preview: "Aperçu", - btn: { - off: "Annuler", - close: "Fermer", - back: "Retour", - save: "Enregistrer" - }, - error: { - onlyImg: "Image uniquement", - outOfSize: "L'image sélectionnée dépasse la taille maximum: ", - lowestPx: "L'image sélectionnée est trop petite. Dimensions attendues: " - } - }, - nl: { - hint: "Klik hier of sleep een afbeelding in dit vlak", - loading: "Uploaden…", - noSupported: - "Je browser wordt helaas niet ondersteund. Gebruik IE10+ of een andere browser.", - success: "Upload succesvol", - fail: "Upload mislukt", - preview: "Voorbeeld", - btn: { - off: "Annuleren", - close: "Sluiten", - back: "Terug", - save: "Opslaan" - }, - error: { - onlyImg: "Alleen afbeeldingen", - outOfSize: "De afbeelding is groter dan: ", - lowestPx: "De afbeelding is te klein! Minimale afmetingen: " - } - }, - tr: { - hint: "Tıkla veya yüklemek istediÄŸini buraya sürükle", - loading: "Yükleniyor…", - noSupported: - "Tarayıcı desteklenmiyor, lütfen IE10+ veya farklı tarayıcı kullanın", - success: "Yükleme baÅŸarılı", - fail: "Yüklemede hata oluÅŸtu", - preview: "Önizle", - btn: { - off: "İptal", - close: "Kapat", - back: "Geri", - save: "Kaydet" - }, - error: { - onlyImg: "Sadece resim", - outOfSize: "Resim yükleme limitini aşıyor: ", - lowestPx: "Resmin boyutu çok küçük. En az olması gereken: " - } - }, - "es-MX": { - hint: "Selecciona o arrastra una imagen", - loading: "Subiendo...", - noSupported: - "Tu navegador no es soportado, porfavor usa IE10+ u otros navegadores mas recientes", - success: "Subido exitosamente", - fail: "Sucedió un error", - preview: "Vista previa", - btn: { - off: "Cancelar", - close: "Cerrar", - back: "Atras", - save: "Guardar" - }, - error: { - onlyImg: "Unicamente imagenes", - outOfSize: "La imagen excede el tamaño maximo:", - lowestPx: "La imagen es demasiado pequeño. Se espera por lo menos:" - } - }, - de: { - hint: "Klick hier oder zieh eine Datei hier rein zum Hochladen", - loading: "Hochladen…", - noSupported: - "Browser wird nicht unterstützt, bitte verwende IE10+ oder andere Browser", - success: "Upload erfolgreich", - fail: "Upload fehlgeschlagen", - preview: "Vorschau", - btn: { - off: "Abbrechen", - close: "Schließen", - back: "Zurück", - save: "Speichern" - }, - error: { - onlyImg: "Nur Bilder", - outOfSize: "Das Bild ist zu groß: ", - lowestPx: "Das Bild ist zu klein. Mindestens: " - } - }, - ja: { - hint: "クリック・ドラッグã—ã¦ãƒ•ァイルをアップãƒãƒ¼ãƒ‰", - loading: "アップãƒãƒ¼ãƒ‰ä¸...", - noSupported: - "ã“ã®ãƒ–ラウザã¯å¯¾å¿œã•れã¦ã„ã¾ã›ã‚“。IE10+ã‹ãã®ä»–ã®ä¸»è¦ãƒ–ラウザをãŠä½¿ã„ãã ã•ã„。", - success: "アップãƒãƒ¼ãƒ‰æˆåŠŸ", - fail: "アップãƒãƒ¼ãƒ‰å¤±æ•—", - preview: "プレビュー", - btn: { - off: "ã‚ャンセル", - close: "é–‰ã˜ã‚‹", - back: "戻る", - save: "ä¿å˜" - }, - error: { - onlyImg: "ç”»åƒã®ã¿", - outOfSize: "ç”»åƒã‚µã‚¤ã‚ºãŒä¸Šé™ã‚’è¶…ãˆã¦ã„ã¾ã™ã€‚上é™: ", - lowestPx: "ç”»åƒãŒå°ã•ã™ãŽã¾ã™ã€‚最å°ã‚µã‚¤ã‚º: " - } - } -}; diff --git a/WebSite/src/components/ImageCropper/utils/mimes.js b/WebSite/src/components/ImageCropper/utils/mimes.js deleted file mode 100644 index 049d6bc..0000000 --- a/WebSite/src/components/ImageCropper/utils/mimes.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - jpg: "image/jpeg", - png: "image/png", - gif: "image/gif", - svg: "image/svg+xml", - psd: "image/photoshop" -}; diff --git a/WebSite/src/components/JcRange/index.vue b/WebSite/src/components/JcRange/index.vue deleted file mode 100644 index c75301b..0000000 --- a/WebSite/src/components/JcRange/index.vue +++ /dev/null @@ -1,170 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-18 16:39:04 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-19 16:21:56 ---> -<template> - <div class="jc-component__range"> - <div class="jc-range" :class="rangeStatus ? 'success' : ''"> - <div - :class="{ 'jc-range-block': true, login: rangeStatus }" - @mousedown="rangeMove" - @click="handleConfirm" - > - <i :class="rangeStatus ? successIcon : startIcon"></i> - <span> ç™» 录</span> - </div> - {{ rangeStatus ? successText : startText }} - </div> - </div> -</template> - -<script> -export default { - name: "JcRange", - props: { - // æˆåŠŸä¹‹åŽçš„函数 - successFun: { - type: Function - }, - //æˆåŠŸå›¾æ ‡ - successIcon: { - type: String, - default: "el-icon-mouse" - }, - //æˆåŠŸæ–‡å— - successText: { - type: String, - default: "éªŒè¯æˆåŠŸ" - }, - //å¼€å§‹çš„å›¾æ ‡ - startIcon: { - type: String, - default: "el-icon-right" - }, - //å¼€å§‹çš„æ–‡å— - startText: { - type: String, - default: "拖动滑å—至最å³ä»¥ç™»å½•" - }, - //失败之åŽçš„函数 - errorFun: { - type: Function - }, - //或者用值æ¥è¿›è¡Œç›‘å¬ - status: { - type: Boolean, - default: false - } - }, - data() { - return { - disX: 0, - rangeStatus: false - }; - }, - methods: { - handleConfirm() { - this.$emit("handle-confirm"); - }, - //滑å—移动 - rangeMove(e) { - let ele = document.querySelector(".jc-range-block"); - let startX = e.clientX; - let eleWidth = ele.offsetWidth; - let parentWidth = ele.parentElement.offsetWidth; - let MaxX = parentWidth - eleWidth; - if (this.rangeStatus) { - //ä¸è¿è¡Œ - return false; - } - document.onmousemove = e => { - let endX = e.clientX; - this.disX = endX - startX; - if (this.disX <= 0) { - this.disX = 0; - } - if (this.disX >= MaxX - eleWidth) { - //å‡åŽ»æ»‘å—的宽度,体验效果更好 - this.disX = MaxX; - } - ele.style.transition = ".1s all"; - ele.style.transform = "translateX(" + this.disX + "px)"; - e.preventDefault(); - }; - document.onmouseup = () => { - if (this.disX !== MaxX) { - ele.style.transition = ".5s all"; - ele.style.transform = "translateX(0)"; - //执行æˆåŠŸçš„å‡½æ•° - this.errorFun && this.errorFun(); - } else { - this.rangeStatus = true; - if (!this.status) { - this.$emit("update:status", true); - } - //执行æˆåŠŸçš„å‡½æ•° - this.successFun && this.successFun(); - } - document.onmousemove = null; - document.onmouseup = null; - }; - } - } -}; -</script> - -<style lang="scss" scoped> -@mixin jc-flex { - display: flex; - justify-content: center; - align-items: center; -} -.jc-component__range { - .jc-range { - background-color: #e9e9e9; - position: relative; - transition: 1s all; - user-select: none; - color: #585858; - border-radius: 3px; - @include jc-flex; - height: 40px; /*no*/ - &.success { - background-color: rgb(24, 144, 255); - color: #fff; - i { - color: rgb(24, 144, 255); - } - } - .jc-range-block { - position: absolute; - left: 0; - width: 50px; /*no*/ - height: 100%; - color: #409eff; - border-radius: 3px; - background-color: #fff; - border: 1px solid #d8d8d8; - cursor: pointer; - font-size: 20px; - @include jc-flex; - - span { - position: absolute; - left: 50px; - font-size: 14px; - margin-left: 5px; - opacity: 0; - } - } - - .login { - left: -50px; - width: 100px; - } - } -} -</style> diff --git a/WebSite/src/components/JsonEditor/index.vue b/WebSite/src/components/JsonEditor/index.vue deleted file mode 100644 index 851e32c..0000000 --- a/WebSite/src/components/JsonEditor/index.vue +++ /dev/null @@ -1,72 +0,0 @@ -<template> - <div class="json-editor"> - <textarea ref="textarea" /> - </div> -</template> - -<script> -import CodeMirror from "codemirror"; -import "codemirror/addon/lint/lint.css"; -import "codemirror/lib/codemirror.css"; -import "codemirror/theme/rubyblue.css"; -require("script-loader!jsonlint"); -import "codemirror/mode/javascript/javascript"; -import "codemirror/addon/lint/lint"; -import "codemirror/addon/lint/json-lint"; - -export default { - name: "JsonEditor", - /* eslint-disable vue/require-prop-types */ - props: ["value"], - data() { - return { - jsonEditor: false - }; - }, - watch: { - value(value) { - const editorValue = this.jsonEditor.getValue(); - if (value !== editorValue) { - this.jsonEditor.setValue(JSON.stringify(this.value, null, 2)); - } - } - }, - mounted() { - this.jsonEditor = CodeMirror.fromTextArea(this.$refs.textarea, { - lineNumbers: true, - mode: "application/json", - gutters: ["CodeMirror-lint-markers"], - theme: "rubyblue", - lint: true - }); - - this.jsonEditor.setValue(JSON.stringify(this.value, null, 2)); - this.jsonEditor.on("change", cm => { - this.$emit("changed", cm.getValue()); - this.$emit("input", cm.getValue()); - }); - }, - methods: { - getValue() { - return this.jsonEditor.getValue(); - } - } -}; -</script> - -<style scoped> -.json-editor { - height: 100%; - position: relative; -} -.json-editor >>> .CodeMirror { - height: auto; - min-height: 300px; -} -.json-editor >>> .CodeMirror-scroll { - min-height: 300px; -} -.json-editor >>> .cm-s-rubyblue span.cm-string { - color: #f08047; -} -</style> diff --git a/WebSite/src/components/JumpDialog/components/JumpDialogItem.vue b/WebSite/src/components/JumpDialog/components/JumpDialogItem.vue deleted file mode 100644 index 8335599..0000000 --- a/WebSite/src/components/JumpDialog/components/JumpDialogItem.vue +++ /dev/null @@ -1,39 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-20 08:32:52 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 12:55:38 ---> -<template> - <div v-if="visible"> - <slot></slot> - </div> -</template> - -<script> -import { eventBus } from "../event-bus"; -export default { - name: "JumpDialogItem", - data() { - return { - visible: false - }; - }, - props: { - name: { - type: String - }, - label: { - type: String - } - }, - created() { - eventBus.$on("activeChange", activeName => { - this.visible = this.name === activeName; - this.visible && eventBus.$emit("setTitle", this.label); - }); - }, - mounted() {} -}; -</script> diff --git a/WebSite/src/components/JumpDialog/event-bus.js b/WebSite/src/components/JumpDialog/event-bus.js deleted file mode 100644 index 03c63fd..0000000 --- a/WebSite/src/components/JumpDialog/event-bus.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-20 08:42:33 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 08:44:20 - */ -import Vue from "vue"; -export const eventBus = new Vue(); diff --git a/WebSite/src/components/JumpDialog/index.vue b/WebSite/src/components/JumpDialog/index.vue deleted file mode 100644 index 2ddcd16..0000000 --- a/WebSite/src/components/JumpDialog/index.vue +++ /dev/null @@ -1,103 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-16 15:43:55 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 12:32:54 ---> -<template> - <div class="jump-dialog-outer-container" :style="{ width }"> - <transition name="jump-dialog" mode="out-in"> - <div class="jump-dialog-inner-container" v-show="!visible"> - <slot name="layout"></slot> - </div> - </transition> - <transition name="jump-dialog" mode="out-in"> - <div class="jump-dialog-inner-container" v-show="visible"> - <el-card shadow="hover"> - <el-page-header @back="goBack" :content="title"></el-page-header> - <div class="content-container"> - <slot></slot> - </div> - </el-card> - </div> - </transition> - </div> -</template> - -<script> -import { eventBus } from "./event-bus"; -export default { - name: "JumpDialog", - props: { - visible: { - type: Boolean, - default: false - }, - width: { - type: String, - default: "100%" - }, - activeName: { - type: String - } - }, - data() { - return { - title: "" - }; - }, - watch: { - activeName(val) { - eventBus.$emit("activeChange", val); - } - }, - created() { - eventBus.$on("setTitle", title => { - this.title = title; - }); - }, - mounted() {}, - beforeDestroy() { - eventBus.$off(); - }, - methods: { - goBack() { - this.$emit("update:visible", false); - } - } -}; -</script> - -<style scoped> -.jump-dialog-outer-container { - position: relative; - width: 100%; -} -.jump-dialog-inner-container { - position: absolute; - width: 100%; -} -.content-container { - width: 100%; - margin-top: 20px; -} - -.jump-dialog-leave-active { - transition: all 0.6s ease; -} - -.jump-dialog-enter-active { - transition: all 0.6s ease; -} - -.jump-dialog-enter { - opacity: 0; - transform: translateX(-30px); -} - -.jump-dialog-leave-to { - opacity: 0; - transform: translateX(30px); -} -</style> diff --git a/WebSite/src/components/Kanban/index.vue b/WebSite/src/components/Kanban/index.vue deleted file mode 100644 index a858ac9..0000000 --- a/WebSite/src/components/Kanban/index.vue +++ /dev/null @@ -1,98 +0,0 @@ -<template> - <div class="board-column"> - <div class="board-column-header"> - {{ headerText }} - </div> - <draggable - :list="list" - v-bind="$attrs" - class="board-column-content" - :set-data="setData" - > - <div v-for="element in list" :key="element.id" class="board-item"> - {{ element.name }} {{ element.id }} - </div> - </draggable> - </div> -</template> - -<script> -import draggable from "vuedraggable"; - -export default { - name: "DragKanbanDemo", - components: { - draggable - }, - props: { - headerText: { - type: String, - default: "Header" - }, - options: { - type: Object, - default() { - return {}; - } - }, - list: { - type: Array, - default() { - return []; - } - } - }, - methods: { - setData(dataTransfer) { - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - dataTransfer.setData("Text", ""); - } - } -}; -</script> -<style lang="scss" scoped> -.board-column { - min-width: 300px; - min-height: 100px; - height: auto; - overflow: hidden; - background: #f0f0f0; - border-radius: 3px; - - .board-column-header { - height: 50px; - line-height: 50px; - overflow: hidden; - padding: 0 20px; - text-align: center; - background: #333; - color: #fff; - border-radius: 3px 3px 0 0; - } - - .board-column-content { - height: auto; - overflow: hidden; - border: 10px solid transparent; - min-height: 60px; - display: flex; - justify-content: flex-start; - flex-direction: column; - align-items: center; - - .board-item { - cursor: pointer; - width: 100%; - height: 64px; - margin: 5px 0; - background-color: #fff; - text-align: left; - line-height: 54px; - padding: 5px 10px; - box-sizing: border-box; - box-shadow: 0px 1px 3px 0 rgba(0, 0, 0, 0.2); - } - } -} -</style> diff --git a/WebSite/src/components/LayoutCard/index.vue b/WebSite/src/components/LayoutCard/index.vue deleted file mode 100644 index 5861776..0000000 --- a/WebSite/src/components/LayoutCard/index.vue +++ /dev/null @@ -1,103 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-19 09:00:48 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-19 11:01:53 ---> -<template> - <div :class="['container', type]"> - <header> - <div class="title-container" v-if="showTitle"> - <slot name="title"></slot> - </div> - </header> - <main> - <div class="filter-container" v-if="showFilter"> - <slot name="filter"></slot> - </div> - <div class="button-container" v-if="showButton"> - <slot name="button"></slot> - </div> - <div class="content-container"> - <slot name="content"></slot> - </div> - </main> - </div> -</template> - -<script> -export default { - name: "LayoutCard", - props: { - type: { - type: String - }, - showTitle: { - type: Boolean, - default: true - }, - showFilter: { - type: Boolean, - default: true - }, - showButton: { - type: Boolean, - default: true - } - } -}; -</script> - -<style scoped> -.container { - width: 100%; - border-radius: 4px; - border: 1px solid #e6ebf5; - background-color: #fff; - overflow: hidden; - color: #303133; - transition: 0.3s; - box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); - padding: 20px; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; -} -.clearfix:after { - clear: both; -} -.primary { - border-top: 3px solid #409eff; -} -.success { - border-top: 3px solid #67c23a; -} -.warning { - border-top: 3px solid #e6a23c; -} -.danger { - border-top: 3px solid #f56c6c; -} -.info { - border-top: 3px solid #909399; -} -.title-container { - padding-bottom: 20px; - margin-bottom: 20px; - border-bottom: 1px solid #dcdfe6; -} -.filter-container { - padding-bottom: 20px; - margin-bottom: 20px; - border-bottom: 1px solid #dcdfe6; -} -.button-container { - padding-bottom: 20px; -} -.content-container { - padding-bottom: 10px; -} -</style> diff --git a/WebSite/src/components/MDinput/index.vue b/WebSite/src/components/MDinput/index.vue deleted file mode 100644 index 822d19a..0000000 --- a/WebSite/src/components/MDinput/index.vue +++ /dev/null @@ -1,364 +0,0 @@ -<template> - <div :class="computedClasses" class="material-input__component"> - <div :class="{ iconClass: icon }"> - <i - v-if="icon" - :class="['el-icon-' + icon]" - class="el-input__icon material-input__icon" - /> - <input - v-if="type === 'email'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :required="required" - type="email" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'url'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :required="required" - type="url" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'number'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :step="step" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :max="max" - :min="min" - :minlength="minlength" - :maxlength="maxlength" - :required="required" - type="number" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'password'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :max="max" - :min="min" - :required="required" - type="password" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'tel'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :required="required" - type="tel" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <input - v-if="type === 'text'" - v-model="currentValue" - :name="name" - :placeholder="fillPlaceHolder" - :readonly="readonly" - :disabled="disabled" - :autocomplete="autoComplete" - :minlength="minlength" - :maxlength="maxlength" - :required="required" - type="text" - class="material-input" - @focus="handleMdFocus" - @blur="handleMdBlur" - @input="handleModelInput" - /> - <span class="material-input-bar" /> - <label class="material-label"> - <slot /> - </label> - </div> - </div> -</template> - -<script> -// source:https://github.com/wemake-services/vue-material-input/blob/master/src/components/MaterialInput.vue - -export default { - name: "MdInput", - props: { - /* eslint-disable */ - icon: String, - name: String, - type: { - type: String, - default: 'text' - }, - value: [String, Number], - placeholder: String, - readonly: Boolean, - disabled: Boolean, - min: String, - max: String, - step: String, - minlength: Number, - maxlength: Number, - required: { - type: Boolean, - default: true - }, - autoComplete: { - type: String, - default: 'off' - }, - validateEvent: { - type: Boolean, - default: true - } - }, - data() { - return { - currentValue: this.value, - focus: false, - fillPlaceHolder: null - } - }, - computed: { - computedClasses() { - return { - 'material--active': this.focus, - 'material--disabled': this.disabled, - 'material--raised': Boolean(this.focus || this.currentValue) // has value - } - } - }, - watch: { - value(newValue) { - this.currentValue = newValue - } - }, - methods: { - handleModelInput(event) { - const value = event.target.value - this.$emit('input', value) - if (this.$parent.$options.componentName === 'ElFormItem') { - if (this.validateEvent) { - this.$parent.$emit('el.form.change', [value]) - } - } - this.$emit('change', value) - }, - handleMdFocus(event) { - this.focus = true - this.$emit('focus', event) - if (this.placeholder && this.placeholder !== '') { - this.fillPlaceHolder = this.placeholder - } - }, - handleMdBlur(event) { - this.focus = false - this.$emit('blur', event) - this.fillPlaceHolder = null - if (this.$parent.$options.componentName === 'ElFormItem') { - if (this.validateEvent) { - this.$parent.$emit('el.form.blur', [this.currentValue]) - } - } - } - } -} -</script> - -<style lang="scss" scoped> - // Fonts: - $font-size-base: 16px; - $font-size-small: 18px; - $font-size-smallest: 12px; - $font-weight-normal: normal; - $font-weight-bold: bold; - $apixel: 1px; - // Utils - $spacer: 12px; - $transition: 0.2s ease all; - $index: 0px; - $index-has-icon: 30px; - // Theme: - $color-white: white; - $color-grey: #9E9E9E; - $color-grey-light: #E0E0E0; - $color-blue: #2196F3; - $color-red: #F44336; - $color-black: black; - // Base clases: - %base-bar-pseudo { - content: ''; - height: 1px; - width: 0; - bottom: 0; - position: absolute; - transition: $transition; - } - - // Mixins: - @mixin slided-top() { - top: - ($font-size-base + $spacer); - left: 0; - font-size: $font-size-base; - font-weight: $font-weight-bold; - } - - // Component: - .material-input__component { - margin-top: 36px; - position: relative; - * { - box-sizing: border-box; - } - .iconClass { - .material-input__icon { - position: absolute; - left: 0; - line-height: $font-size-base; - color: $color-blue; - top: $spacer; - width: $index-has-icon; - height: $font-size-base; - font-size: $font-size-base; - font-weight: $font-weight-normal; - pointer-events: none; - } - .material-label { - left: $index-has-icon; - } - .material-input { - text-indent: $index-has-icon; - } - } - .material-input { - font-size: $font-size-base; - padding: $spacer $spacer $spacer - $apixel * 10 $spacer / 2; - display: block; - width: 100%; - border: none; - line-height: 1; - border-radius: 0; - &:focus { - outline: none; - border: none; - border-bottom: 1px solid transparent; // fixes the height issue - } - } - .material-label { - font-weight: $font-weight-normal; - position: absolute; - pointer-events: none; - left: $index; - top: 0; - transition: $transition; - font-size: $font-size-small; - } - .material-input-bar { - position: relative; - display: block; - width: 100%; - &:before { - @extend %base-bar-pseudo; - left: 50%; - } - &:after { - @extend %base-bar-pseudo; - right: 50%; - } - } - // Disabled state: - &.material--disabled { - .material-input { - border-bottom-style: dashed; - } - } - // Raised state: - &.material--raised { - .material-label { - @include slided-top(); - } - } - // Active state: - &.material--active { - .material-input-bar { - &:before, - &:after { - width: 50%; - } - } - } - } - - .material-input__component { - background: $color-white; - .material-input { - background: none; - color: $color-black; - text-indent: $index; - border-bottom: 1px solid $color-grey-light; - } - .material-label { - color: $color-grey; - } - .material-input-bar { - &:before, - &:after { - background: $color-blue; - } - } - // Active state: - &.material--active { - .material-label { - color: $color-blue; - } - } - // Errors: - &.material--has-errors { - &.material--active .material-label { - color: $color-red; - } - .material-input-bar { - &:before, - &:after { - background: transparent; - } - } - } - } -</style> diff --git a/WebSite/src/components/MarkdownEditor/default-options.js b/WebSite/src/components/MarkdownEditor/default-options.js deleted file mode 100644 index e1da02d..0000000 --- a/WebSite/src/components/MarkdownEditor/default-options.js +++ /dev/null @@ -1,31 +0,0 @@ -// doc: https://nhnent.github.io/tui.editor/api/latest/ToastUIEditor.html#ToastUIEditor -export default { - minHeight: "200px", - previewStyle: "vertical", - useCommandShortcut: true, - useDefaultHTMLSanitizer: true, - usageStatistics: false, - hideModeSwitch: false, - toolbarItems: [ - "heading", - "bold", - "italic", - "strike", - "divider", - "hr", - "quote", - "divider", - "ul", - "ol", - "task", - "indent", - "outdent", - "divider", - "table", - "image", - "link", - "divider", - "code", - "codeblock" - ] -}; diff --git a/WebSite/src/components/MarkdownEditor/index.vue b/WebSite/src/components/MarkdownEditor/index.vue deleted file mode 100644 index 7343da7..0000000 --- a/WebSite/src/components/MarkdownEditor/index.vue +++ /dev/null @@ -1,122 +0,0 @@ -<template> - <div :id="id" /> -</template> - -<script> -// deps for editor -import "codemirror/lib/codemirror.css"; // codemirror -import "tui-editor/dist/tui-editor.css"; // editor ui -import "tui-editor/dist/tui-editor-contents.css"; // editor content - -import Editor from "tui-editor"; -import defaultOptions from "./default-options"; - -export default { - name: "MarkdownEditor", - props: { - value: { - type: String, - default: "" - }, - id: { - type: String, - required: false, - default() { - return ( - "markdown-editor-" + - +new Date() + - ((Math.random() * 1000).toFixed(0) + "") - ); - } - }, - options: { - type: Object, - default() { - return defaultOptions; - } - }, - mode: { - type: String, - default: "markdown" - }, - height: { - type: String, - required: false, - default: "300px" - }, - language: { - type: String, - required: false, - default: "en_US" // https://github.com/nhnent/tui.editor/tree/master/src/js/langs - } - }, - data() { - return { - editor: null - }; - }, - computed: { - editorOptions() { - const options = Object.assign({}, defaultOptions, this.options); - options.initialEditType = this.mode; - options.height = this.height; - options.language = this.language; - return options; - } - }, - watch: { - value(newValue, preValue) { - if (newValue !== preValue && newValue !== this.editor.getValue()) { - this.editor.setValue(newValue); - } - }, - language(val) { - this.destroyEditor(); - this.initEditor(); - }, - height(newValue) { - this.editor.height(newValue); - }, - mode(newValue) { - this.editor.changeMode(newValue); - } - }, - mounted() { - this.initEditor(); - }, - destroyed() { - this.destroyEditor(); - }, - methods: { - initEditor() { - this.editor = new Editor({ - el: document.getElementById(this.id), - ...this.editorOptions - }); - if (this.value) { - this.editor.setValue(this.value); - } - this.editor.on("change", () => { - this.$emit("input", this.editor.getValue()); - }); - }, - destroyEditor() { - if (!this.editor) return; - this.editor.off("change"); - this.editor.remove(); - }, - setValue(value) { - this.editor.setValue(value); - }, - getValue() { - return this.editor.getValue(); - }, - setHtml(value) { - this.editor.setHtml(value); - }, - getHtml() { - return this.editor.getHtml(); - } - } -}; -</script> diff --git a/WebSite/src/components/ModifyPassword/index.vue b/WebSite/src/components/ModifyPassword/index.vue deleted file mode 100644 index 9357e15..0000000 --- a/WebSite/src/components/ModifyPassword/index.vue +++ /dev/null @@ -1,132 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-07 13:04:03 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-08 10:28:36 ---> - -<template> - <el-dialog - :loading="loading" - :before-close="handleCloseDialog" - :close-on-click-modal="false" - width="30%" - :title="`${isInitial ? '首次登录请先' : ''}修改密ç `" - :visible.sync="visible" - > - <el-form - ref="dataForm" - :model="data" - label-position="top" - size="large" - :rules="rules" - > - <el-form-item label="旧密ç " style="width: 100%;" prop="oldPassword"> - <el-input - show-password - placeholder="请输入旧密ç " - v-model="data.oldPassword" - autocomplete="new-password" - ></el-input> - </el-form-item> - <el-form-item label="新密ç " style="width: 100%;" prop="password"> - <el-input - show-password - placeholder="请输入新密ç " - v-model="data.password" - autocomplete="new-password" - ></el-input> - </el-form-item> - <el-form-item label="确认密ç " style="width: 100%;" prop="passwordAgain"> - <el-input - show-password - placeholder="è¯·è¾“å†æ¬¡å…¥æ–°å¯†ç " - v-model="data.passwordAgain" - autocomplete="new-password" - ></el-input> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button @click="handleCloseDialog()"> - å–æ¶ˆ - </el-button> - <el-button type="primary" @click="handleComfirm"> - 确认 - </el-button> - </div> - </el-dialog> -</template> - -<script> -export default { - name: "ModifyPassword", - props: { - visible: { - type: Boolean, - default: false - }, - isInitial: { - type: Boolean, - default: false - } - }, - watch: { - visible(val) { - if (val) { - this.$refs["dataForm"] && this.$refs["dataForm"].resetFields(); - this.data.id = this.$store.getters.accountId; - } - } - }, - data() { - const validPasswordAgain = (rule, value, callback) => { - if (!value) { - callback(new Error("è¯·å†æ¬¡è¾“入新密ç ")); - } else { - if (this.data.password !== this.data.passwordAgain) { - callback(new Error("新密ç 两次输入必须一致")); - } - callback(); - } - }; - return { - loading: false, - data: { - id: "", - oldPassword: "", - password: "", - passwordAgain: "" - }, - rules: { - oldPassword: [ - { required: true, message: "请输入旧密ç ", trigger: "blur" } - ], - password: [ - { required: true, message: "请输入新密ç ", trigger: "blur" } - ], - passwordAgain: [ - { required: true, validator: validPasswordAgain, trigger: "blur" } - ] - } - }; - }, - methods: { - handleComfirm() { - this.$refs["dataForm"].validate(async valid => { - if (valid) { - try { - await this.$service.Account.modifyPassword(this.data); - this.$message.success("ä¿®æ”¹å¯†ç æˆåŠŸ"); - this.$emit("update:visible", false); - this.$emit("handle-confirm"); - } catch (_) {} - } - }); - }, - handleCloseDialog() { - this.$emit("update:visible", false); - } - } -}; -</script> diff --git a/WebSite/src/components/OrganizationSelectTree/index.vue b/WebSite/src/components/OrganizationSelectTree/index.vue deleted file mode 100644 index 947daf8..0000000 --- a/WebSite/src/components/OrganizationSelectTree/index.vue +++ /dev/null @@ -1,55 +0,0 @@ -<!-- - @Descripttion: - @Author: gong qun - @Date: 2020-06-18 10:25:12 - @LastEditors: gong qun - @LastEditTime: 2020-06-18 10:25:12 ---> -<template> - <SelectTree - ref="selectTree" - :options="options" - placeholder="请选择部门" - @change="change" - :props="props" - ></SelectTree> -</template> - -<script> -import SelectTree from "@/components/SelectTree"; -export default { - components: { - SelectTree - }, - name: "organization-select-tree", - data() { - return { - options: [], - props: { - value: "id", - label: "fullName", - children: "children" - } - }; - }, - mounted() { - let deptTree = sessionStorage.getItem("deptTree"); - if (deptTree) { - this.options = JSON.parse(deptTree); - return; - } - this.$service.Organization.getTreeList().then(res => { - this.options = res.data; - sessionStorage.setItem("deptTree", JSON.stringify(this.options)); - }); - }, - methods: { - change(value) { - this.$emit("change", value); - }, - clearSelect() { - this.$refs.selectTree.clearSelect(); - } - } -}; -</script> diff --git a/WebSite/src/components/Pagination/index.vue b/WebSite/src/components/Pagination/index.vue index 99c6f1f..d50ac2e 100644 --- a/WebSite/src/components/Pagination/index.vue +++ b/WebSite/src/components/Pagination/index.vue @@ -2,8 +2,8 @@ <div :class="{ hidden: hidden }" class="pagination-container"> <el-pagination :background="background" - :current-page.sync="currentPage" - :page-size.sync="pageSize" + v-model:current-page="currentPage" + v-model:page-size="pageSize" :layout="layout" :page-sizes="pageSizes" :total="total" @@ -15,10 +15,10 @@ </template> <script> -import { scrollTo } from "@/utils/scroll-to"; +import { scrollTo } from '@/utils/scroll-to'; export default { - name: "Pagination", + name: 'Pagination', props: { total: { required: true, @@ -30,17 +30,17 @@ export default { }, limit: { type: Number, - default: 20 + default: 5 }, pageSizes: { type: Array, default() { - return [10, 20, 30, 50]; + return [10, 20, 50, 100,200,500]; } }, layout: { type: String, - default: "total, sizes, prev, pager, next, jumper" + default: 'total, sizes, prev, pager, next, jumper' }, background: { type: Boolean, @@ -61,7 +61,7 @@ export default { return this.page; }, set(val) { - this.$emit("update:page", val); + this.$emit('update:page', val); } }, pageSize: { @@ -69,19 +69,19 @@ export default { return this.limit; }, set(val) { - this.$emit("update:limit", val); + this.$emit('update:limit', val); } } }, methods: { handleSizeChange(val) { - this.$emit("pagination", { page: this.currentPage, limit: val }); + this.$emit('pagination', { page: this.currentPage, limit: val }); if (this.autoScroll) { scrollTo(0, 800); } }, handleCurrentChange(val) { - this.$emit("pagination", { page: val, limit: this.pageSize }); + this.$emit('pagination', { page: val, limit: this.pageSize }); if (this.autoScroll) { scrollTo(0, 800); } diff --git a/WebSite/src/components/PanThumb/index.vue b/WebSite/src/components/PanThumb/index.vue deleted file mode 100644 index fc945ba..0000000 --- a/WebSite/src/components/PanThumb/index.vue +++ /dev/null @@ -1,146 +0,0 @@ -<template> - <div - :style="{ zIndex: zIndex, height: height, width: width }" - class="pan-item" - > - <div class="pan-info"> - <div class="pan-info-roles-container"> - <slot /> - </div> - </div> - <!-- eslint-disable-next-line --> - <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div> - </div> -</template> - -<script> -export default { - name: "PanThumb", - props: { - image: { - type: String, - required: true - }, - zIndex: { - type: Number, - default: 1 - }, - width: { - type: String, - default: "150px" - }, - height: { - type: String, - default: "150px" - } - } -}; -</script> - -<style scoped> -.pan-item { - width: 200px; - height: 200px; - border-radius: 50%; - display: inline-block; - position: relative; - cursor: default; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); -} - -.pan-info-roles-container { - padding: 20px; - text-align: center; -} - -.pan-thumb { - width: 100%; - height: 100%; - background-position: center center; - background-size: cover; - border-radius: 50%; - overflow: hidden; - position: absolute; - transform-origin: 95% 40%; - transition: all 0.3s ease-in-out; -} - -/* .pan-thumb:after { - content: ''; - width: 8px; - height: 8px; - position: absolute; - border-radius: 50%; - top: 40%; - left: 95%; - margin: -4px 0 0 -4px; - background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%); - box-shadow: 0 0 1px rgba(255, 255, 255, 0.9); -} */ - -.pan-info { - position: absolute; - width: inherit; - height: inherit; - border-radius: 50%; - overflow: hidden; - box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05); -} - -.pan-info h3 { - color: #fff; - text-transform: uppercase; - position: relative; - letter-spacing: 2px; - font-size: 18px; - margin: 0 60px; - padding: 22px 0 0 0; - height: 85px; - font-family: "Open Sans", Arial, sans-serif; - text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3); -} - -.pan-info p { - color: #fff; - padding: 10px 5px; - font-style: italic; - margin: 0 30px; - font-size: 12px; - border-top: 1px solid rgba(255, 255, 255, 0.5); -} - -.pan-info p a { - display: block; - color: #333; - width: 80px; - height: 80px; - background: rgba(255, 255, 255, 0.3); - border-radius: 50%; - color: #fff; - font-style: normal; - font-weight: 700; - text-transform: uppercase; - font-size: 9px; - letter-spacing: 1px; - padding-top: 24px; - margin: 7px auto 0; - font-family: "Open Sans", Arial, sans-serif; - opacity: 0; - transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s, - background 0.2s linear 0s; - transform: translateX(60px) rotate(90deg); -} - -.pan-info p a:hover { - background: rgba(255, 255, 255, 0.5); -} - -.pan-item:hover .pan-thumb { - transform: rotate(-110deg); -} - -.pan-item:hover .pan-info p a { - opacity: 1; - transform: translateX(0px) rotate(0deg); -} -</style> diff --git a/WebSite/src/components/RightPanel/index.vue b/WebSite/src/components/RightPanel/index.vue deleted file mode 100644 index 3e9fb03..0000000 --- a/WebSite/src/components/RightPanel/index.vue +++ /dev/null @@ -1,149 +0,0 @@ -<template> - <div ref="rightPanel" :class="{ show: show }" class="rightPanel-container"> - <div class="rightPanel-background" /> - <div class="rightPanel"> - <div - class="handle-button" - :style="{ top: buttonTop + 'px', 'background-color': theme }" - @click="show = !show" - > - <i :class="show ? 'el-icon-close' : 'el-icon-setting'" /> - </div> - <div class="rightPanel-items"> - <slot /> - </div> - </div> - </div> -</template> - -<script> -import { addClass, removeClass } from "@/utils"; - -export default { - name: "RightPanel", - props: { - clickNotClose: { - default: false, - type: Boolean - }, - buttonTop: { - default: 250, - type: Number - } - }, - data() { - return { - show: false - }; - }, - computed: { - theme() { - return this.$store.state.settings.theme; - } - }, - watch: { - show(value) { - if (value && !this.clickNotClose) { - this.addEventClick(); - } - if (value) { - addClass(document.body, "showRightPanel"); - } else { - removeClass(document.body, "showRightPanel"); - } - } - }, - mounted() { - this.insertToBody(); - }, - beforeDestroy() { - const elx = this.$refs.rightPanel; - elx.remove(); - }, - methods: { - addEventClick() { - window.addEventListener("click", this.closeSidebar); - }, - closeSidebar(evt) { - const parent = evt.target.closest(".rightPanel"); - if (!parent) { - this.show = false; - window.removeEventListener("click", this.closeSidebar); - } - }, - insertToBody() { - const elx = this.$refs.rightPanel; - const body = document.querySelector("body"); - body.insertBefore(elx, body.firstChild); - } - } -}; -</script> - -<style> -.showRightPanel { - overflow: hidden; - position: relative; - width: calc(100% - 15px); -} -</style> - -<style lang="scss" scoped> -.rightPanel-background { - position: fixed; - top: 0; - left: 0; - opacity: 0; - transition: opacity 0.3s cubic-bezier(0.7, 0.3, 0.1, 1); - background: rgba(0, 0, 0, 0.2); - z-index: -1; -} - -.rightPanel { - width: 100%; - max-width: 260px; - height: 100vh; - position: fixed; - top: 0; - right: 0; - box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.05); - transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1); - transform: translate(100%); - background: #fff; - z-index: 40000; -} - -.show { - transition: all 0.3s cubic-bezier(0.7, 0.3, 0.1, 1); - - .rightPanel-background { - z-index: 20000; - opacity: 1; - width: 100%; - height: 100%; - } - - .rightPanel { - transform: translate(0); - } -} - -.handle-button { - width: 48px; - height: 48px; - position: absolute; - left: -48px; - text-align: center; - font-size: 24px; - border-radius: 6px 0 0 6px !important; - z-index: 0; - pointer-events: auto; - cursor: pointer; - color: #fff; - line-height: 48px; - i { - font-size: 24px; - line-height: 48px; - } -} -</style> diff --git a/WebSite/src/components/Screenfull/index.vue b/WebSite/src/components/Screenfull/index.vue deleted file mode 100644 index 69e328b..0000000 --- a/WebSite/src/components/Screenfull/index.vue +++ /dev/null @@ -1,63 +0,0 @@ -<template> - <div> - <svg-icon - :icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'" - @click="click" - /> - </div> -</template> - -<script> -import screenfull from "screenfull"; - -export default { - name: "Screenfull", - data() { - return { - isFullscreen: false - }; - }, - mounted() { - this.init(); - }, - beforeDestroy() { - this.destroy(); - }, - methods: { - click() { - if (!screenfull.enabled) { - this.$message({ - message: "you browser can not work", - type: "warning" - }); - return false; - } - screenfull.toggle(); - }, - change() { - this.isFullscreen = screenfull.isFullscreen; - }, - init() { - if (screenfull.enabled) { - screenfull.on("change", this.change); - } - }, - destroy() { - if (screenfull.enabled) { - screenfull.off("change", this.change); - } - } - } -}; -</script> - -<style scoped> -.screenfull-svg { - display: inline-block; - cursor: pointer; - fill: #5a5e66; - width: 20px; - height: 20px; - vertical-align: 10px; -} -</style> diff --git a/WebSite/src/components/SelectTree/index.vue b/WebSite/src/components/SelectTree/index.vue deleted file mode 100644 index 28637e0..0000000 --- a/WebSite/src/components/SelectTree/index.vue +++ /dev/null @@ -1,201 +0,0 @@ -<!-- - @Descripttion: - @Author: gong qun - @Date: 2020-06-18 10:25:12 - @LastEditors: gong qun - @LastEditTime: 2020-06-18 10:25:12 ---> -<template> - <el-select - :value="valueTitle" - :clearable="clearable" - @clear="clearSelect" - :placeholder="placeholder" - ref="select" - :filterable="filterable" - :filter-method="filterMethod" - style="width:100%" - > - <el-option :value="valueTitle" :label="valueTitle"> - <el-tree - id="tree-option" - ref="selectTree" - :data="options" - :props="props" - :node-key="props.value" - :default-expanded-keys="defaultExpandedKey" - :default-expand-all="true" - @node-click="handleNodeClick" - :filter-node-method="filterNode" - :expand-on-click-node="false" - > - </el-tree> - </el-option> - </el-select> -</template> - -<script> -export default { - name: "select-tree", - props: { - /* é…置项 */ - props: { - type: Object, - default: () => { - return { - value: "id", // IDå—æ®µå - label: "name", // 显示åç§° - children: "children" // åçº§å—æ®µå - }; - } - }, - /* é€‰é¡¹åˆ—è¡¨ï¼ˆæ ‘ï¼‰ */ - options: { - type: Array, - default: () => { - return []; - } - }, - /* åˆå§‹å€¼ */ - value: { - type: String, - default: () => { - return null; - } - }, - /* 坿¸…空选项 */ - clearable: { - type: Boolean, - default: () => { - return true; - } - }, - /* 选ä¸åŽéšè—下拉框 */ - autoHide: { - type: Boolean, - default: () => { - return true; - } - }, - /* 是å¦å¯æœç´¢ */ - filterable: { - type: Boolean, - default: () => { - return true; - } - }, - /* æç¤ºæ–‡å— */ - placeholder: { - type: String, - default: () => { - return "请选择"; - } - } - }, - data() { - return { - valueId: this.value, // åˆå§‹å€¼ - valueTitle: "", - defaultExpandedKey: [] - }; - }, - mounted() { - this.initHandle(); - }, - methods: { - // åˆå§‹åŒ–值 - initHandle() { - if (this.valueId) { - this.valueTitle = this.$refs.selectTree.getNode(this.valueId).data[ - this.props.label - ]; // åˆå§‹åŒ–显示 - this.$refs.selectTree.setCurrentKey(this.valueId); // è®¾ç½®é»˜è®¤é€‰ä¸ - this.defaultExpandedKey = [this.valueId]; // 设置默认展开 - } - this.$nextTick(() => { - let scrollWrap = document.querySelectorAll( - ".el-scrollbar .el-select-dropdown__wrap" - )[0]; - let scrollBar = document.querySelectorAll( - ".el-scrollbar .el-scrollbar__bar" - ); - scrollWrap.style.cssText = - "margin: 0px; max-height: none; overflow: hidden;"; - scrollBar.forEach(ele => (ele.style.width = 0)); - }); - }, - // 切æ¢é€‰é¡¹ - handleNodeClick(node) { - this.valueTitle = node[this.props.label]; - this.valueId = node[this.props.value]; - this.$emit("change", this.valueId); - this.defaultExpandedKey = []; - if (this.autoHide) { - this.$refs.select.blur(); - } - this.filterMethod(null); - }, - // æ¸…é™¤é€‰ä¸ - clearSelect() { - this.valueTitle = ""; - this.valueId = null; - this.defaultExpandedKey = []; - this.clearSelected(); - this.$emit("change", null); - this.filterMethod(null); - }, - /* æ¸…ç©ºé€‰ä¸æ ·å¼ */ - clearSelected() { - let allNode = document.querySelectorAll("#tree-option .el-tree-node"); - allNode.forEach(element => element.classList.remove("is-current")); - }, - /* ç›é€‰èŠ‚ç‚¹ */ - filterMethod(val) { - this.$refs.selectTree.filter(val); - }, - filterNode(value, data) { - if (!value) return true; - return ( - data[this.props.label].toLowerCase().indexOf(value.toLowerCase()) !== -1 - ); - } - }, - watch: { - value() { - this.valueId = this.value; - this.initHandle(); - } - } -}; -</script> - -<style scoped> -.el-scrollbar .el-scrollbar__view .el-select-dropdown__item { - height: auto; - max-height: 274px; - padding: 0; - overflow: hidden; - overflow-y: auto; -} -.el-select-dropdown__item.selected { - font-weight: normal; -} -ul li >>> .el-tree .el-tree-node__content { - height: auto; - padding: 0 20px; -} -.el-tree-node__label { - font-weight: normal; -} -.el-tree >>> .is-current .el-tree-node__label { - color: #409eff; - font-weight: 700; -} -.el-tree >>> .is-current .el-tree-node__children .el-tree-node__label { - color: #606266; - font-weight: normal; -} -.el-select-dropdown__list { - padding: 0px; -} -</style> diff --git a/WebSite/src/components/SelectUser/index.vue b/WebSite/src/components/SelectUser/index.vue deleted file mode 100644 index b909e8d..0000000 --- a/WebSite/src/components/SelectUser/index.vue +++ /dev/null @@ -1,97 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-11 13:21:28 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:33:39 ---> -<template> - <el-dialog - :visible.sync="visible" - width="30%" - :show-close="false" - :close-on-click-modal="false" - > - <span slot="title"> - <i class="el-icon-user"> 选择用户</i> - </span> - <el-row :gutter="20"> - <el-col - v-for="item in userList" - :key="item.id" - :item="item" - :sm="24" - :md="12" - :lg="8" - > - <div @click="handleSelectUser(item.id)"> - <el-card - :class="{ - 'box-card': true, - 'box-card-selected': selectedUserId === item.id - }" - :shadow="selectedUserId === item.id ? 'always' : 'hover'" - > - <el-radio v-model="selectedUserId" :label="item.id"> - {{ `${item.name}` }} - </el-radio> - </el-card> - </div> - </el-col> - </el-row> - <span slot="footer" class="dialog-footer tright"> - <el-button type="primary" @click="handleConfirm">确定</el-button> - </span> - </el-dialog> -</template> - -<script> -export default { - name: "SelectUser", - props: { - visible: { - type: Boolean, - default: false - }, - userList: { - type: Array, - default: () => [] - } - }, - data() { - return { - selectedUserId: "" - }; - }, - watch: { - visible(val) { - if (val) { - this.selectedUserId = this.userList[0].id; - } - } - }, - methods: { - handleSelectUser(id) { - this.selectedUserId = id; - }, - handleConfirm() { - this.$emit("handle-confirm", this.selectedUserId); - this.$emit("update:visible", false); - } - } -}; -</script> - -<style scoped> -.el-col { - margin-bottom: 10px; -} -.box-card { - cursor: pointer; - border-color: #dcdfe6; -} -.box-card-selected { - background: rgb(236, 245, 255); - border-color: rgb(102, 177, 255); -} -</style> diff --git a/WebSite/src/components/Share/DropdownMenu.vue b/WebSite/src/components/Share/DropdownMenu.vue deleted file mode 100644 index 20214e6..0000000 --- a/WebSite/src/components/Share/DropdownMenu.vue +++ /dev/null @@ -1,111 +0,0 @@ -<template> - <div :class="{ active: isActive }" class="share-dropdown-menu"> - <div class="share-dropdown-menu-wrapper"> - <span class="share-dropdown-menu-title" @click.self="clickTitle">{{ - title - }}</span> - <div - v-for="(item, index) of items" - :key="index" - class="share-dropdown-menu-item" - > - <a v-if="item.href" :href="item.href" target="_blank">{{ - item.title - }}</a> - <span v-else>{{ item.title }}</span> - </div> - </div> - </div> -</template> - -<script> -export default { - props: { - items: { - type: Array, - default: function() { - return []; - } - }, - title: { - type: String, - default: "vue" - } - }, - data() { - return { - isActive: false - }; - }, - methods: { - clickTitle() { - this.isActive = !this.isActive; - } - } -}; -</script> - -<style lang="scss"> -$n: 9; //å’Œitems.length ç›¸åŒ -$t: 0.1s; -.share-dropdown-menu { - width: 250px; - position: relative; - z-index: 1; - height: auto !important; - &-title { - width: 100%; - display: block; - cursor: pointer; - background: black; - color: white; - height: 60px; - line-height: 60px; - font-size: 20px; - text-align: center; - z-index: 2; - transform: translate3d(0, 0, 0); - } - &-wrapper { - position: relative; - } - &-item { - text-align: center; - position: absolute; - width: 100%; - background: #e0e0e0; - color: #000; - line-height: 60px; - height: 60px; - cursor: pointer; - font-size: 18px; - overflow: hidden; - opacity: 1; - transition: transform 0.28s ease; - &:hover { - background: black; - color: white; - } - @for $i from 1 through $n { - &:nth-of-type(#{$i}) { - z-index: -1; - transition-delay: $i * $t; - transform: translate3d(0, -60px, 0); - } - } - } - &.active { - .share-dropdown-menu-wrapper { - z-index: 1; - } - .share-dropdown-menu-item { - @for $i from 1 through $n { - &:nth-of-type(#{$i}) { - transition-delay: ($n - $i) * $t; - transform: translate3d(0, ($i - 1) * 60px, 0); - } - } - } - } -} -</style> diff --git a/WebSite/src/components/SizeSelect/index.vue b/WebSite/src/components/SizeSelect/index.vue deleted file mode 100644 index d4aa5ba..0000000 --- a/WebSite/src/components/SizeSelect/index.vue +++ /dev/null @@ -1,60 +0,0 @@ -<template> - <el-dropdown trigger="click" @command="handleSetSize"> - <div> - <svg-icon class-name="size-icon" icon-class="size" /> - </div> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item - v-for="item of sizeOptions" - :key="item.value" - :disabled="size === item.value" - :command="item.value" - > - {{ item.label }} - </el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> -</template> - -<script> -export default { - data() { - return { - sizeOptions: [ - { label: "Default", value: "default" }, - { label: "Medium", value: "medium" }, - { label: "Small", value: "small" }, - { label: "Mini", value: "mini" } - ] - }; - }, - computed: { - size() { - return this.$store.getters.size; - } - }, - methods: { - handleSetSize(size) { - this.$ELEMENT.size = size; - this.$store.dispatch("app/setSize", size); - this.refreshView(); - this.$message({ - message: "Switch Size Success", - type: "success" - }); - }, - refreshView() { - // In order to make the cached page re-rendered - this.$store.dispatch("tagsView/delAllCachedViews", this.$route); - - const { fullPath } = this.$route; - - this.$nextTick(() => { - this.$router.replace({ - path: "/redirect" + fullPath - }); - }); - } - } -}; -</script> diff --git a/WebSite/src/components/Sticky/index.vue b/WebSite/src/components/Sticky/index.vue deleted file mode 100644 index 332c613..0000000 --- a/WebSite/src/components/Sticky/index.vue +++ /dev/null @@ -1,97 +0,0 @@ -<template> - <div :style="{ height: height + 'px', zIndex: zIndex }"> - <div - :class="className" - :style="{ - top: isSticky ? stickyTop + 'px' : '', - zIndex: zIndex, - position: position, - width: width, - height: height + 'px' - }" - > - <slot> - <div>sticky</div> - </slot> - </div> - </div> -</template> - -<script> -export default { - name: "Sticky", - props: { - stickyTop: { - type: Number, - default: 0 - }, - zIndex: { - type: Number, - default: 1 - }, - className: { - type: String, - default: "" - } - }, - data() { - return { - active: false, - position: "", - width: undefined, - height: undefined, - isSticky: false - }; - }, - mounted() { - this.height = this.$el.getBoundingClientRect().height; - window.addEventListener("scroll", this.handleScroll); - window.addEventListener("resize", this.handleResize); - }, - activated() { - this.handleScroll(); - }, - destroyed() { - window.removeEventListener("scroll", this.handleScroll); - window.removeEventListener("resize", this.handleResize); - }, - methods: { - sticky() { - if (this.active) { - return; - } - this.position = "fixed"; - this.active = true; - this.width = this.width + "px"; - this.isSticky = true; - }, - handleReset() { - if (!this.active) { - return; - } - this.reset(); - }, - reset() { - this.position = ""; - this.width = "auto"; - this.active = false; - this.isSticky = false; - }, - handleScroll() { - const width = this.$el.getBoundingClientRect().width; - this.width = width || "auto"; - const offsetTop = this.$el.getBoundingClientRect().top; - if (offsetTop < this.stickyTop) { - this.sticky(); - return; - } - this.handleReset(); - }, - handleResize() { - if (this.isSticky) { - this.width = this.$el.getBoundingClientRect().width + "px"; - } - } - } -}; -</script> diff --git a/WebSite/src/components/SvgIcon/index.vue b/WebSite/src/components/SvgIcon/index.vue index 1f16cb8..909549e 100644 --- a/WebSite/src/components/SvgIcon/index.vue +++ b/WebSite/src/components/SvgIcon/index.vue @@ -1,21 +1,28 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 10:56:19 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-05 16:51:44 +--> <template> <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" - v-on="$listeners" + v-bind="$attrs" /> - <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> - <use :href="iconName" /> + <svg v-else :class="svgClass" aria-hidden="true" v-bind="$attrs"> + <use :xlink:href="iconName" /> </svg> </template> <script> // doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage -import { isExternal } from "@/utils/validate"; +import { isExternal } from '@/utils/validate'; export default { - name: "SvgIcon", + name: 'SvgIcon', props: { iconClass: { type: String, @@ -23,7 +30,7 @@ export default { }, className: { type: String, - default: "" + default: '' } }, computed: { @@ -35,15 +42,15 @@ export default { }, svgClass() { if (this.className) { - return "svg-icon " + this.className; + return 'svg-icon ' + this.className; } else { - return "svg-icon"; + return 'svg-icon'; } }, styleExternalIcon() { return { mask: `url(${this.iconClass}) no-repeat 50% 50%`, - "-webkit-mask": `url(${this.iconClass}) no-repeat 50% 50%` + '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%` }; } } diff --git a/WebSite/src/components/TextField/index.vue b/WebSite/src/components/TextField/index.vue deleted file mode 100644 index 4f1995a..0000000 --- a/WebSite/src/components/TextField/index.vue +++ /dev/null @@ -1,31 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-16 13:43:13 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 15:18:40 ---> -<template> - <div class="text-field"> - <slot></slot> - </div> -</template> -<script> -export default { - name: "TextField" -}; -</script> -<style scoped> -.text-field { - width: 100%; - border: 1px solid #ebeef5; - border-radius: 4px; - background-color: #fafafa; - padding: 20px; - font-size: 12px; -} - -.text-field span { - line-height: 24px; -} -</style> diff --git a/WebSite/src/components/TextHoverEffect/Mallki.vue b/WebSite/src/components/TextHoverEffect/Mallki.vue deleted file mode 100644 index 7a7efab..0000000 --- a/WebSite/src/components/TextHoverEffect/Mallki.vue +++ /dev/null @@ -1,113 +0,0 @@ -<template> - <a :class="className" class="link--mallki" href="#"> - {{ text }} - <span :data-letters="text" /> - <span :data-letters="text" /> - </a> -</template> - -<script> -export default { - props: { - className: { - type: String, - default: "" - }, - text: { - type: String, - default: "vue-element-admin" - } - } -}; -</script> - -<style> -/* Mallki */ - -.link--mallki { - font-weight: 800; - color: #4dd9d5; - font-family: "Dosis", sans-serif; - -webkit-transition: color 0.5s 0.25s; - transition: color 0.5s 0.25s; - overflow: hidden; - position: relative; - display: inline-block; - line-height: 1; - outline: none; - text-decoration: none; -} - -.link--mallki:hover { - -webkit-transition: none; - transition: none; - color: transparent; -} - -.link--mallki::before { - content: ""; - width: 100%; - height: 6px; - margin: -3px 0 0 0; - background: #3888fa; - position: absolute; - left: 0; - top: 50%; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-transition: -webkit-transform 0.4s; - transition: transform 0.4s; - -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); - transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); -} - -.link--mallki:hover::before { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); -} - -.link--mallki span { - position: absolute; - height: 50%; - width: 100%; - left: 0; - top: 0; - overflow: hidden; -} - -.link--mallki span::before { - content: attr(data-letters); - color: red; - position: absolute; - left: 0; - width: 100%; - color: #3888fa; - -webkit-transition: -webkit-transform 0.5s; - transition: transform 0.5s; -} - -.link--mallki span:nth-child(2) { - top: 50%; -} - -.link--mallki span:first-child::before { - top: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} - -.link--mallki span:nth-child(2)::before { - bottom: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} - -.link--mallki:hover span::before { - -webkit-transition-delay: 0.3s; - transition-delay: 0.3s; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); -} -</style> diff --git a/WebSite/src/components/ThemePicker/index.vue b/WebSite/src/components/ThemePicker/index.vue deleted file mode 100644 index 3fc0c26..0000000 --- a/WebSite/src/components/ThemePicker/index.vue +++ /dev/null @@ -1,198 +0,0 @@ -<template> - <el-color-picker - v-model="theme" - :predefine="[ - '#409EFF', - '#1890ff', - '#304156', - '#212121', - '#11a983', - '#13c2c2', - '#6959CD', - '#f5222d' - ]" - class="theme-picker" - popper-class="theme-picker-dropdown" - /> -</template> - -<script> -const version = require("element-ui/package.json").version; // element-ui version from node_modules -const ORIGINAL_THEME = "#409EFF"; // default color - -export default { - data() { - return { - chalk: "", // content of theme-chalk css - theme: "" - }; - }, - computed: { - defaultTheme() { - return this.$store.state.settings.theme; - } - }, - watch: { - defaultTheme: { - handler: function(val, oldVal) { - this.theme = val; - }, - immediate: true - }, - async theme(val) { - const oldVal = this.chalk ? this.theme : ORIGINAL_THEME; - if (typeof val !== "string") return; - const themeCluster = this.getThemeCluster(val.replace("#", "")); - const originalCluster = this.getThemeCluster(oldVal.replace("#", "")); - console.log(themeCluster, originalCluster); - - const $message = this.$message({ - message: " Compiling the theme", - customClass: "theme-message", - type: "success", - duration: 0, - iconClass: "el-icon-loading" - }); - - const getHandler = (variable, id) => { - return () => { - const originalCluster = this.getThemeCluster( - ORIGINAL_THEME.replace("#", "") - ); - const newStyle = this.updateStyle( - this[variable], - originalCluster, - themeCluster - ); - - let styleTag = document.getElementById(id); - if (!styleTag) { - styleTag = document.createElement("style"); - styleTag.setAttribute("id", id); - document.head.appendChild(styleTag); - } - styleTag.innerText = newStyle; - }; - }; - - if (!this.chalk) { - const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`; - await this.getCSSString(url, "chalk"); - } - - const chalkHandler = getHandler("chalk", "chalk-style"); - - chalkHandler(); - - const styles = [].slice - .call(document.querySelectorAll("style")) - .filter(style => { - const text = style.innerText; - return ( - new RegExp(oldVal, "i").test(text) && !/Chalk Variables/.test(text) - ); - }); - styles.forEach(style => { - const { innerText } = style; - if (typeof innerText !== "string") return; - style.innerText = this.updateStyle( - innerText, - originalCluster, - themeCluster - ); - }); - - this.$emit("change", val); - - $message.close(); - } - }, - - methods: { - updateStyle(style, oldCluster, newCluster) { - let newStyle = style; - oldCluster.forEach((color, index) => { - newStyle = newStyle.replace(new RegExp(color, "ig"), newCluster[index]); - }); - return newStyle; - }, - - getCSSString(url, variable) { - return new Promise(resolve => { - const xhr = new XMLHttpRequest(); - xhr.onreadystatechange = () => { - if (xhr.readyState === 4 && xhr.status === 200) { - this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, ""); - resolve(); - } - }; - xhr.open("GET", url); - xhr.send(); - }); - }, - - getThemeCluster(theme) { - const tintColor = (color, tint) => { - let red = parseInt(color.slice(0, 2), 16); - let green = parseInt(color.slice(2, 4), 16); - let blue = parseInt(color.slice(4, 6), 16); - - if (tint === 0) { - // when primary color is in its rgb space - return [red, green, blue].join(","); - } else { - red += Math.round(tint * (255 - red)); - green += Math.round(tint * (255 - green)); - blue += Math.round(tint * (255 - blue)); - - red = red.toString(16); - green = green.toString(16); - blue = blue.toString(16); - - return `#${red}${green}${blue}`; - } - }; - - const shadeColor = (color, shade) => { - let red = parseInt(color.slice(0, 2), 16); - let green = parseInt(color.slice(2, 4), 16); - let blue = parseInt(color.slice(4, 6), 16); - - red = Math.round((1 - shade) * red); - green = Math.round((1 - shade) * green); - blue = Math.round((1 - shade) * blue); - - red = red.toString(16); - green = green.toString(16); - blue = blue.toString(16); - - return `#${red}${green}${blue}`; - }; - - const clusters = [theme]; - for (let i = 0; i <= 9; i++) { - clusters.push(tintColor(theme, Number((i / 10).toFixed(2)))); - } - clusters.push(shadeColor(theme, 0.1)); - return clusters; - } - } -}; -</script> - -<style> -.theme-message, -.theme-picker-dropdown { - z-index: 99999 !important; -} - -.theme-picker .el-color-picker__trigger { - height: 26px !important; - width: 26px !important; - padding: 2px; -} - -.theme-picker-dropdown .el-color-dropdown__link-btn { - display: none; -} -</style> diff --git a/WebSite/src/components/Tinymce/components/EditorImage.vue b/WebSite/src/components/Tinymce/components/EditorImage.vue deleted file mode 100644 index 6cb6389..0000000 --- a/WebSite/src/components/Tinymce/components/EditorImage.vue +++ /dev/null @@ -1,126 +0,0 @@ -<template> - <div class="upload-container"> - <el-button - :style="{ background: color, borderColor: color }" - icon="el-icon-upload" - size="mini" - type="primary" - @click="dialogVisible = true" - > - upload - </el-button> - <el-dialog :visible.sync="dialogVisible"> - <el-upload - :multiple="true" - :file-list="fileList" - :show-file-list="true" - :on-remove="handleRemove" - :on-success="handleSuccess" - :before-upload="beforeUpload" - class="editor-slide-upload" - action="https://httpbin.org/post" - list-type="picture-card" - > - <el-button size="small" type="primary"> - Click upload - </el-button> - </el-upload> - <el-button @click="dialogVisible = false"> - Cancel - </el-button> - <el-button type="primary" @click="handleSubmit"> - Confirm - </el-button> - </el-dialog> - </div> -</template> - -<script> -// import { getToken } from 'api/qiniu' - -export default { - name: "EditorSlideUpload", - props: { - color: { - type: String, - default: "#1890ff" - } - }, - data() { - return { - dialogVisible: false, - listObj: {}, - fileList: [] - }; - }, - methods: { - checkAllSuccess() { - return Object.keys(this.listObj).every( - item => this.listObj[item].hasSuccess - ); - }, - handleSubmit() { - const arr = Object.keys(this.listObj).map(v => this.listObj[v]); - if (!this.checkAllSuccess()) { - this.$message( - "Please wait for all images to be uploaded successfully. If there is a network problem, please refresh the page and upload again!" - ); - return; - } - this.$emit("successCBK", arr); - this.listObj = {}; - this.fileList = []; - this.dialogVisible = false; - }, - handleSuccess(response, file) { - const uid = file.uid; - const objKeyArr = Object.keys(this.listObj); - for (let i = 0, len = objKeyArr.length; i < len; i++) { - if (this.listObj[objKeyArr[i]].uid === uid) { - this.listObj[objKeyArr[i]].url = response.files.file; - this.listObj[objKeyArr[i]].hasSuccess = true; - return; - } - } - }, - handleRemove(file) { - const uid = file.uid; - const objKeyArr = Object.keys(this.listObj); - for (let i = 0, len = objKeyArr.length; i < len; i++) { - if (this.listObj[objKeyArr[i]].uid === uid) { - delete this.listObj[objKeyArr[i]]; - return; - } - } - }, - beforeUpload(file) { - const _self = this; - const _URL = window.URL || window.webkitURL; - const fileName = file.uid; - this.listObj[fileName] = {}; - return new Promise((resolve, reject) => { - const img = new Image(); - img.src = _URL.createObjectURL(file); - img.onload = function() { - _self.listObj[fileName] = { - hasSuccess: false, - uid: file.uid, - width: this.width, - height: this.height - }; - }; - resolve(true); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -.editor-slide-upload { - margin-bottom: 20px; - /deep/ .el-upload--picture-card { - width: 100%; - } -} -</style> diff --git a/WebSite/src/components/Tinymce/dynamicLoadScript.js b/WebSite/src/components/Tinymce/dynamicLoadScript.js deleted file mode 100644 index 667657d..0000000 --- a/WebSite/src/components/Tinymce/dynamicLoadScript.js +++ /dev/null @@ -1,61 +0,0 @@ -let callbacks = []; - -function loadedTinymce() { - // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144 - // check is successfully downloaded script - return window.tinymce; -} - -const dynamicLoadScript = (src, callback) => { - const existingScript = document.getElementById(src); - const cb = callback || function() {}; - - if (!existingScript) { - const script = document.createElement("script"); - script.src = src; // src url for the third-party library being loaded. - script.id = src; - document.body.appendChild(script); - callbacks.push(cb); - const onEnd = "onload" in script ? stdOnEnd : ieOnEnd; - onEnd(script); - } - - if (existingScript && cb) { - if (loadedTinymce()) { - cb(null, existingScript); - } else { - callbacks.push(cb); - } - } - - function stdOnEnd(script) { - script.onload = function() { - // this.onload = null here is necessary - // because even IE9 works not like others - this.onerror = this.onload = null; - for (const cb of callbacks) { - cb(null, script); - } - callbacks = null; - }; - script.onerror = function() { - this.onerror = this.onload = null; - cb(new Error("Failed to load " + src), script); - }; - } - - function ieOnEnd(script) { - script.onreadystatechange = function() { - if (this.readyState !== "complete" && this.readyState !== "loaded") { - return; - } - this.onreadystatechange = null; - for (const cb of callbacks) { - cb(null, script); // there is no way to catch loading errors in IE8 - } - callbacks = null; - }; - } -}; - -export default dynamicLoadScript; diff --git a/WebSite/src/components/Tinymce/index.vue b/WebSite/src/components/Tinymce/index.vue deleted file mode 100644 index 628e057..0000000 --- a/WebSite/src/components/Tinymce/index.vue +++ /dev/null @@ -1,254 +0,0 @@ -<template> - <div - :class="{ fullscreen: fullscreen }" - class="tinymce-container" - :style="{ width: containerWidth }" - > - <textarea :id="tinymceId" class="tinymce-textarea" /> - <div class="editor-custom-btn-container"> - <editorImage - color="#1890ff" - class="editor-upload-btn" - @successCBK="imageSuccessCBK" - /> - </div> - </div> -</template> - -<script> -/** - * docs: - * https://panjiachen.github.io/vue-element-admin-site/feature/component/rich-editor.html#tinymce - */ -import editorImage from "./components/EditorImage"; -import plugins from "./plugins"; -import toolbar from "./toolbar"; -import load from "./dynamicLoadScript"; - -// why use this cdn, detail see https://github.com/PanJiaChen/tinymce-all-in-one -const tinymceCDN = - "https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js"; - -export default { - name: "Tinymce", - components: { editorImage }, - props: { - id: { - type: String, - default: function() { - return ( - "vue-tinymce-" + - +new Date() + - ((Math.random() * 1000).toFixed(0) + "") - ); - } - }, - value: { - type: String, - default: "" - }, - toolbar: { - type: Array, - required: false, - default() { - return []; - } - }, - menubar: { - type: String, - default: "file edit insert view format table" - }, - height: { - type: [Number, String], - required: false, - default: 360 - }, - width: { - type: [Number, String], - required: false, - default: "auto" - } - }, - data() { - return { - hasChange: false, - hasInit: false, - tinymceId: this.id, - fullscreen: false, - languageTypeList: { - en: "en", - zh: "zh_CN", - es: "es_MX", - ja: "ja" - } - }; - }, - computed: { - containerWidth() { - const width = this.width; - if (/^[\d]+(\.[\d]+)?$/.test(width)) { - // matches `100`, `'100'` - return `${width}px`; - } - return width; - } - }, - watch: { - value(val) { - if (!this.hasChange && this.hasInit) { - this.$nextTick(() => - window.tinymce.get(this.tinymceId).setContent(val || "") - ); - } - } - }, - mounted() { - this.init(); - }, - activated() { - if (window.tinymce) { - this.initTinymce(); - } - }, - deactivated() { - this.destroyTinymce(); - }, - destroyed() { - this.destroyTinymce(); - }, - methods: { - init() { - // dynamic load tinymce from cdn - load(tinymceCDN, err => { - if (err) { - this.$message.error(err.message); - return; - } - this.initTinymce(); - }); - }, - initTinymce() { - const _this = this; - window.tinymce.init({ - selector: `#${this.tinymceId}`, - language: this.languageTypeList["en"], - height: this.height, - body_class: "panel-body ", - object_resizing: false, - toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar, - menubar: this.menubar, - plugins: plugins, - end_container_on_empty_block: true, - powerpaste_word_import: "clean", - code_dialog_height: 450, - code_dialog_width: 1000, - advlist_bullet_styles: "square", - advlist_number_styles: "default", - imagetools_cors_hosts: ["www.tinymce.com", "codepen.io"], - default_link_target: "_blank", - link_title: false, - nonbreaking_force_tab: true, // inserting nonbreaking space need Nonbreaking Space Plugin - init_instance_callback: editor => { - if (_this.value) { - editor.setContent(_this.value); - } - _this.hasInit = true; - editor.on("NodeChange Change KeyUp SetContent", () => { - this.hasChange = true; - this.$emit("input", editor.getContent()); - }); - }, - setup(editor) { - editor.on("FullscreenStateChanged", e => { - _this.fullscreen = e.state; - }); - } - // æ•´åˆä¸ƒç‰›ä¸Šä¼ - // images_dataimg_filter(img) { - // setTimeout(() => { - // const $image = $(img); - // $image.removeAttr('width'); - // $image.removeAttr('height'); - // if ($image[0].height && $image[0].width) { - // $image.attr('data-wscntype', 'image'); - // $image.attr('data-wscnh', $image[0].height); - // $image.attr('data-wscnw', $image[0].width); - // $image.addClass('wscnph'); - // } - // }, 0); - // return img - // }, - // images_upload_handler(blobInfo, success, failure, progress) { - // progress(0); - // const token = _this.$store.getters.token; - // getToken(token).then(response => { - // const url = response.data.qiniu_url; - // const formData = new FormData(); - // formData.append('token', response.data.qiniu_token); - // formData.append('key', response.data.qiniu_key); - // formData.append('file', blobInfo.blob(), url); - // upload(formData).then(() => { - // success(url); - // progress(100); - // }) - // }).catch(err => { - // failure('出现未知问题,刷新页é¢ï¼Œæˆ–者è”系程åºå‘˜') - // console.log(err); - // }); - // }, - }); - }, - destroyTinymce() { - const tinymce = window.tinymce.get(this.tinymceId); - if (this.fullscreen) { - tinymce.execCommand("mceFullScreen"); - } - - if (tinymce) { - tinymce.destroy(); - } - }, - setContent(value) { - window.tinymce.get(this.tinymceId).setContent(value); - }, - getContent() { - window.tinymce.get(this.tinymceId).getContent(); - }, - imageSuccessCBK(arr) { - const _this = this; - arr.forEach(v => { - window.tinymce - .get(_this.tinymceId) - .insertContent(`<img class="wscnph" src="${v.url}" >`); - }); - } - } -}; -</script> - -<style scoped> -.tinymce-container { - position: relative; - line-height: normal; -} -.tinymce-container >>> .mce-fullscreen { - z-index: 10000; -} -.tinymce-textarea { - visibility: hidden; - z-index: -1; -} -.editor-custom-btn-container { - position: absolute; - right: 4px; - top: 4px; - /*z-index: 2005;*/ -} -.fullscreen .editor-custom-btn-container { - z-index: 10000; - position: fixed; -} -.editor-upload-btn { - display: inline-block; -} -</style> diff --git a/WebSite/src/components/Tinymce/plugins.js b/WebSite/src/components/Tinymce/plugins.js deleted file mode 100644 index 2ad5e17..0000000 --- a/WebSite/src/components/Tinymce/plugins.js +++ /dev/null @@ -1,9 +0,0 @@ -// Any plugins you want to use has to be imported -// Detail plugins list see https://www.tinymce.com/docs/plugins/ -// Custom builds see https://www.tinymce.com/download/custom-builds/ - -const plugins = [ - "advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount" -]; - -export default plugins; diff --git a/WebSite/src/components/Tinymce/toolbar.js b/WebSite/src/components/Tinymce/toolbar.js deleted file mode 100644 index 46196ed..0000000 --- a/WebSite/src/components/Tinymce/toolbar.js +++ /dev/null @@ -1,9 +0,0 @@ -// Here is a list of the toolbar -// Detail list see https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols - -const toolbar = [ - "searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote undo redo removeformat subscript superscript code codesample", - "hr bullist numlist link image charmap preview anchor pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen" -]; - -export default toolbar; diff --git a/WebSite/src/components/UnionUser/index.vue b/WebSite/src/components/UnionUser/index.vue deleted file mode 100644 index a42cfd8..0000000 --- a/WebSite/src/components/UnionUser/index.vue +++ /dev/null @@ -1,285 +0,0 @@ -<!-- - @Descripttion: - @Author: gong qun - @Date: 2020-06-16 14:11:45 - @LastEditors: gong qun - @LastEditTime: 2020-06-18 10:25:12 ---> -<template> - <div v-if="isShow"> - <layout-card :show-title="true" type="primary"> - <div slot="title">{{ tableTitle }} 下用户</div> - <el-row slot="filter" :gutter="5"> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-input - v-model="searchUserModel.code" - placeholder="请输入工å·" - :clearable="true" - ></el-input> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-input - v-model="searchUserModel.name" - placeholder="请输入姓å" - :clearable="true" - ></el-input> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-select - v-model="searchUserModel.userType" - placeholder="请选择用户类型" - :clearable="true" - style="width:100%" - > - <el-option - v-for="item in userTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <OrganizationSelectTree - ref="organizationTree" - @change="onOrganizationTreeChange" - > - </OrganizationSelectTree> - </el-col> - <el-col :xs="24" :sm="12" :lg="8" :xl="6"> - <el-button - type="default" - plain - icon="el-icon-search" - @click="onSearchUnion" - > - 查询 - </el-button> - </el-col> - </el-row> - <div slot="button" style="text-align: right;"> - <el-button - type="primary" - plain - icon="el-icon-plus" - @click="onSelectUser" - > - æ·»åŠ - </el-button> - <el-button - type="danger" - plain - icon="el-icon-delete" - @click="onDeleteUnion" - > - åˆ é™¤ - </el-button> - </div> - <div slot="content"> - <el-table - stripe - :data="userPageInfo.data" - style="width: 100%" - class="mtop" - ref="userTable" - fit - @selection-change="onSelectionChange" - > - <el-table-column type="selection" width="55"> </el-table-column> - <el-table-column label="å·¥å·" prop="code"></el-table-column> - <el-table-column label="å§“å" prop="name"></el-table-column> - <el-table-column label="类型" prop="userType"> - <template slot-scope="scope"> - <span>{{ userTypeFilters(scope.row.userType) }}</span> - </template> - </el-table-column> - </el-table> - <Pagination - v-show="userPageInfo.total > 0" - :total="userPageInfo.total" - :page.sync="searchUserModel.pageIndex" - :limit.sync="searchUserModel.pageSize" - @pagination="getUserPageInfo" - /> - </div> - </layout-card> - - <SelectUser - ref="selectUser" - :dialogSelectUser="dialogSelectUser" - @onCloseSelectUser="onCloseSelectUser" - @onSelectUserChange="onSelectUserChange" - ></SelectUser> - </div> -</template> -<script> -import SelectUser from "@/components/SelectUser"; -import OrganizationSelectTree from "@/components/OrganizationSelectTree"; -import Pagination from "@/components/Pagination"; -export default { - components: { - SelectUser, - OrganizationSelectTree, - Pagination - }, - props: { - tableTitle: { - type: String, - default: "å…³è”关系" - } - }, - data() { - return { - activeNames: ["1"], - searchUserModel: { - pageIndex: 1, - pageSize: 10 - }, - userTypeOptions: [ - { value: "ADMIN", label: "管ç†å‘˜" }, - { value: "TEACHER", label: "教工" }, - { value: "STUDENT", label: "å¦ç”Ÿ" }, - { value: "EXTERNAL", label: "外è˜" }, - { value: "OTHER", label: "å…¶ä»–" } - ], - userPageInfo: { - total: 0 - }, - multipleSelectionUser: [], - dialogSelectUser: false, - isShow: false - }; - }, - methods: { - searchUser(val) { - if (this.$refs.organizationTree) { - this.$refs.organizationTree.clearSelect(); - } - this.searchUserModel = { - pageIndex: 1, - pageSize: 10, - enabled: "YES" - }; - if (val) { - if (val.roleId) { - this.searchUserModel.roleIds = [val.roleId]; - } else { - this.searchUserModel.roleIds = []; - } - if (val.accountId) { - this.searchUserModel.accountIds = [val.accountId]; - } else { - this.searchUserModel.accountIds = []; - } - } - this.getUserPageInfo(); - }, - getUserPageInfo() { - if (!this.getIsSelect()) { - this.userPageInfo = {}; - this.$message.warning("请选择" + this.tableTitle); - return; - } - this.$service.User.getPageByRelation(this.searchUserModel).then(res => { - this.userPageInfo = res; - }); - }, - onUserSizeChange(val) { - this.searchUserModel.pageIndex = 1; - this.searchUserModel.pageSize = val; - this.getUserPageInfo(); - }, - onUserCurrentChange(val) { - this.searchUserModel.pageIndex = val; - this.getUserPageInfo(); - }, - onSelectionChange(val) { - this.multipleSelectionUser = val; - }, - onDeleteUnion() { - if (this.multipleSelectionUser.length === 0) { - this.$message.warning("请勾选用户ï¼"); - return; - } - this.$emit("onRemoveUnion", this.multipleSelectionUser); - }, - clearSelection() { - this.$refs.userTable.clearSelection(); - this.onSearchUnion(); - }, - userTypeFilters(value) { - if (!value) return ""; - let userType = this.userTypeOptions.filter(t => t.value === value); - if (userType.length === 0) { - return ""; - } - return userType[0].label; - }, - onSearchUnion() { - this.searchUserModel.pageIndex = 1; - this.getUserPageInfo(); - }, - onSelectUser() { - if (!this.getIsSelect()) { - this.$message.warning("请选择" + this.tableTitle); - return; - } - this.$refs.selectUser.onShowSelectUser(); - }, - onCloseSelectUser() { - this.onSearchUnion(); - this.$refs.selectUser.onCloseSelectUser(); - }, - onSelectUserChange(val) { - this.$emit("onAddUnion", val); - }, - getIsSelect() { - let isNotRole = - this.searchUserModel.roleIds == null || - this.searchUserModel.roleIds.length === 0; - let isNotAccount = - this.searchUserModel.accountIds == null || - this.searchUserModel.accountIds.length === 0; - this.isShow = !(isNotRole && isNotAccount); - return this.isShow; - }, - onOrganizationTreeChange(val) { - this.searchUserModel.organizationIds = !val ? null : [val]; - } - } -}; -</script> - -<style lang="scss" scoped> -.account { - width: 100%; - // min-height: calc(100vh - 90px); - display: flex; - .mtop { - margin-top: 20px; - } - .fl { - width: 50%; - margin-right: 20px; - } - .fr { - width: 50%; - } - .header { - padding-bottom: 10px; - border-bottom: 1px solid #f2f2f2; - } - .el-collapse { - border-top: none; - } -} -.el-button + .el-button { - margin-left: 0px; -} -.el-col { - margin-bottom: 5px; - // &:last-child { - // margin-bottom: 0; - // } -} -</style> diff --git a/WebSite/src/components/Upload/SingleImage.vue b/WebSite/src/components/Upload/SingleImage.vue deleted file mode 100644 index f81d71c..0000000 --- a/WebSite/src/components/Upload/SingleImage.vue +++ /dev/null @@ -1,133 +0,0 @@ -<template> - <div class="upload-container"> - <el-upload - :data="dataObj" - :multiple="false" - :show-file-list="false" - :on-success="handleImageSuccess" - class="image-uploader" - drag - action="https://httpbin.org/post" - > - <i class="el-icon-upload" /> - <div class="el-upload__text">将文件拖到æ¤å¤„,或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> - <div class="image-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl + '?imageView2/1/w/200/h/200'" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - </div> -</template> - -<script> -import { getToken } from "@/api/qiniu"; - -export default { - name: "SingleImageUpload", - props: { - value: { - type: String, - default: "" - } - }, - data() { - return { - tempUrl: "", - dataObj: { token: "", key: "" } - }; - }, - computed: { - imageUrl() { - return this.value; - } - }, - methods: { - rmImage() { - this.emitInput(""); - }, - emitInput(val) { - this.$emit("input", val); - }, - handleImageSuccess() { - this.emitInput(this.tempUrl); - }, - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - this.tempUrl = response.data.qiniu_url; - resolve(true); - }) - .catch(err => { - console.log(err); - reject(false); - }); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -@import "~@/styles/mixin.scss"; -.upload-container { - width: 100%; - position: relative; - @include clearfix; - .image-uploader { - width: 60%; - float: left; - } - .image-preview { - width: 200px; - height: 200px; - position: relative; - border: 1px dashed #d9d9d9; - float: left; - margin-left: 50px; - .image-preview-wrapper { - position: relative; - width: 100%; - height: 100%; - img { - width: 100%; - height: 100%; - } - } - .image-preview-action { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - cursor: default; - text-align: center; - color: #fff; - opacity: 0; - font-size: 20px; - background-color: rgba(0, 0, 0, 0.5); - transition: opacity 0.3s; - cursor: pointer; - text-align: center; - line-height: 200px; - .el-icon-delete { - font-size: 36px; - } - } - &:hover { - .image-preview-action { - opacity: 1; - } - } - } -} -</style> diff --git a/WebSite/src/components/Upload/SingleImage2.vue b/WebSite/src/components/Upload/SingleImage2.vue deleted file mode 100644 index e9456ed..0000000 --- a/WebSite/src/components/Upload/SingleImage2.vue +++ /dev/null @@ -1,130 +0,0 @@ -<template> - <div class="singleImageUpload2 upload-container"> - <el-upload - :data="dataObj" - :multiple="false" - :show-file-list="false" - :on-success="handleImageSuccess" - class="image-uploader" - drag - action="https://httpbin.org/post" - > - <i class="el-icon-upload" /> - <div class="el-upload__text">Drag或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> - <div v-show="imageUrl.length > 0" class="image-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - </div> -</template> - -<script> -import { getToken } from "@/api/qiniu"; - -export default { - name: "SingleImageUpload2", - props: { - value: { - type: String, - default: "" - } - }, - data() { - return { - tempUrl: "", - dataObj: { token: "", key: "" } - }; - }, - computed: { - imageUrl() { - return this.value; - } - }, - methods: { - rmImage() { - this.emitInput(""); - }, - emitInput(val) { - this.$emit("input", val); - }, - handleImageSuccess() { - this.emitInput(this.tempUrl); - }, - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - this.tempUrl = response.data.qiniu_url; - resolve(true); - }) - .catch(() => { - reject(false); - }); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -.upload-container { - width: 100%; - height: 100%; - position: relative; - .image-uploader { - height: 100%; - } - .image-preview { - width: 100%; - height: 100%; - position: absolute; - left: 0px; - top: 0px; - border: 1px dashed #d9d9d9; - .image-preview-wrapper { - position: relative; - width: 100%; - height: 100%; - img { - width: 100%; - height: 100%; - } - } - .image-preview-action { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - cursor: default; - text-align: center; - color: #fff; - opacity: 0; - font-size: 20px; - background-color: rgba(0, 0, 0, 0.5); - transition: opacity 0.3s; - cursor: pointer; - text-align: center; - line-height: 200px; - .el-icon-delete { - font-size: 36px; - } - } - &:hover { - .image-preview-action { - opacity: 1; - } - } - } -} -</style> diff --git a/WebSite/src/components/Upload/SingleImage3.vue b/WebSite/src/components/Upload/SingleImage3.vue deleted file mode 100644 index 7a9757d..0000000 --- a/WebSite/src/components/Upload/SingleImage3.vue +++ /dev/null @@ -1,157 +0,0 @@ -<template> - <div class="upload-container"> - <el-upload - :data="dataObj" - :multiple="false" - :show-file-list="false" - :on-success="handleImageSuccess" - class="image-uploader" - drag - action="https://httpbin.org/post" - > - <i class="el-icon-upload" /> - <div class="el-upload__text">将文件拖到æ¤å¤„,或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> - <div class="image-preview image-app-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - <div class="image-preview"> - <div v-show="imageUrl.length > 1" class="image-preview-wrapper"> - <img :src="imageUrl" /> - <div class="image-preview-action"> - <i class="el-icon-delete" @click="rmImage" /> - </div> - </div> - </div> - </div> -</template> - -<script> -import { getToken } from "@/api/qiniu"; - -export default { - name: "SingleImageUpload3", - props: { - value: { - type: String, - default: "" - } - }, - data() { - return { - tempUrl: "", - dataObj: { token: "", key: "" } - }; - }, - computed: { - imageUrl() { - return this.value; - } - }, - methods: { - rmImage() { - this.emitInput(""); - }, - emitInput(val) { - this.$emit("input", val); - }, - handleImageSuccess(file) { - this.emitInput(file.files.file); - }, - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - this.tempUrl = response.data.qiniu_url; - resolve(true); - }) - .catch(err => { - console.log(err); - reject(false); - }); - }); - } - } -}; -</script> - -<style lang="scss" scoped> -@import "~@/styles/mixin.scss"; -.upload-container { - width: 100%; - position: relative; - @include clearfix; - .image-uploader { - width: 35%; - float: left; - } - .image-preview { - width: 200px; - height: 200px; - position: relative; - border: 1px dashed #d9d9d9; - float: left; - margin-left: 50px; - .image-preview-wrapper { - position: relative; - width: 100%; - height: 100%; - img { - width: 100%; - height: 100%; - } - } - .image-preview-action { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - cursor: default; - text-align: center; - color: #fff; - opacity: 0; - font-size: 20px; - background-color: rgba(0, 0, 0, 0.5); - transition: opacity 0.3s; - cursor: pointer; - text-align: center; - line-height: 200px; - .el-icon-delete { - font-size: 36px; - } - } - &:hover { - .image-preview-action { - opacity: 1; - } - } - } - .image-app-preview { - width: 320px; - height: 180px; - position: relative; - border: 1px dashed #d9d9d9; - float: left; - margin-left: 50px; - .app-fake-conver { - height: 44px; - position: absolute; - width: 100%; // background: rgba(0, 0, 0, .1); - text-align: center; - line-height: 64px; - color: #fff; - } - } -} -</style> diff --git a/WebSite/src/components/UploadExcel/index.vue b/WebSite/src/components/UploadExcel/index.vue deleted file mode 100644 index 94d45fd..0000000 --- a/WebSite/src/components/UploadExcel/index.vue +++ /dev/null @@ -1,158 +0,0 @@ -<template> - <div> - <input - ref="excel-upload-input" - class="excel-upload-input" - type="file" - accept=".xlsx, .xls" - @change="handleClick" - /> - <div - class="drop" - @drop="handleDrop" - @dragover="handleDragover" - @dragenter="handleDragover" - > - Drop excel file here or - <el-button - :loading="loading" - style="margin-left:16px;" - size="mini" - type="primary" - @click="handleUpload" - > - Browse - </el-button> - </div> - </div> -</template> - -<script> -import XLSX from "xlsx"; - -export default { - props: { - beforeUpload: Function, // eslint-disable-line - onSuccess: Function// eslint-disable-line - }, - data() { - return { - loading: false, - excelData: { - header: null, - results: null - } - }; - }, - methods: { - generateData({ header, results }) { - this.excelData.header = header; - this.excelData.results = results; - this.onSuccess && this.onSuccess(this.excelData); - }, - handleDrop(e) { - e.stopPropagation(); - e.preventDefault(); - if (this.loading) return; - const files = e.dataTransfer.files; - if (files.length !== 1) { - this.$message.error("Only support uploading one file!"); - return; - } - const rawFile = files[0]; // only use files[0] - - if (!this.isExcel(rawFile)) { - this.$message.error( - "Only supports upload .xlsx, .xls, .csv suffix files" - ); - return false; - } - this.upload(rawFile); - e.stopPropagation(); - e.preventDefault(); - }, - handleDragover(e) { - e.stopPropagation(); - e.preventDefault(); - e.dataTransfer.dropEffect = "copy"; - }, - handleUpload() { - this.$refs["excel-upload-input"].click(); - }, - handleClick(e) { - const files = e.target.files; - const rawFile = files[0]; // only use files[0] - if (!rawFile) return; - this.upload(rawFile); - }, - upload(rawFile) { - this.$refs["excel-upload-input"].value = null; // fix can't select the same excel - - if (!this.beforeUpload) { - this.readerData(rawFile); - return; - } - const before = this.beforeUpload(rawFile); - if (before) { - this.readerData(rawFile); - } - }, - readerData(rawFile) { - this.loading = true; - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onload = e => { - const data = e.target.result; - const workbook = XLSX.read(data, { type: "array" }); - const firstSheetName = workbook.SheetNames[0]; - const worksheet = workbook.Sheets[firstSheetName]; - const header = this.getHeaderRow(worksheet); - const results = XLSX.utils.sheet_to_json(worksheet); - this.generateData({ header, results }); - this.loading = false; - resolve(); - }; - reader.readAsArrayBuffer(rawFile); - }); - }, - getHeaderRow(sheet) { - const headers = []; - const range = XLSX.utils.decode_range(sheet["!ref"]); - let C; - const R = range.s.r; - /* start in the first row */ - for (C = range.s.c; C <= range.e.c; ++C) { - /* walk every column in the range */ - const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]; - /* find the cell in the first row */ - let hdr = "UNKNOWN " + C; // <-- replace with your desired default - if (cell && cell.t) hdr = XLSX.utils.format_cell(cell); - headers.push(hdr); - } - return headers; - }, - isExcel(file) { - return /\.(xlsx|xls|csv)$/.test(file.name); - } - } -}; -</script> - -<style scoped> -.excel-upload-input { - display: none; - z-index: -9999; -} -.drop { - border: 2px dashed #bbb; - width: 600px; - height: 160px; - line-height: 160px; - margin: 0 auto; - font-size: 24px; - border-radius: 5px; - text-align: center; - color: #bbb; - position: relative; -} -</style> diff --git a/WebSite/src/directive/clipboard/clipboard.js b/WebSite/src/directive/clipboard/clipboard.js deleted file mode 100644 index 80bdc54..0000000 --- a/WebSite/src/directive/clipboard/clipboard.js +++ /dev/null @@ -1,57 +0,0 @@ -// Inspired by https://github.com/Inndy/vue-clipboard2 -const Clipboard = require("clipboard"); -if (!Clipboard) { - throw new Error("you should npm install `clipboard` --save at first "); -} - -export default { - bind(el, binding) { - if (binding.arg === "success") { - el._v_clipboard_success = binding.value; - } else if (binding.arg === "error") { - el._v_clipboard_error = binding.value; - } else { - const clipboard = new Clipboard(el, { - text() { - return binding.value; - }, - action() { - return binding.arg === "cut" ? "cut" : "copy"; - } - }); - clipboard.on("success", e => { - const callback = el._v_clipboard_success; - callback && callback(e) // eslint-disable-line - }); - clipboard.on("error", e => { - const callback = el._v_clipboard_error; - callback && callback(e) // eslint-disable-line - }); - el._v_clipboard = clipboard; - } - }, - update(el, binding) { - if (binding.arg === "success") { - el._v_clipboard_success = binding.value; - } else if (binding.arg === "error") { - el._v_clipboard_error = binding.value; - } else { - el._v_clipboard.text = function() { - return binding.value; - }; - el._v_clipboard.action = function() { - return binding.arg === "cut" ? "cut" : "copy"; - }; - } - }, - unbind(el, binding) { - if (binding.arg === "success") { - delete el._v_clipboard_success; - } else if (binding.arg === "error") { - delete el._v_clipboard_error; - } else { - el._v_clipboard.destroy(); - delete el._v_clipboard; - } - } -}; diff --git a/WebSite/src/directive/clipboard/index.js b/WebSite/src/directive/clipboard/index.js deleted file mode 100644 index d44c7d2..0000000 --- a/WebSite/src/directive/clipboard/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import Clipboard from "./clipboard"; - -const install = function(Vue) { - Vue.directive("Clipboard", Clipboard); -}; - -if (window.Vue) { - window.clipboard = Clipboard; - Vue.use(install); // eslint-disable-line -} - -Clipboard.install = install; -export default Clipboard; diff --git a/WebSite/src/directive/el-drag-dialog/drag.js b/WebSite/src/directive/el-drag-dialog/drag.js deleted file mode 100644 index 7eb2742..0000000 --- a/WebSite/src/directive/el-drag-dialog/drag.js +++ /dev/null @@ -1,77 +0,0 @@ -export default { - bind(el, binding, vnode) { - const dialogHeaderEl = el.querySelector(".el-dialog__header"); - const dragDom = el.querySelector(".el-dialog"); - dialogHeaderEl.style.cssText += ";cursor:move;"; - dragDom.style.cssText += ";top:0px;"; - - // 获å–原有属性 ie domå…ƒç´ .currentStyle ç«ç‹è°·æŒ window.getComputedStyle(domå…ƒç´ , null); - const getStyle = (function() { - if (window.document.currentStyle) { - return (dom, attr) => dom.currentStyle[attr]; - } else { - return (dom, attr) => getComputedStyle(dom, false)[attr]; - } - })(); - - dialogHeaderEl.onmousedown = e => { - // é¼ æ ‡æŒ‰ä¸‹ï¼Œè®¡ç®—å½“å‰å…ƒç´ è·ç¦»å¯è§†åŒºçš„è·ç¦» - const disX = e.clientX - dialogHeaderEl.offsetLeft; - const disY = e.clientY - dialogHeaderEl.offsetTop; - - const dragDomWidth = dragDom.offsetWidth; - const dragDomHeight = dragDom.offsetHeight; - - const screenWidth = document.body.clientWidth; - const screenHeight = document.body.clientHeight; - - const minDragDomLeft = dragDom.offsetLeft; - const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth; - - const minDragDomTop = dragDom.offsetTop; - const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight; - - // 获å–到的值带px æ£åˆ™åŒ¹é…æ›¿æ¢ - let styL = getStyle(dragDom, "left"); - let styT = getStyle(dragDom, "top"); - - if (styL.includes("%")) { - styL = +document.body.clientWidth * (+styL.replace(/\%/g, "") / 100); - styT = +document.body.clientHeight * (+styT.replace(/\%/g, "") / 100); - } else { - styL = +styL.replace(/\px/g, ""); - styT = +styT.replace(/\px/g, ""); - } - - document.onmousemove = function(e) { - // 通过事件委托,计算移动的è·ç¦» - let left = e.clientX - disX; - let top = e.clientY - disY; - - // è¾¹ç•Œå¤„ç† - if (-left > minDragDomLeft) { - left = -minDragDomLeft; - } else if (left > maxDragDomLeft) { - left = maxDragDomLeft; - } - - if (-top > minDragDomTop) { - top = -minDragDomTop; - } else if (top > maxDragDomTop) { - top = maxDragDomTop; - } - - // 移动当å‰å…ƒç´ - dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`; - - // emit onDrag event - vnode.child.$emit("dragDialog"); - }; - - document.onmouseup = function(e) { - document.onmousemove = null; - document.onmouseup = null; - }; - }; - } -}; diff --git a/WebSite/src/directive/el-drag-dialog/index.js b/WebSite/src/directive/el-drag-dialog/index.js deleted file mode 100644 index 9ccbea6..0000000 --- a/WebSite/src/directive/el-drag-dialog/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import drag from "./drag"; - -const install = function(Vue) { - Vue.directive("el-drag-dialog", drag); -}; - -if (window.Vue) { - window["el-drag-dialog"] = drag; - Vue.use(install); // eslint-disable-line -} - -drag.install = install; -export default drag; diff --git a/WebSite/src/directive/el-table/adaptive.js b/WebSite/src/directive/el-table/adaptive.js deleted file mode 100644 index 38e30f8..0000000 --- a/WebSite/src/directive/el-table/adaptive.js +++ /dev/null @@ -1,45 +0,0 @@ -import { - addResizeListener, - removeResizeListener -} from "element-ui/src/utils/resize-event"; - -/** - * How to use - * <el-table height="100px" v-el-height-adaptive-table="{bottomOffset: 30}">...</el-table> - * el-table height is must be set - * bottomOffset: 30(default) // The height of the table from the bottom of the page. - */ - -const doResize = (el, binding, vnode) => { - const { componentInstance: $table } = vnode; - - const { value } = binding; - - if (!$table.height) { - throw new Error(`el-$table must set the height. Such as height='100px'`); - } - const bottomOffset = (value && value.bottomOffset) || 30; - - if (!$table) return; - - const height = - window.innerHeight - el.getBoundingClientRect().top - bottomOffset; - $table.layout.setHeight(height); - $table.doLayout(); -}; - -export default { - bind(el, binding, vnode) { - el.resizeListener = () => { - doResize(el, binding, vnode); - }; - // parameter 1 is must be "Element" type - addResizeListener(window.document.body, el.resizeListener); - }, - inserted(el, binding, vnode) { - doResize(el, binding, vnode); - }, - unbind(el) { - removeResizeListener(window.document.body, el.resizeListener); - } -}; diff --git a/WebSite/src/directive/el-table/index.js b/WebSite/src/directive/el-table/index.js deleted file mode 100644 index ad0577f..0000000 --- a/WebSite/src/directive/el-table/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import adaptive from "./adaptive"; - -const install = function(Vue) { - Vue.directive("el-height-adaptive-table", adaptive); -}; - -if (window.Vue) { - window["el-height-adaptive-table"] = adaptive; - Vue.use(install); // eslint-disable-line -} - -adaptive.install = install; -export default adaptive; diff --git a/WebSite/src/directive/permission/index.js b/WebSite/src/directive/permission/index.js deleted file mode 100644 index 7565e68..0000000 --- a/WebSite/src/directive/permission/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import permission from "./permission"; - -const install = function(Vue) { - Vue.directive("permission", permission); -}; - -if (window.Vue) { - window["permission"] = permission; - Vue.use(install); // eslint-disable-line -} - -permission.install = install; -export default permission; diff --git a/WebSite/src/directive/permission/permission.js b/WebSite/src/directive/permission/permission.js deleted file mode 100644 index 41ec77e..0000000 --- a/WebSite/src/directive/permission/permission.js +++ /dev/null @@ -1,22 +0,0 @@ -import store from "@/store"; - -export default { - inserted(el, binding, vnode) { - const { value } = binding; - const roles = store.getters && store.getters.roles; - - if (value && value instanceof Array && value.length > 0) { - const permissionRoles = value; - - const hasPermission = roles.some(role => { - return permissionRoles.includes(role); - }); - - if (!hasPermission) { - el.parentNode && el.parentNode.removeChild(el); - } - } else { - throw new Error(`need roles! Like v-permission="['admin','editor']"`); - } - } -}; diff --git a/WebSite/src/directive/sticky.js b/WebSite/src/directive/sticky.js deleted file mode 100644 index 6be81ae..0000000 --- a/WebSite/src/directive/sticky.js +++ /dev/null @@ -1,90 +0,0 @@ -const vueSticky = {}; -let listenAction; -vueSticky.install = Vue => { - Vue.directive("sticky", { - inserted(el, binding) { - const params = binding.value || {}; - const stickyTop = params.stickyTop || 0; - const zIndex = params.zIndex || 1000; - const elStyle = el.style; - - elStyle.position = "-webkit-sticky"; - elStyle.position = "sticky"; - // if the browser support css sticky(Currently Safari, Firefox and Chrome Canary) - // if (~elStyle.position.indexOf('sticky')) { - // elStyle.top = `${stickyTop}px`; - // elStyle.zIndex = zIndex; - // return - // } - const elHeight = el.getBoundingClientRect().height; - const elWidth = el.getBoundingClientRect().width; - elStyle.cssText = `top: ${stickyTop}px; z-index: ${zIndex}`; - - const parentElm = el.parentNode || document.documentElement; - const placeholder = document.createElement("div"); - placeholder.style.display = "none"; - placeholder.style.width = `${elWidth}px`; - placeholder.style.height = `${elHeight}px`; - parentElm.insertBefore(placeholder, el); - - let active = false; - - const getScroll = (target, top) => { - const prop = top ? "pageYOffset" : "pageXOffset"; - const method = top ? "scrollTop" : "scrollLeft"; - let ret = target[prop]; - if (typeof ret !== "number") { - ret = window.document.documentElement[method]; - } - return ret; - }; - - const sticky = () => { - if (active) { - return; - } - if (!elStyle.height) { - elStyle.height = `${el.offsetHeight}px`; - } - - elStyle.position = "fixed"; - elStyle.width = `${elWidth}px`; - placeholder.style.display = "inline-block"; - active = true; - }; - - const reset = () => { - if (!active) { - return; - } - - elStyle.position = ""; - placeholder.style.display = "none"; - active = false; - }; - - const check = () => { - const scrollTop = getScroll(window, true); - const offsetTop = el.getBoundingClientRect().top; - if (offsetTop < stickyTop) { - sticky(); - } else { - if (scrollTop < elHeight + stickyTop) { - reset(); - } - } - }; - listenAction = () => { - check(); - }; - - window.addEventListener("scroll", listenAction); - }, - - unbind() { - window.removeEventListener("scroll", listenAction); - } - }); -}; - -export default vueSticky; diff --git a/WebSite/src/directive/waves/index.js b/WebSite/src/directive/waves/index.js deleted file mode 100644 index bafd2cb..0000000 --- a/WebSite/src/directive/waves/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import waves from "./waves"; - -const install = function(Vue) { - Vue.directive("waves", waves); -}; - -if (window.Vue) { - window.waves = waves; - Vue.use(install); // eslint-disable-line -} - -waves.install = install; -export default waves; diff --git a/WebSite/src/directive/waves/waves.css b/WebSite/src/directive/waves/waves.css deleted file mode 100644 index af7a7ef..0000000 --- a/WebSite/src/directive/waves/waves.css +++ /dev/null @@ -1,26 +0,0 @@ -.waves-ripple { - position: absolute; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.15); - background-clip: padding-box; - pointer-events: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transform: scale(0); - -ms-transform: scale(0); - transform: scale(0); - opacity: 1; -} - -.waves-ripple.z-active { - opacity: 0; - -webkit-transform: scale(2); - -ms-transform: scale(2); - transform: scale(2); - -webkit-transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out; - transition: opacity 1.2s ease-out, transform 0.6s ease-out, -webkit-transform 0.6s ease-out; -} \ No newline at end of file diff --git a/WebSite/src/directive/waves/waves.js b/WebSite/src/directive/waves/waves.js deleted file mode 100644 index ca1ca26..0000000 --- a/WebSite/src/directive/waves/waves.js +++ /dev/null @@ -1,80 +0,0 @@ -import "./waves.css"; - -const context = "@@wavesContext"; - -function handleClick(el, binding) { - function handle(e) { - const customOpts = Object.assign({}, binding.value); - const opts = Object.assign( - { - ele: el, // æ³¢çº¹ä½œç”¨å…ƒç´ - type: "hit", // hit 点击ä½ç½®æ‰©æ•£ centerä¸å¿ƒç‚¹æ‰©å±• - color: "rgba(0, 0, 0, 0.15)" // 波纹颜色 - }, - customOpts - ); - const target = opts.ele; - if (target) { - target.style.position = "relative"; - target.style.overflow = "hidden"; - const rect = target.getBoundingClientRect(); - let ripple = target.querySelector(".waves-ripple"); - if (!ripple) { - ripple = document.createElement("span"); - ripple.className = "waves-ripple"; - ripple.style.height = ripple.style.width = - Math.max(rect.width, rect.height) + "px"; - target.appendChild(ripple); - } else { - ripple.className = "waves-ripple"; - } - switch (opts.type) { - case "center": - ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + "px"; - ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + "px"; - break; - default: - ripple.style.top = - (e.pageY - - rect.top - - ripple.offsetHeight / 2 - - document.documentElement.scrollTop || document.body.scrollTop) + - "px"; - ripple.style.left = - (e.pageX - - rect.left - - ripple.offsetWidth / 2 - - document.documentElement.scrollLeft || document.body.scrollLeft) + - "px"; - } - ripple.style.backgroundColor = opts.color; - ripple.className = "waves-ripple z-active"; - return false; - } - } - - if (!el[context]) { - el[context] = { - removeHandle: handle - }; - } else { - el[context].removeHandle = handle; - } - - return handle; -} - -export default { - bind(el, binding) { - el.addEventListener("click", handleClick(el, binding), false); - }, - update(el, binding) { - el.removeEventListener("click", el[context].removeHandle, false); - el.addEventListener("click", handleClick(el, binding), false); - }, - unbind(el) { - el.removeEventListener("click", el[context].removeHandle, false); - el[context] = null; - delete el[context]; - } -}; diff --git a/WebSite/src/filters/index.js b/WebSite/src/filters/index.js deleted file mode 100644 index 8d40f2b..0000000 --- a/WebSite/src/filters/index.js +++ /dev/null @@ -1,124 +0,0 @@ -/* - * @Description: - * @Autor: dong - * @Date: 2020-03-13 10:03:57 - * @LastEditors: dong - * @LastEditTime: 2020-04-13 09:00:20 - */ - -// import parseTime, formatTime and set to filter -export { parseTime, formatTime } from "@/utils"; -import moment from "moment"; // moment - -/** - * Show plural label if time is plural number - * @param {number} time - * @param {string} label - * @return {string} - */ -function pluralize(time, label) { - if (time === 1) { - return time + label; - } - return time + label + "s"; -} - -/** - * @param {number} time - */ -export function timeAgo(time) { - const between = Date.now() / 1000 - Number(time); - if (between < 3600) { - return pluralize(~~(between / 60), " minute"); - } else if (between < 86400) { - return pluralize(~~(between / 3600), " hour"); - } else { - return pluralize(~~(between / 86400), " day"); - } -} - -/** - * date formatting - * @method: dateFormatter - * @param {String} date 日期 - * @param {String} pattern æ ¼å¼åŒ–å—符串 - * @return {String} - */ -export function dateFormatter(date, pattern = "YYYY-MM-DD HH:mm:ss") { - return moment(date).format(pattern); -} - -/** - * money formatting - * @method: moneyFormatter - * @param {Number} number è¦æ ¼å¼åŒ–çš„æ•°å— - * @param {Number} decimals ä¿ç•™å‡ ä½å°æ•° - * @param {String} thousandsSep åƒåˆ†ä½ç¬¦å· - * @return {String} - */ -export function moneyFormatter(number, decimals, thousandsSep = "") { - number = (number + "").replace(/[^0-9+-Ee.]/g, ""); - const n = !isFinite(+number) ? 0 : +number, - prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), - toFixedFix = function(n, prec) { - const k = Math.pow(10, prec); - return "" + Math.ceil(n * k) / k; - }; - - const s = (prec ? toFixedFix(n, prec) : "" + Math.round(n)).split("."); - const re = /(-?\d+)(\d{3})/; - while (re.test(s[0]) && thousandsSep) { - s[0] = s[0].replace(re, `$1${thousandsSep}$2`); - } - - if ((s[1] || "").length < prec) { - s[1] = s[1] || ""; - s[1] += new Array(prec - s[1].length + 1).join("0"); - } - return s.join("."); -} - -/** - * Number formatting - * like 10000 => 10k - * @param {number} num - * @param {number} digits - */ -export function numberFormatter(num, digits) { - const si = [ - { value: 1e18, symbol: "E" }, - { value: 1e15, symbol: "P" }, - { value: 1e12, symbol: "T" }, - { value: 1e9, symbol: "G" }, - { value: 1e6, symbol: "M" }, - { value: 1e3, symbol: "k" } - ]; - for (let i = 0; i < si.length; i++) { - if (num >= si[i].value) { - return ( - (num / si[i].value) - .toFixed(digits) - .replace(/\.0+$|(\.[0-9]*[1-9])0+$/, "$1") + si[i].symbol - ); - } - } - return num.toString(); -} - -/** - * 10000 => "10,000" - * @param {number} num - */ -export function toThousandFilter(num) { - return (+num || 0) - .toString() - .replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ",")); -} - -/** - * Upper case first char - * @param {String} string - */ -export function uppercaseFirst(string) { - return string.charAt(0).toUpperCase() + string.slice(1); -} diff --git a/WebSite/src/icons/index.js b/WebSite/src/icons/index.js index d702940..1a6401b 100644 --- a/WebSite/src/icons/index.js +++ b/WebSite/src/icons/index.js @@ -1,9 +1,11 @@ -import Vue from "vue"; -import SvgIcon from "@/components/SvgIcon"; // svg component +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 10:16:38 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 11:33:17 + */ -// register globally -Vue.component("svg-icon", SvgIcon); - -const req = require.context("./svg", false, /\.svg$/); +const req = require.context('./svg', false, /\.svg$/); const requireAll = requireContext => requireContext.keys().map(requireContext); requireAll(req); diff --git a/WebSite/src/layout/components/AppMain.vue b/WebSite/src/layout/components/AppMain.vue deleted file mode 100644 index c5fcc5d..0000000 --- a/WebSite/src/layout/components/AppMain.vue +++ /dev/null @@ -1,66 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-04-21 18:54:20 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 13:54:22 ---> -<template> - <section class="app-main"> - <transition name="fade-transform" mode="out-in"> - <keep-alive :include="cachedViews"> - <router-view :key="key" /> - </keep-alive> - </transition> - </section> -</template> - -<script> -export default { - name: "AppMain", - computed: { - cachedViews() { - return this.$store.state.tagsView.cachedViews; - }, - key() { - return this.$route.path; - } - } -}; -</script> - -<style lang="scss" scoped> -.app-main { - /* 50= navbar 50 */ - min-height: calc(100vh - 50px); - width: 100%; - position: relative; - overflow: hidden; - // padding: 20px; - background: #f5f5f5; -} - -.fixed-header + .app-main { - padding-top: 50px; -} - -.hasTagsView { - .app-main { - /* 84 = navbar + tags-view = 50 + 34 */ - min-height: calc(100vh - 84px); - } - - .fixed-header + .app-main { - padding-top: 84px; - } -} -</style> - -<style lang="scss"> -// fix css style bug in open el-dialog -.el-popup-parent--hidden { - .fixed-header { - padding-right: 15px; - } -} -</style> diff --git a/WebSite/src/layout/components/Navbar.vue b/WebSite/src/layout/components/Navbar.vue deleted file mode 100644 index c4d9816..0000000 --- a/WebSite/src/layout/components/Navbar.vue +++ /dev/null @@ -1,250 +0,0 @@ -<template> - <div class="navbar"> - <hamburger - id="hamburger-container" - :is-active="sidebar.opened" - class="hamburger-container" - @toggleClick="toggleSideBar" - /> - - <breadcrumb id="breadcrumb-container" class="breadcrumb-container" /> - - <div class="right-menu"> - <template v-if="false"> - <!-- device !== 'mobile' --> - <search id="header-search" class="right-menu-item" /> - - <error-log class="errLog-container right-menu-item hover-effect" /> - - <screenfull id="screenfull" class="right-menu-item hover-effect" /> - - <el-tooltip content="Global Size" effect="dark" placement="bottom"> - <size-select id="size-select" class="right-menu-item hover-effect" /> - </el-tooltip> - </template> - - <el-dropdown - class="avatar-container right-menu-item hover-effect" - trigger="click" - > - <div class="avatar-wrapper"> - <!-- <img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" /> --> - <span class="text-avatar"><i class="el-icon-user-solid"></i></span> - <i class="el-icon-caret-bottom" /> - </div> - <el-dropdown-menu slot="dropdown"> - <!-- <router-link to="/profile/index"> - <el-dropdown-item>Profile</el-dropdown-item> - </router-link> - <router-link to="/"> - <el-dropdown-item>Dashboard</el-dropdown-item> - </router-link> - <a - target="_blank" - href="https://github.com/PanJiaChen/vue-element-admin/" - > - <el-dropdown-item>Github</el-dropdown-item> - </a> - <a - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/#/" - > - <el-dropdown-item>Docs</el-dropdown-item> - </a> - <el-dropdown-item divided @click.native="logout"> - <span style="display:block;">Log Out</span> - </el-dropdown-item> --> - <!-- <el-dropdown-item @click.native="handleSelectUser" - >{{ name - }}<span style="color:#409EFF"> 切æ¢</span></el-dropdown-item - > --> - <el-dropdown-item - ><span style="display:block; font-size:12px" - ><i class="el-icon-user-solid" /> {{ name }}</span - ></el-dropdown-item - > - <el-dropdown-item divided @click.native="handleModifyPassword"> - <span style="display:block; font-size:12px"> - <i class="el-icon-s-cooperation" /> - 修改密ç </span - > - </el-dropdown-item> - <el-dropdown-item @click.native="logout"> - <span style="display:block; font-size:12px" - ><i class="el-icon-switch-button" /> 注销</span - > - </el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> - </div> - <select-user - :visible.sync="dialogSelectUser.visible" - :userList="dialogSelectUser.userList" - @handle-confirm="setUser" - /> - <modify-password :visible.sync="dialogModifyPassword.visible" /> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import Breadcrumb from "@/components/Breadcrumb"; -import Hamburger from "@/components/Hamburger"; -import ErrorLog from "@/components/ErrorLog"; -import Screenfull from "@/components/Screenfull"; -import SizeSelect from "@/components/SizeSelect"; -import Search from "@/components/HeaderSearch"; -import ModifyPassword from "@/components/ModifyPassword"; -import SelectUser from "@/components/SelectUser"; - -export default { - data() { - return { - dialogSelectUser: { - visible: false, - userList: [] - }, - dialogModifyPassword: { - visible: false - } - }; - }, - components: { - Breadcrumb, - Hamburger, - ErrorLog, - Screenfull, - SizeSelect, - Search, - ModifyPassword, - SelectUser - }, - computed: { - ...mapGetters(["sidebar", "avatar", "device", "name"]) - }, - methods: { - toggleSideBar() { - this.$store.dispatch("app/toggleSideBar"); - }, - async logout() { - await this.$store.dispatch("user/logout"); - this.$router.push("/login"); - }, - async handleSelectUser() { - const { users } = await this.$store.dispatch("user/login", {}); - this.dialogSelectUser.userList = users; - if (this.dialogSelectUser.userList.length > 1) { - this.dialogSelectUser.visible = true; - } - }, - async setUser(id) { - await this.$store.dispatch("user/setUser", id); - await this.$store.dispatch("user/getInfo"); - this.$router.push({ - path: "/", - query: { - t: new Date().valueOf() - } - }); - }, - handleModifyPassword() { - this.dialogModifyPassword.visible = true; - } - } -}; -</script> - -<style lang="scss" scoped> -.navbar { - height: 50px; - overflow: hidden; - position: relative; - background: #fff; - box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); - - .hamburger-container { - line-height: 46px; - height: 100%; - float: left; - cursor: pointer; - transition: background 0.3s; - -webkit-tap-highlight-color: transparent; - - &:hover { - background: rgba(0, 0, 0, 0.025); - } - } - - .breadcrumb-container { - float: left; - } - - .errLog-container { - display: inline-block; - vertical-align: top; - } - - .right-menu { - float: right; - height: 100%; - line-height: 50px; - - &:focus { - outline: none; - } - - .right-menu-item { - display: inline-block; - padding: 0 8px; - height: 100%; - font-size: 18px; - color: #5a5e66; - vertical-align: text-bottom; - - &.hover-effect { - cursor: pointer; - transition: background 0.3s; - - &:hover { - background: rgba(0, 0, 0, 0.025); - } - } - } - - .avatar-container { - margin-right: 30px; - - .avatar-wrapper { - margin-top: 5px; - position: relative; - - .user-avatar { - cursor: pointer; - width: 40px; - height: 40px; - border-radius: 10px; - } - - .el-icon-caret-bottom { - cursor: pointer; - position: absolute; - right: -20px; - top: 25px; - font-size: 12px; - } - - .text-avatar { - display: flex; - cursor: pointer; - width: 40px; - height: 40px; - border-radius: 20px; - justify-content: center; - align-items: center; - background-color: #eeeeee; - } - } - } - } -} -</style> diff --git a/WebSite/src/layout/components/Settings/index.vue b/WebSite/src/layout/components/Settings/index.vue deleted file mode 100644 index e09ff9c..0000000 --- a/WebSite/src/layout/components/Settings/index.vue +++ /dev/null @@ -1,110 +0,0 @@ -<template> - <div class="drawer-container"> - <div> - <h3 class="drawer-title">Page style setting</h3> - - <div class="drawer-item"> - <span>Theme Color</span> - <theme-picker - style="float: right;height: 26px;margin: -3px 8px 0 0;" - @change="themeChange" - /> - </div> - - <div class="drawer-item"> - <span>Open Tags-View</span> - <el-switch v-model="tagsView" class="drawer-switch" /> - </div> - - <div class="drawer-item"> - <span>Fixed Header</span> - <el-switch v-model="fixedHeader" class="drawer-switch" /> - </div> - - <div class="drawer-item"> - <span>Sidebar Logo</span> - <el-switch v-model="sidebarLogo" class="drawer-switch" /> - </div> - </div> - </div> -</template> - -<script> -import ThemePicker from "@/components/ThemePicker"; - -export default { - components: { ThemePicker }, - data() { - return {}; - }, - computed: { - fixedHeader: { - get() { - return this.$store.state.settings.fixedHeader; - }, - set(val) { - this.$store.dispatch("settings/changeSetting", { - key: "fixedHeader", - value: val - }); - } - }, - tagsView: { - get() { - return this.$store.state.settings.tagsView; - }, - set(val) { - this.$store.dispatch("settings/changeSetting", { - key: "tagsView", - value: val - }); - } - }, - sidebarLogo: { - get() { - return this.$store.state.settings.sidebarLogo; - }, - set(val) { - this.$store.dispatch("settings/changeSetting", { - key: "sidebarLogo", - value: val - }); - } - } - }, - methods: { - themeChange(val) { - this.$store.dispatch("settings/changeSetting", { - key: "theme", - value: val - }); - } - } -}; -</script> - -<style lang="scss" scoped> -.drawer-container { - padding: 24px; - font-size: 14px; - line-height: 1.5; - word-wrap: break-word; - - .drawer-title { - margin-bottom: 12px; - color: rgba(0, 0, 0, 0.85); - font-size: 14px; - line-height: 22px; - } - - .drawer-item { - color: rgba(0, 0, 0, 0.65); - font-size: 14px; - padding: 12px 0; - } - - .drawer-switch { - float: right; - } -} -</style> diff --git a/WebSite/src/layout/components/Sidebar/FixiOSBug.js b/WebSite/src/layout/components/Sidebar/FixiOSBug.js deleted file mode 100644 index c9c5d2a..0000000 --- a/WebSite/src/layout/components/Sidebar/FixiOSBug.js +++ /dev/null @@ -1,26 +0,0 @@ -export default { - computed: { - device() { - return this.$store.state.app.device; - } - }, - mounted() { - // In order to fix the click on menu on the ios device will trigger the mouseleave bug - // https://github.com/PanJiaChen/vue-element-admin/issues/1135 - this.fixBugIniOS(); - }, - methods: { - fixBugIniOS() { - const $subMenu = this.$refs.subMenu; - if ($subMenu) { - const handleMouseleave = $subMenu.handleMouseleave; - $subMenu.handleMouseleave = e => { - if (this.device === "mobile") { - return; - } - handleMouseleave(e); - }; - } - } - } -}; diff --git a/WebSite/src/layout/components/Sidebar/Item.vue b/WebSite/src/layout/components/Sidebar/Item.vue deleted file mode 100644 index ecd826b..0000000 --- a/WebSite/src/layout/components/Sidebar/Item.vue +++ /dev/null @@ -1,29 +0,0 @@ -<script> -export default { - name: "MenuItem", - functional: true, - props: { - icon: { - type: String, - default: "" - }, - title: { - type: String, - default: "" - } - }, - render(h, context) { - const { icon, title } = context.props; - const vnodes = []; - - if (icon) { - vnodes.push(<svg-icon icon-class={icon} />); - } - - if (title) { - vnodes.push(<span slot="title">{title}</span>); - } - return vnodes; - } -}; -</script> diff --git a/WebSite/src/layout/components/Sidebar/Link.vue b/WebSite/src/layout/components/Sidebar/Link.vue deleted file mode 100644 index 3be5ba6..0000000 --- a/WebSite/src/layout/components/Sidebar/Link.vue +++ /dev/null @@ -1,35 +0,0 @@ -<template> - <!-- eslint-disable vue/require-component-is --> - <component v-bind="linkProps(to)"> - <slot /> - </component> -</template> - -<script> -import { isExternal } from "@/utils/validate"; - -export default { - props: { - to: { - type: String, - required: true - } - }, - methods: { - linkProps(url) { - if (isExternal(url)) { - return { - is: "a", - href: url, - target: "_blank", - rel: "noopener" - }; - } - return { - is: "router-link", - to: url - }; - } - } -}; -</script> diff --git a/WebSite/src/layout/components/Sidebar/Logo.vue b/WebSite/src/layout/components/Sidebar/Logo.vue deleted file mode 100644 index 0bb917e..0000000 --- a/WebSite/src/layout/components/Sidebar/Logo.vue +++ /dev/null @@ -1,95 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-15 11:18:22 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-15 14:11:55 ---> -<template> - <div class="sidebar-logo-container" :class="{ collapse: collapse }"> - <transition name="sidebarLogoFade"> - <router-link - v-if="collapse" - key="collapse" - class="sidebar-logo-link" - to="/" - > - <img v-if="logo" :src="logo" class="sidebar-logo" /> - <h1 v-else class="sidebar-title">{{ title }}</h1> - </router-link> - <router-link v-else key="expand" class="sidebar-logo-link" to="/"> - <img v-if="logo" :src="logo" class="sidebar-logo" /> - <h1 class="sidebar-title">{{ title }}</h1> - </router-link> - </transition> - </div> -</template> - -<script> -export default { - name: "SidebarLogo", - props: { - collapse: { - type: Boolean, - required: true - } - }, - data() { - return { - title: "Vue Element Admin", - logo: - "https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png" - }; - } -}; -</script> - -<style lang="scss" scoped> -.sidebarLogoFade-enter-active { - transition: opacity 1.5s; -} - -.sidebarLogoFade-enter, -.sidebarLogoFade-leave-to { - opacity: 0; -} - -.sidebar-logo-container { - position: relative; - width: 100%; - height: 50px; - line-height: 50px; - background: #2b2f3a; - text-align: center; - overflow: hidden; - - & .sidebar-logo-link { - height: 100%; - width: 100%; - - & .sidebar-logo { - width: 32px; - height: 32px; - vertical-align: middle; - margin-right: 12px; - } - - & .sidebar-title { - display: inline-block; - margin: 0; - color: #fff; - font-weight: 600; - line-height: 50px; - font-size: 14px; - font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; - vertical-align: middle; - } - } - - &.collapse { - .sidebar-logo { - margin-right: 0px; - } - } -} -</style> diff --git a/WebSite/src/layout/components/Sidebar/SidebarItem.vue b/WebSite/src/layout/components/Sidebar/SidebarItem.vue deleted file mode 100644 index c6293c8..0000000 --- a/WebSite/src/layout/components/Sidebar/SidebarItem.vue +++ /dev/null @@ -1,69 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-15 11:18:22 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:01:05 ---> -<template> - <div> - <!-- å¯å±•å¼€ --> - <el-submenu - v-if="item.children && item.children.length > 0" - ref="subMenu" - :index="item.id" - popper-append-to-body - > - <template slot="title"> - <item :icon="item.icon" :title="item.name" /> - </template> - <sidebar-item - v-for="child in item.children" - :key="child.id" - :item="child" - class="nest-menu" - /> - </el-submenu> - - <template v-else> - <app-link :to="`${path}${params}`"> - <el-menu-item :index="path"> - <item :icon="item.icon" :title="item.name" /> - </el-menu-item> - </app-link> - </template> - </div> -</template> - -<script> -// import path from "path"; -import { isExternal } from "@/utils/validate"; -import Item from "./Item"; -import AppLink from "./Link"; -import FixiOSBug from "./FixiOSBug"; - -export default { - name: "SidebarItem", - components: { Item, AppLink }, - mixins: [FixiOSBug], - props: { - // route object - item: { - type: Object, - required: true - } - }, - computed: { - path() { - return `/i/${this.item.routingUrl}`; - }, - params() { - return this.item.redirectUrl ? `?url=${this.item.redirectUrl}` : ""; - } - }, - data() { - return {}; - }, - methods: {} -}; -</script> diff --git a/WebSite/src/layout/components/Sidebar/index.vue b/WebSite/src/layout/components/Sidebar/index.vue index 959591e..a993d3c 100644 --- a/WebSite/src/layout/components/Sidebar/index.vue +++ b/WebSite/src/layout/components/Sidebar/index.vue @@ -1,13 +1,13 @@ <!-- * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-15 11:18:22 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:31:21 + * @Autor: dongjunhua + * @Date: 2020-12-21 09:02:09 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-03 13:03:18 --> <template> - <div :class="{ 'has-logo': showLogo }"> - <logo v-if="showLogo" :collapse="isCollapse" /> + <div :class="{ 'has-logo': sidebar.showLogo }"> + <logo v-if="sidebar.showLogo" :collapse="isCollapse" /> <el-scrollbar wrap-class="scrollbar-wrapper"> <el-menu :default-active="activeMenu" @@ -19,45 +19,39 @@ :collapse-transition="false" mode="vertical" > - <sidebar-item v-for="root in menuTree" :key="root.id" :item="root" /> + <sidebar-item v-for="root in menuList" :key="root.id" :item="root" /> </el-menu> </el-scrollbar> </div> </template> <script> -import { mapGetters } from "vuex"; -import Logo from "./Logo"; -import SidebarItem from "./SidebarItem"; -import variables from "@/styles/variables.scss"; +import { useStore } from 'vuex'; +import { useRoute } from 'vue-router'; +import Logo from './components/Logo'; +import SidebarItem from './components/SidebarItem'; +import variablesStyle from '@/styles/variables.scss'; +import { computed } from 'vue'; export default { - name: "MenuTree", + name: 'Sidebar', components: { SidebarItem, Logo }, - computed: { - ...mapGetters(["menuTree", "sidebar"]), - activeMenu() { - const route = this.$route; - const { meta, path } = route; - // if set path, the sidebar will highlight the path you set - if (meta.activeMenu) { - return meta.activeMenu; - } - return path; - }, - showLogo() { - return this.$store.state.settings.sidebarLogo; - }, - variables() { - return variables; - }, - isCollapse() { - return !this.sidebar.opened; - } - }, - data() { - return {}; - }, - mounted() {}, - methods: {} + setup() { + const store = useStore(); + const route = useRoute(); + + const activeMenu = computed(() => route.path); + const variables = computed(() => variablesStyle); + const menuList = computed(() => store.state.subject.user.menuList || []); + const sidebar = computed(() => store.state.app.sidebar); + const isCollapse = computed(() => !sidebar.value.opened); + + return { + activeMenu, + variables, + sidebar, + menuList, + isCollapse + }; + } }; </script> diff --git a/WebSite/src/layout/components/TagsView/ScrollPane.vue b/WebSite/src/layout/components/TagsView/ScrollPane.vue deleted file mode 100644 index a513290..0000000 --- a/WebSite/src/layout/components/TagsView/ScrollPane.vue +++ /dev/null @@ -1,96 +0,0 @@ -<template> - <el-scrollbar - ref="scrollContainer" - :vertical="false" - class="scroll-container" - @wheel.native.prevent="handleScroll" - > - <slot /> - </el-scrollbar> -</template> - -<script> -const tagAndTagSpacing = 4; // tagAndTagSpacing - -export default { - name: "ScrollPane", - data() { - return { - left: 0 - }; - }, - computed: { - scrollWrapper() { - return this.$refs.scrollContainer.$refs.wrap; - } - }, - methods: { - handleScroll(e) { - const eventDelta = e.wheelDelta || -e.deltaY * 40; - const $scrollWrapper = this.scrollWrapper; - $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4; - }, - moveToTarget(currentTag) { - const $container = this.$refs.scrollContainer.$el; - const $containerWidth = $container.offsetWidth; - const $scrollWrapper = this.scrollWrapper; - const tagList = this.$parent.$refs.tag; - - let firstTag = null; - let lastTag = null; - - // find first tag and last tag - if (tagList.length > 0) { - firstTag = tagList[0]; - lastTag = tagList[tagList.length - 1]; - } - - if (firstTag === currentTag) { - $scrollWrapper.scrollLeft = 0; - } else if (lastTag === currentTag) { - $scrollWrapper.scrollLeft = - $scrollWrapper.scrollWidth - $containerWidth; - } else { - // find preTag and nextTag - const currentIndex = tagList.findIndex(item => item === currentTag); - const prevTag = tagList[currentIndex - 1]; - const nextTag = tagList[currentIndex + 1]; - - // the tag's offsetLeft after of nextTag - const afterNextTagOffsetLeft = - nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing; - - // the tag's offsetLeft before of prevTag - const beforePrevTagOffsetLeft = - prevTag.$el.offsetLeft - tagAndTagSpacing; - - if ( - afterNextTagOffsetLeft > - $scrollWrapper.scrollLeft + $containerWidth - ) { - $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth; - } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) { - $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft; - } - } - } - } -}; -</script> - -<style lang="scss" scoped> -.scroll-container { - white-space: nowrap; - position: relative; - overflow: hidden; - width: 100%; - /deep/ { - .el-scrollbar__bar { - bottom: 0px; - } - .el-scrollbar__wrap { - height: 49px; - } - } -} -</style> diff --git a/WebSite/src/layout/components/TagsView/index.vue b/WebSite/src/layout/components/TagsView/index.vue index 2b7c05e..06a0163 100644 --- a/WebSite/src/layout/components/TagsView/index.vue +++ b/WebSite/src/layout/components/TagsView/index.vue @@ -1,209 +1,128 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 09:02:14 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-04 09:43:44 +--> <template> - <div id="tags-view-container" class="tags-view-container"> - <scroll-pane ref="scrollPane" class="tags-view-wrapper"> - <router-link - v-for="tag in visitedViews" - ref="tag" - :key="tag.path" - :class="isActive(tag) ? 'active' : ''" - :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" - tag="span" - class="tags-view-item" - @click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''" - @contextmenu.prevent.native="openMenu(tag, $event)" - > - {{ tag.title }} - <span - v-if="!isAffix(tag)" - class="el-icon-close" - @click.prevent.stop="closeSelectedTag(tag)" - /> - </router-link> - </scroll-pane> - <ul - v-show="visible" - :style="{ left: left + 'px', top: top + 'px' }" - class="contextmenu" + <transition name="fade-transform-top"> + <div + id="tags-view-container" + class="tags-view-container" + v-if="cachedViews.length > 1" > - <li @click="refreshSelectedTag(selectedTag)">Refresh</li> - <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"> - Close - </li> - <li @click="closeOthersTags">Close Others</li> - <li @click="closeAllTags(selectedTag)">Close All</li> - </ul> - </div> + <scroll-pane> + <div class="router-link-container"> + <router-link + v-for="view in cachedViews" + ref="tag" + :key="view.id" + :class="view.active ? 'active' : ''" + :to="{ path: path(view.path) }" + tag="span" + class="tags-view-item" + > + <!-- <svg-icon v-if="view.active && view.icon" :icon-class="view.icon" /> --> + <i v-if="view.icon" :class="view.icon"></i> + <span v-if="view.name" class="context">{{ view.name }}</span> + <div + class="close-icon-container" + v-if="view.allowClose" + @click.prevent="closeTag(view)" + > + <svg width="16" height="16"> + <line + x1="5" + y1="5" + x2="11" + y2="11" + style="stroke:rgb(99,99,99);stroke-width:1" + /> + <line + x1="5" + y1="11" + x2="11" + y2="5" + style="stroke:rgb(99,99,99);stroke-width:1" + /> + </svg> + </div> + </router-link> + </div> + </scroll-pane> + </div> + </transition> </template> <script> -import ScrollPane from "./ScrollPane"; -import path from "path"; - +import { useStore } from 'vuex'; +import { useRoute, useRouter } from 'vue-router'; +import { computed, watch } from 'vue'; +import ScrollPane from './components/ScrollPane'; +import TagView from '@/core/model/TagView'; export default { + name: 'TagsView', components: { ScrollPane }, - data() { - return { - visible: false, - top: 0, - left: 0, - selectedTag: {}, - affixTags: [] + setup() { + const store = useStore(); + const route = useRoute(); + const router = useRouter(); + + const cachedViews = computed(() => { + return store.state.app.tagsView.cachedViews; + }); + const menuList = computed(() => store.state.subject.user.menuList || []); + + const path = routingUrl => { + return routingUrl ? `/i/${routingUrl}` : '/i'; }; - }, - computed: { - visitedViews() { - return this.$store.state.tagsView.visitedViews; - }, - routes() { - return this.$store.state.permission.routes; - } - }, - watch: { - $route() { - this.addTags(); - this.moveToCurrentTag(); - }, - visible(value) { - if (value) { - document.body.addEventListener("click", this.closeMenu); + + const getTag = () => { + if (route.path === '/i') { + store.dispatch( + 'app/addTagView', + new TagView(0, '', '', 'fas fa-home', true, false) + ); } else { - document.body.removeEventListener("click", this.closeMenu); + menuList.value.forEach(m => checkNode(m, route.path)); } - } - }, - mounted() { - this.initTags(); - this.addTags(); - }, - methods: { - isActive(route) { - return route.path === this.$route.path; - }, - isAffix(tag) { - return tag.meta && tag.meta.affix; - }, - filterAffixTags(routes, basePath = "/") { - let tags = []; - routes.forEach(route => { - if (route.meta && route.meta.affix) { - const tagPath = path.resolve(basePath, route.path); - tags.push({ - fullPath: tagPath, - path: tagPath, - name: route.name, - meta: { ...route.meta } - }); - } - if (route.children) { - const tempTags = this.filterAffixTags(route.children, route.path); - if (tempTags.length >= 1) { - tags = [...tags, ...tempTags]; - } - } - }); - return tags; - }, - initTags() { - const affixTags = (this.affixTags = this.filterAffixTags(this.routes)); - for (const tag of affixTags) { - // Must have tag name - if (tag.name) { - this.$store.dispatch("tagsView/addVisitedView", tag); - } - } - }, - addTags() { - const { name } = this.$route; - if (name) { - this.$store.dispatch("tagsView/addView", this.$route); - } - return false; - }, - moveToCurrentTag() { - const tags = this.$refs.tag; - this.$nextTick(() => { - for (const tag of tags) { - if (tag.to.path === this.$route.path) { - this.$refs.scrollPane.moveToTarget(tag); - // when query is different then update - if (tag.to.fullPath !== this.$route.fullPath) { - this.$store.dispatch("tagsView/updateVisitedView", this.$route); - } - break; - } - } - }); - }, - refreshSelectedTag(view) { - this.$store.dispatch("tagsView/delCachedView", view).then(() => { - const { fullPath } = view; - this.$nextTick(() => { - this.$router.replace({ - path: "/redirect" + fullPath - }); - }); - }); - }, - closeSelectedTag(view) { - this.$store - .dispatch("tagsView/delView", view) - .then(({ visitedViews }) => { - if (this.isActive(view)) { - this.toLastView(visitedViews, view); - } - }); - }, - closeOthersTags() { - this.$router.push(this.selectedTag); - this.$store - .dispatch("tagsView/delOthersViews", this.selectedTag) - .then(() => { - this.moveToCurrentTag(); - }); - }, - closeAllTags(view) { - this.$store.dispatch("tagsView/delAllViews").then(({ visitedViews }) => { - if (this.affixTags.some(tag => tag.path === view.path)) { - return; - } - this.toLastView(visitedViews, view); - }); - }, - toLastView(visitedViews, view) { - const latestView = visitedViews.slice(-1)[0]; - if (latestView) { - this.$router.push(latestView.fullPath); - } else { - // now the default is to redirect to the home page if there is no tags-view, - // you can adjust it according to your needs. - if (view.name === "Dashboard") { - // to reload home page - this.$router.replace({ path: "/redirect" + view.fullPath }); - } else { - this.$router.push("/"); - } + }; + + const checkNode = (node, path) => { + if (`/i/${node.routingUrl}` === path) { + store.dispatch( + 'app/addTagView', + new TagView(node.id, node.name, node.routingUrl, node.icon) + ); + } else if (node.children && node.children.length > 0) { + node.children.forEach(c => checkNode(c, path)); } - }, - openMenu(tag, e) { - const menuMinWidth = 105; - const offsetLeft = this.$el.getBoundingClientRect().left; // container margin left - const offsetWidth = this.$el.offsetWidth; // container width - const maxLeft = offsetWidth - menuMinWidth; // left boundary - const left = e.clientX - offsetLeft + 15; // 15: margin right + }; - if (left > maxLeft) { - this.left = maxLeft; + const closeTag = view => { + store.dispatch('app/delTagView', view); + const activeView = cachedViews.value.find(v => v.active); + if (activeView) { + router.push(path(activeView.path)); } else { - this.left = left; + router.push('/'); } + }; - this.top = e.clientY; - this.visible = true; - this.selectedTag = tag; - }, - closeMenu() { - this.visible = false; - } + watch( + () => route.path, + () => { + getTag(); + }, + { immediate: true } + ); + + return { + path, + cachedViews, + closeTag + }; } }; </script> @@ -212,64 +131,126 @@ export default { .tags-view-container { height: 34px; width: 100%; - background: #fff; + position: relative; + z-index: 10; + background: rgb(245, 245, 245); border-bottom: 1px solid #d8dce5; - // box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 3px 0 rgba(0, 0, 0, 0.04); - .tags-view-wrapper { + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + + .router-link-container { + display: flex; + .tags-view-item { - display: inline-block; + transition: all 0.18s; + display: flex; position: relative; cursor: pointer; - height: 26px; + height: 33px; line-height: 26px; - border: 1px solid #d8dce5; - color: #495060; - background: #fff; - padding: 0 8px; + justify-content: center; + align-items: center; + color: #777; + padding: 1px 2px 0 8px; font-size: 12px; - margin-left: 5px; - margin-top: 4px; + margin-left: 10px; + font-weight: bold; + &:first-of-type { - margin-left: 15px; + margin-left: 5px; + padding-left: 15px; + padding-right: 15px; } &:last-of-type { - margin-right: 15px; + margin-right: 5px; + &::after { + position: absolute; + right: -5px; + content: ''; + width: 1px; + height: 30px; + border-right: 1px solid rgb(245, 245, 245); + } } + &::before { + transition: all 0.18s; + position: absolute; + left: 0; + bottom: 0; + content: ''; + height: 0; + width: 100%; + background-color: rgb(80, 138, 255); + } + &::after { + position: absolute; + right: -5px; + content: ''; + width: 1px; + height: 16px; + border-right: 1px solid #ccc; + } + + &:hover { + color: #495060; + } + &.active { - background-color: #42b983; - color: #fff; - border-color: #42b983; + color: #495060; + &::before { - content: ""; - background: #fff; - display: inline-block; - width: 8px; - height: 8px; - border-radius: 50%; - position: relative; - margin-right: 2px; + position: absolute; + left: 0; + bottom: 0; + content: ''; + height: 3px; + width: 100%; + background-color: rgb(80, 138, 255); + // background: linear-gradient( + // to left, + // rgba(80, 138, 255, 0.8), + // rgba(30, 180, 97, 0.8), + // rgba(80, 138, 255, 0.8) + // ); } } } - } - .contextmenu { - margin: 0; - background: #fff; - z-index: 3000; - position: absolute; - list-style-type: none; - padding: 5px 0; - border-radius: 4px; - font-size: 12px; - font-weight: 400; - color: #333; - box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); - li { - margin: 0; - padding: 7px 16px; - cursor: pointer; + .context { + display: inline-block; + padding: 0 10px; + } + + .close-icon-container { + position: relative; + display: flex; + justify-content: center; + align-items: center; + width: 18px; + height: 18px; + border-radius: 9px; &:hover { - background: #eee; + background-color: #ccc; + } + } + + .contextmenu { + margin: 0; + background: #fff; + z-index: 3000; + position: absolute; + list-style-type: none; + padding: 5px 0; + border-radius: 4px; + font-size: 12px; + font-weight: 400; + color: #333; + box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3); + li { + margin: 0; + padding: 7px 16px; + cursor: pointer; + &:hover { + background: #eee; + } } } } diff --git a/WebSite/src/layout/components/index.js b/WebSite/src/layout/components/index.js index 750be80..b5975a7 100644 --- a/WebSite/src/layout/components/index.js +++ b/WebSite/src/layout/components/index.js @@ -1,13 +1,12 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:04 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-16 10:35:57 + * @Autor: dongjunhua + * @Date: 2020-12-21 09:01:40 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-27 20:27:30 */ - -export { default as AppMain } from "./AppMain"; -export { default as Navbar } from "./Navbar"; -export { default as Settings } from "./Settings"; -export { default as Sidebar } from "./Sidebar"; -export { default as TagsView } from "./TagsView"; +export { default as AppMainSection } from './AppMain/index.vue'; +export { default as NavbarSection } from './Navbar/index.vue'; +// export { default as Settings } from './Settings' +export { default as SidebarSection } from './Sidebar/index.vue'; +export { default as TagsViewSection } from './TagsView/index.vue'; diff --git a/WebSite/src/layout/index.vue b/WebSite/src/layout/index.vue index a65534b..afa69f1 100644 --- a/WebSite/src/layout/index.vue +++ b/WebSite/src/layout/index.vue @@ -1,69 +1,86 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 08:50:10 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-19 08:57:14 +--> <template> - <div :class="classObj" class="app-wrapper"> + <div + :class="{ + hideSidebar: !sidebar.opened || !sidebar.enabled, + openSidebar: sidebar.opened && sidebar.enabled, + withoutAnimation: sidebar.withoutAnimation, + mobile: device === 'mobile' || !sidebar.enabled + }" + class="app-wrapper" + > <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> - <sidebar class="sidebar-container" /> - <div :class="{ hasTagsView: needTagsView }" class="main-container"> + <sidebar-section v-if="sidebar.enabled" class="sidebar-container" /> + <div :class="{ hasTagsView: tagsView.enabled }" class="main-container"> <div :class="{ 'fixed-header': fixedHeader }"> - <navbar /> - <tags-view v-if="needTagsView" /> + <navbar-section v-if="navbar.enabled" /> + <tags-view-section v-if="tagsView.enabled" /> </div> - <app-main /> - <right-panel v-if="showSettings"> - <settings /> - </right-panel> + <app-main-section /> </div> </div> </template> <script> -import RightPanel from "@/components/RightPanel"; -import { AppMain, Navbar, Settings, TagsView, Sidebar } from "./components"; -import ResizeMixin from "./mixin/ResizeHandler"; -import { mapState } from "vuex"; +import { + AppMainSection, + NavbarSection, + SidebarSection, + TagsViewSection +} from './components'; +import { useStore } from 'vuex'; +import { computed } from 'vue'; +import ResizeMixin from './mixin/ResizeHandler'; export default { - name: "Layout", + name: 'Layout', components: { - AppMain, - Navbar, - RightPanel, - Settings, - TagsView, - Sidebar + AppMainSection, + NavbarSection, + SidebarSection, + TagsViewSection }, mixins: [ResizeMixin], - computed: { - ...mapState({ - sidebar: state => state.app.sidebar, - device: state => state.app.device, - showSettings: state => state.settings.showSettings, - needTagsView: state => state.settings.tagsView, - fixedHeader: state => state.settings.fixedHeader - }), - classObj() { - return { - hideSidebar: !this.sidebar.opened, - openSidebar: this.sidebar.opened, - withoutAnimation: this.sidebar.withoutAnimation, - mobile: this.device === "mobile" - }; - } - }, - methods: { - handleClickOutside() { - this.$store.dispatch("app/closeSideBar", { withoutAnimation: false }); - } + setup() { + const store = useStore(); + + // !! the name of variable in steup can not be same with the name in components + // even they are diff in case on initial (case-insensitive) + const fixedHeader = computed(() => store.state.app.fixedHeader); + const device = computed(() => store.state.app.device); + const sidebar = computed(() => store.state.app.sidebar); + const navbar = computed(() => store.state.app.navbar); + const tagsView = computed(() => store.state.app.tagsView); + + const handleClickOutside = () => { + store.dispatch('app/closeSideBar', { withoutAnimation: false }); + }; + + return { + fixedHeader, + device, + sidebar, + navbar, + tagsView, + handleClickOutside + }; } }; </script> <style lang="scss" scoped> -@import "~@/styles/mixin.scss"; -@import "~@/styles/variables.scss"; +@import '~@/styles/mixin.scss'; +@import '~@/styles/variables.scss'; .app-wrapper { @include clearfix; diff --git a/WebSite/src/layout/mixin/ResizeHandler.js b/WebSite/src/layout/mixin/ResizeHandler.js index 48f7959..cdd0858 100644 --- a/WebSite/src/layout/mixin/ResizeHandler.js +++ b/WebSite/src/layout/mixin/ResizeHandler.js @@ -1,27 +1,34 @@ -import store from "@/store"; +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-02-03 09:24:05 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-03 09:29:57 + */ +import store from '@/store'; const { body } = document; const WIDTH = 992; // refer to Bootstrap's responsive design export default { watch: { - $route(route) { - if (this.device === "mobile" && this.sidebar.opened) { - store.dispatch("app/closeSideBar", { withoutAnimation: false }); + $route() { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('app/closeSideBar', { withoutAnimation: false }); } } }, beforeMount() { - window.addEventListener("resize", this.$_resizeHandler); + window.addEventListener('resize', this.$_resizeHandler); }, - beforeDestroy() { - window.removeEventListener("resize", this.$_resizeHandler); + beforeUnmount() { + window.removeEventListener('resize', this.$_resizeHandler); }, mounted() { const isMobile = this.$_isMobile(); if (isMobile) { - store.dispatch("app/toggleDevice", "mobile"); - store.dispatch("app/closeSideBar", { withoutAnimation: true }); + store.dispatch('app/setDevice', 'mobile'); + store.dispatch('app/closeSideBar', { withoutAnimation: true }); } }, methods: { @@ -34,10 +41,10 @@ export default { $_resizeHandler() { if (!document.hidden) { const isMobile = this.$_isMobile(); - store.dispatch("app/toggleDevice", isMobile ? "mobile" : "desktop"); + store.dispatch('app/setDevice', isMobile ? 'mobile' : 'desktop'); if (isMobile) { - store.dispatch("app/closeSideBar", { withoutAnimation: true }); + store.dispatch('app/closeSideBar', { withoutAnimation: true }); } } } diff --git a/WebSite/src/main.js b/WebSite/src/main.js index 4cf333a..4c2bc62 100644 --- a/WebSite/src/main.js +++ b/WebSite/src/main.js @@ -1,58 +1,96 @@ /* - * @Descripttion: - * @Author: dong - * @Date: 2020-04-21 18:54:20 + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 08:39:38 + * @LastEditTime: 2021-01-05 14:57:59 */ -import Vue from "vue"; -import Cookies from "js-cookie"; -import "normalize.css/normalize.css"; // a modern alternative to CSS resets -import Element from "element-ui"; -import "./styles/element-variables.scss"; -import "@/styles/index.scss"; // global css -import App from "./App"; -import store from "./store"; -import router from "./router"; -import "./icons"; // icon -import "./permission"; // permission control -import "./utils/error-log"; // error log -import * as filters from "./filters"; // global filters -import VueJsonp from "vue-jsonp"; // jsonp -import service from "./service"; -import LayoutCard from "./components/LayoutCard"; -import JumpDialog from "./components/JumpDialog"; -import JumpDialogItem from "./components/JumpDialog/components/JumpDialogItem"; - -// æ‰“åŒ…åŽæä¾›mockæ•°æ®ï¼Œå¦‚使用真实api,请注释 -if (process.env.NODE_ENV === "test") { - const { mockXHR } = require("../mock"); - mockXHR(); +import { createApp } from 'vue'; +import App from './App.vue'; +import router from './router'; +import store from './store'; +import 'normalize.css/normalize.css'; // a modern alternative to CSS resets +import ElementPlus from 'element-plus'; +import 'element-plus/lib/theme-chalk/index.css'; +import defaultSettings from './settings'; +import '@/styles/index.scss'; // global css +import './icons'; // icon +import SvgIcon from './components/SvgIcon/index.vue'; +import VueParticles from 'vue-particles'; +import '@fortawesome/fontawesome-free/css/all.css'; +import locale from 'element-plus/lib/locale/lang/zh-cn'; +import './icons/ali/iconfont.css'; + +const app = createApp(App); + +// register plugins +app + .use(ElementPlus, { locale, size: 'small', zIndex: 3000 }) + .use(store) + .use(router) + + .use(VueParticles); + +// register global component +app.component('SvgIcon', SvgIcon); + +// mount instance + +let formatDate = (date, fmt) => { + date = new Date(date); + if (typeof fmt === 'undefined') { + fmt = 'yyyy-MM-dd HH:mm:ss'; + } + if (/(y+)/.test(fmt)) { + fmt = fmt.replace( + RegExp.$1, + (date.getFullYear() + '').substr(4 - RegExp.$1.length) + ); + } + let o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'H+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + }; + for (let k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + let str = o[k] + ''; + fmt = fmt.replace( + RegExp.$1, + RegExp.$1.length === 1 ? str : ('00' + str).substr(str.length) + ); + } + } + return fmt; +}; + +let isvalidPhone = (phone)=> { + const reg = /^1([38][0-9]|4[014-9]|[59][0-35-9]|6[2567]|7[0-8])\d{8}$/ + return reg.test(phone) } -//全局注册组件 -Vue.component("LayoutCard", LayoutCard); -Vue.component("JumpDialog", JumpDialog); -Vue.component("JumpDialogItem", JumpDialogItem); - -Vue.use(service); -Vue.use(Element, { - //size: Cookies.get("size") || "medium" // set element-ui default size - size: "mini" -}); -// use jsonp -Vue.use(VueJsonp); - -// register global utility filters -Object.keys(filters).forEach(key => { - Vue.filter(key, filters[key]); -}); - -Vue.config.productionTip = false; - -new Vue({ - el: "#app", - router, - store, - render: h => h(App) -}); +app.config.globalProperties.$formatDate = formatDate; +app.use(formatDate); +app.config.globalProperties.$isvalidPhone = isvalidPhone; +app.use(isvalidPhone); +const digitsRE = /(\d{3})(?=\d)/g; +let currency = (value, currency, decimals) => { + value = parseFloat(value); + if (!isFinite(value) || (!value && value !== 0)) return ''; + currency = currency != null ? currency : '$'; + decimals = decimals != null ? decimals : 2; + var stringified = Math.abs(value).toFixed(decimals); + var _int = decimals ? stringified.slice(0, -1 - decimals) : stringified; + var i = _int.length % 3; + var head = i > 0 ? _int.slice(0, i) + (_int.length > 3 ? ',' : '') : ''; + var _float = decimals ? stringified.slice(-1 - decimals) : ''; + var sign = value < 0 ? '-' : ''; + return ( + sign + currency + head + _int.slice(i).replace(digitsRE, '$1,') + _float + ); +}; +app.config.globalProperties.$currency = currency; +app.use(currency); +app.mount('#app'); diff --git a/WebSite/src/permission.js b/WebSite/src/permission.js deleted file mode 100644 index 9b2325b..0000000 --- a/WebSite/src/permission.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:56 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-10 13:07:55 - */ -import router from "./router"; -import store from "./store"; -import { Message } from "element-ui"; -import NProgress from "nprogress"; // progress bar -import "nprogress/nprogress.css"; // progress bar style -import { getToken } from "@/utils/auth"; // get token from cookie -import getPageTitle from "@/utils/get-page-title"; - -NProgress.configure({ showSpinner: false }); // NProgress Configuration - -const whiteList = ["/login", "/auth-redirect"]; // no redirect whitelist - -router.beforeEach(async (to, from, next) => { - // start progress bar - NProgress.start(); - - // set page title - document.title = getPageTitle(to.meta.title); - - // determine whether the user has logged in - const hasToken = getToken(); - - if (hasToken) { - if (to.path === "/login") { - // if is logged in, redirect to the home page - next({ path: "/" }); - NProgress.done(); - } else { - // determine whether the user has existed through getInfo - if (store.getters.user) { - next(); - } else { - try { - // get user info - await store.dispatch("user/getInfo"); - // store.dispatch("permission/generateRoutes"); - - // hack method to ensure that addRoutes is complete - // set the replace: true, so the navigation will not leave a history record - next({ ...to, replace: true }); - } catch (error) { - // remove token and go to login page to re-login - await store.dispatch("user/resetCache"); - Message.error(error || "Has Error"); - next("/login"); - NProgress.done(); - } - } - } - } else { - /* has no token*/ - - if (whiteList.indexOf(to.path) !== -1) { - // in the free login whitelist, go directly - next(); - } else { - // other pages that do not have permission to access are redirected to the login page. - next("/login"); - NProgress.done(); - } - } -}); - -router.afterEach(() => { - // finish progress bar - NProgress.done(); -}); diff --git a/WebSite/src/router/index.js b/WebSite/src/router/index.js index 510c240..abb021a 100644 --- a/WebSite/src/router/index.js +++ b/WebSite/src/router/index.js @@ -1,119 +1,87 @@ -import Vue from "vue"; -import Router from "vue-router"; - -Vue.use(Router); - -/* Layout */ -import Layout from "@/layout"; - -/** - * Note: sub-menu only appear when route children.length >= 1 - * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html - * - * hidden: true if set true, item will not show in the sidebar(default is false) - * alwaysShow: true if set true, will always show the root menu - * if not set alwaysShow, when item has more than one children route, - * it will becomes nested mode, otherwise not show the root menu - * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb - * name:'router-name' the name is used by <keep-alive> (must set!!!) - * meta : { - roles: ['admin','editor'] control the page roles (you can set multiple roles) - title: 'title' the name show in sidebar and breadcrumb (recommend set) - icon: 'svg-name' the icon show in the sidebar - noCache: true if set true, the page will no be cached(default is false) - affix: true if set true, the tag will affix in the tags-view - breadcrumb: false if set false, the item will hidden in breadcrumb(default is true) - activeMenu: '/example/list' if set path, the sidebar will highlight the path you set - } +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-20 12:51:36 */ +import { createRouter, createWebHashHistory } from 'vue-router'; +import { before, after } from './guards'; +import Layout from '@/layout'; -/** - * 基础路由 - */ -export const constantRoutes = [ +// get routes from modules +const modulesFiles = require.context('./modules', true, /\.js$/); +// router for layout +const moduleRoutes = modulesFiles.keys().reduce((moduleRoutes, modulePath) => { + const value = modulesFiles(modulePath); + return [...moduleRoutes, ...value.default]; +}, []); +// router for outer +const moduleRoutesForOuter = moduleRoutes.map(r => { + const routeForOuter = { + path: `/${r.path}`, + component: r.component, + name: `${r.name}ForOuter` + }; + return routeForOuter; +}); + +const routes = [ { - path: "/redirect", - component: Layout, - hidden: true, - children: [ - { - path: "/redirect/:path(.*)", - component: () => import("@/views/redirect/index") - } - ] + path: '/login', + name: 'Login', + component: () => import('@/views/login/index') }, { - path: "/login", - component: () => import("@/views/login/index"), - hidden: true + path: '/auth-redirect', + name: 'AuthRedirect', + component: () => import('@/views/auth-redirect') }, { - path: "/auth-redirect", - component: () => import("@/views/login/auth-redirect"), - hidden: true + path: '/401', + name: 'NoPermission', + component: () => import('@/views/error-page/401') }, { - path: "/404", - component: () => import("@/views/error-page/404"), - hidden: true + path: '/404', + name: 'NotFound', + component: () => import('@/views/error-page/404') }, + { - path: "/401", - component: () => import("@/views/error-page/401"), - hidden: true + path: '/main', + component: () => import('@/views/main/index'), + name: 'main' }, { - path: "/", - component: Layout, - redirect: "/i" - } -]; - -import { demoRoutes } from "./modules/demo"; - -/** - * 需è¦åЍæ€åŠ è½½çš„è·¯ç”± - */ -export const asyncRoutes = [...demoRoutes]; - -/** - * 外层框架路由 - */ -export const layoutRoutes = [ - { - path: "/i", + path: '/i', component: Layout, children: [ { - path: "", - component: () => import("@/views/home"), - name: "Home", - meta: { title: "首页", affix: true } - } + path: '', + name: 'Home', + component: () => import('@/views/home') + }, + ...moduleRoutes ] - } + }, + ...moduleRoutesForOuter, + { + path: '/', + redirect: '/i' + }, + // catch all routes (*, /*) must now be defined using a parameter with a custom regex + { path: '/:pathMatch(.*)*', redirect: { name: 'NotFound' } } ]; -/** - * 404页é¢ï¼Œå¿…须在最åŽåŠ è½½ - */ -export const notFoundRoutes = [{ path: "*", redirect: "/404", hidden: true }]; - -export const routes = [...constantRoutes]; - -const createRouter = () => - new Router({ - // mode: 'history', // require service support - scrollBehavior: () => ({ y: 0 }), - routes - }); - -const router = createRouter(); +const router = createRouter({ + history: createWebHashHistory(), + routes +}); -// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 -export function resetRouter() { - const newRouter = createRouter(); - router.matcher = newRouter.matcher; // reset router -} +// set global router guards +router.beforeEach(before); +router.afterEach(after); +export { moduleRoutes }; export default router; diff --git a/WebSite/src/router/modules/demo.js b/WebSite/src/router/modules/demo.js deleted file mode 100644 index 67b8006..0000000 --- a/WebSite/src/router/modules/demo.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:40:16 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:56:32 - */ - -export const demoRoutes = [ - { - path: "icon", - component: () => import("@/views/icons"), - name: "Icon" - }, - { - path: "dashboard", - component: () => import("@/views/dashboard"), - name: "Dashboard" - }, - { - path: "example/index", - component: () => import("@/views/example/index"), - name: "Example" - }, - { - path: "example/button", - component: () => import("@/views/example/button"), - name: "Button" - }, - { - path: "example/table", - component: () => import("@/views/example/table"), - name: "Table" - }, - { - path: "example/dialog", - component: () => import("@/views/example/dialog"), - name: "Dialog" - }, - { - path: "example/icon", - component: () => import("@/views/example/icon"), - name: "Icon" - }, - { - path: "example/layout", - component: () => import("@/views/example/layout"), - name: "Layout" - }, - { - path: "example/form", - component: () => import("@/views/example/form"), - name: "Form" - } -]; diff --git a/WebSite/src/service/base/base.js b/WebSite/src/service/base/base.js deleted file mode 100644 index 675890d..0000000 --- a/WebSite/src/service/base/base.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * @Description: - * @Autor: qun - * @Date: 2020-06-10 14:23:40 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:15:06 - */ - -class Base { - static downloadFile(res) { - if (!res.data) return; - var blob = new Blob([res.data], { type: res.data.type }); - // 针对于IEæµè§ˆå™¨çš„处ç†, å› éƒ¨åˆ†IEæµè§ˆå™¨ä¸æ”¯æŒcreateObjectURL - if (window.navigator && window.navigator.msSaveOrOpenBlob) { - window.navigator.msSaveOrOpenBlob(blob, res.fileName); - } else { - var downloadElement = document.createElement("a"); - var href = window.URL.createObjectURL(blob); // 创建下载的链接 - downloadElement.href = href; - downloadElement.download = res.fileName; // ä¸‹è½½åŽæ–‡ä»¶å - document.body.appendChild(downloadElement); - downloadElement.click(); // 点击下载 - document.body.removeChild(downloadElement); // 下载完æˆç§»é™¤å…ƒç´ - window.URL.revokeObjectURL(href); // 释放掉blob对象 - } - } - - static processRequestData(data) { - if (!data.enabled) { - delete data.enabled; - } - } -} -export { Base }; diff --git a/WebSite/src/service/index.js b/WebSite/src/service/index.js deleted file mode 100644 index f890cc7..0000000 --- a/WebSite/src/service/index.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * @Descripttion: global service module ver .1 - * @Author: dong - * @Date: 2020-05-11 19:56:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-17 14:39:39 - */ - -const modulesFiles = require.context("./modules", true, /\.js$/); - -const modules = modulesFiles.keys().reduce((modules, modulePath) => { - const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1"); - const value = modulesFiles(modulePath); - - const key = moduleName.charAt(0).toUpperCase() + moduleName.slice(1); - modules[key] = value.default; - - return modules; -}, {}); - -// import Organization from "@/service/modules/organization"; -// const modules = { Organization }; - -Object.defineProperty(modules, "invoke", { - value: function(method, ...params) { - let im; - eachMethod(this, (name, m) => { - name === method && (im = m); - }); - if (im) { - return im(...params); - } - }, - writable: false, - enumerable: false, - configurable: false -}); - -function eachMethod(modules, cb) { - Object.keys(modules).forEach(cKey => { - const c = modules[cKey]; - typeof c === "function" && - Object.getOwnPropertyNames(c).forEach(mKey => { - const m = c[mKey]; - typeof m === "function" && cb(`${c.name}/${m.name}`, m); - }); - }); -} - -const service = { - install(Vue) { - Vue.prototype.$service = modules; - } -}; - -export default service; diff --git a/WebSite/src/service/modules/account.js b/WebSite/src/service/modules/account.js deleted file mode 100644 index 78b6caa..0000000 --- a/WebSite/src/service/modules/account.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-11 11:13:25 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:21:52 - */ -import request from "@/utils/request"; -import { Base } from "../base/base"; - -class Account extends Base { - static login(data) { - return request.post("/account/pc/v1/login", data); - } - - static modifyPassword(data) { - return Promise.resolve("success"); - } -} - -export default Account; diff --git a/WebSite/src/service/modules/user.js b/WebSite/src/service/modules/user.js deleted file mode 100644 index 8f7e877..0000000 --- a/WebSite/src/service/modules/user.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @Descripttion: - * @Author: dong - * @Date: 2020-05-11 19:57:33 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-15 17:14:35 - */ -import request from "@/utils/request"; -import { Base } from "../base/base"; - -class User extends Base { - static setCurrent(data) { - return request.post("/user/pc/v1/setCurrent", data); - } - - static getCurrent() { - return request.post("/user/pc/v1/getCurrent"); - } -} - -export default User; diff --git a/WebSite/src/settings.js b/WebSite/src/settings.js deleted file mode 100644 index a96eb55..0000000 --- a/WebSite/src/settings.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:56 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:31:37 - */ -module.exports = { - title: "Vue Element Admin", - - /** - * @type {boolean} true | false - * @description Whether show the settings right-panel - */ - showSettings: false, - - /** - * @type {boolean} true | false - * @description Whether need tagsView - */ - tagsView: true, - - /** - * @type {boolean} true | false - * @description Whether fix the header - */ - fixedHeader: false, - - /** - * @type {boolean} true | false - * @description Whether show the logo in sidebar - */ - sidebarLogo: false, - - /** - * @type {boolean} true | false - * @description Whether show when there is only one root menu - */ - sidebarRootMenu: true, - - /** - * @type {string | array} 'production' | ['production', 'development'] - * @description Need show err logs component. - * The default is only used in the production env - * If you want to also use it in dev, you can pass ['production', 'development'] - */ - errorLog: "production" -}; diff --git a/WebSite/src/store/getters.js b/WebSite/src/store/getters.js index 8e765c5..69ea6ea 100644 --- a/WebSite/src/store/getters.js +++ b/WebSite/src/store/getters.js @@ -1,34 +1,15 @@ /* * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:57 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-14 16:30:05 + * @Autor: dongjunhua + * @Date: 2021-01-27 13:17:54 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-27 13:21:36 */ -import { sidebarRootMenu } from "@/settings"; const getters = { sidebar: state => state.app.sidebar, - size: state => state.app.size, - device: state => state.app.device, - visitedViews: state => state.tagsView.visitedViews, - cachedViews: state => state.tagsView.cachedViews, - token: state => state.user.token, - avatar: state => state.user.avatar, - name: state => state.user.name, - introduction: state => state.user.introduction, - roles: state => state.user.roles, - user: state => state.user.user, - accountId: state => state.user.accountId, - permissionRoutes: state => state.permission.routes, - menuTree: state => { - if (!sidebarRootMenu) { - if (state.user.menuTree.length === 1 && state.user.menuTree[0].children) { - return state.user.menuTree[0].children; - } - } - return state.user.menuTree; - }, - errorLogs: state => state.errorLog.logs + user: state => state.subject.user, + menuList: state => (state.subject.user ? state.subject.user.menuList : []) }; + export default getters; diff --git a/WebSite/src/store/index.js b/WebSite/src/store/index.js index cb6eb46..088dd36 100644 --- a/WebSite/src/store/index.js +++ b/WebSite/src/store/index.js @@ -1,25 +1,27 @@ -import Vue from "vue"; -import Vuex from "vuex"; -import getters from "./getters"; - -Vue.use(Vuex); +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 10:20:47 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-27 13:26:54 + */ +import { createStore } from 'vuex'; +import getters from '@/store/getters'; // https://webpack.js.org/guides/dependency-management/#requirecontext -const modulesFiles = require.context("./modules", true, /\.js$/); +const modulesFiles = require.context('./modules', true, /\.js$/); // you do not need `import app from './modules/app'` // it will auto require all vuex module from modules file const modules = modulesFiles.keys().reduce((modules, modulePath) => { // set './app.js' => 'app' - const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1"); + const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1'); const value = modulesFiles(modulePath); modules[moduleName] = value.default; return modules; }, {}); -const store = new Vuex.Store({ +export default createStore({ modules, getters }); - -export default store; diff --git a/WebSite/src/store/modules/app.js b/WebSite/src/store/modules/app.js index 692dcad..99489e0 100644 --- a/WebSite/src/store/modules/app.js +++ b/WebSite/src/store/modules/app.js @@ -1,52 +1,199 @@ -import Cookies from "js-cookie"; +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-21 09:34:12 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-02-18 16:16:01 + */ +import App from '@/core/model/App'; +import TagView from '@/core/model/TagView'; +import Storage from '@/utils/Storage'; -const state = { - sidebar: { - opened: Cookies.get("sidebarStatus") - ? !!+Cookies.get("sidebarStatus") - : true, - withoutAnimation: false - }, - device: "desktop", - size: Cookies.get("size") || "medium" +import { + version, + coreVersion, + device, + dynamicLoginBg, + fixedHeader, + navbar, + sidebar, + tagsView +} from '@/settings'; + +import { themeConfigs } from '@/settings/theme'; + +const getThemes = () => { + const activeTheme = + Storage.getLocal('app.theme') || + themeConfigs.find(s => s.default).name || + 'default'; + const themes = themeConfigs.map(t => { + return { + name: t.name, + className: t.className, + active: activeTheme === t.name + }; + }); + return themes; }; +const state = new App( + version, + coreVersion, + device, + dynamicLoginBg, + fixedHeader, + getThemes(), + { + enabled: navbar.enabled + }, + { + enabled: sidebar.enabled, + showLogo: sidebar.showLogo, + opened: Storage.getSession('app.sidebar.opened') === false ? false : true, + withoutAnimation: true + }, + { + enabled: tagsView.enabled, + cachedViews: [] + } +); + const mutations = { + SET_DEVICE: (state, device) => { + state.device = device; + }, + CHANGE_THEME: (state, theme) => { + state.sidebar.withoutAnimation = false; + state.themes.forEach(t => { + t.active = t.name === theme; + }); + Storage.setLocal('app.theme', theme); + }, TOGGLE_SIDEBAR: state => { - state.sidebar.opened = !state.sidebar.opened; state.sidebar.withoutAnimation = false; - if (state.sidebar.opened) { - Cookies.set("sidebarStatus", 1); + state.sidebar.opened = !state.sidebar.opened; + Storage.setSession('app.sidebar.opened', state.sidebar.opened); + }, + CLOSE_SIDEBAR: (state, withoutAnimation = true) => { + state.sidebar.withoutAnimation = withoutAnimation; + state.sidebar.opened = false; + Storage.setSession('app.sidebar.opened', state.sidebar.opened); + }, + ADD_TAGVIEW: (state, view) => { + if (state.tagsView.cachedViews.length === 0) { + // try get views from sessionStorage + const sessionViews = Storage.getSession('app.tagsView.cachedViews'); + if (sessionViews && sessionViews.length > 0) { + sessionViews.forEach(v => + state.tagsView.cachedViews.push( + new TagView(v.id, v.name, v.path, v.icon, v.active, v.allowClose) + ) + ); + } + } + // console.log('add', view.name); + const index = state.tagsView.cachedViews.findIndex(v => v.id === view.id); + state.tagsView.cachedViews.forEach(v => (v.active = false)); + if (index < 0) { + state.tagsView.cachedViews.push(view); } else { - Cookies.set("sidebarStatus", 0); + state.tagsView.cachedViews[index].active = true; } + Storage.setSession('app.tagsView.cachedViews', state.tagsView.cachedViews); }, - CLOSE_SIDEBAR: (state, withoutAnimation) => { - Cookies.set("sidebarStatus", 0); - state.sidebar.opened = false; - state.sidebar.withoutAnimation = withoutAnimation; + DEL_TAGVIEW: (state, view) => { + // console.log('del', view.name); + const index = state.tagsView.cachedViews.findIndex(v => v.id === view.id); + if (index > -1) { + const [{ active }] = state.tagsView.cachedViews.splice(index, 1); + if (active) { + // if the view has been deleted is active, change the active view + if (index - 1 > -1) { + state.tagsView.cachedViews[index - 1].active = true; + } else if (index < state.tagsView.cachedViews.length) { + state.tagsView.cachedViews[index].active = true; + } + } + } + Storage.setSession('app.tagsView.cachedViews', state.tagsView.cachedViews); }, - TOGGLE_DEVICE: (state, device) => { - state.device = device; + CLEAR_TAGVIEW: state => { + state.tagsView.cachedViews = []; }, - SET_SIZE: (state, size) => { - state.size = size; - Cookies.set("size", size); + SET_LOADING: (state, loading) => { + state.loading = loading; } }; const actions = { - toggleSideBar({ commit }) { - commit("TOGGLE_SIDEBAR"); + /** + * @method toggleDevice + * @param {*} context + * @param {string} device + */ + setDevice: ({ commit }, device) => { + commit('SET_DEVICE', device); + }, + /** + * @method setTheme + * @param {*} context + * @param {string} theme + */ + setTheme: ({ commit }, theme) => { + commit('CHANGE_THEME', theme); + }, + /** + * @method toggleSideBar + * @param {*} context + */ + toggleSideBar: ({ commit }) => { + commit('TOGGLE_SIDEBAR'); + }, + /** + * @method closeSideBar + * @param {*} context + * @param {*} payload + */ + closeSideBar: ({ commit }, { withoutAnimation }) => { + commit('CLOSE_SIDEBAR', withoutAnimation); + }, + /** + * @method closeSideBar + * @param {*} context + * @param {TagView} view + */ + addTagView: ({ commit }, view) => { + commit('ADD_TAGVIEW', view); + }, + /** + * @method delTagView + * @param {*} context + * @param {TagView} view + */ + delTagView: ({ commit }, view) => { + commit('DEL_TAGVIEW', view); }, - closeSideBar({ commit }, { withoutAnimation }) { - commit("CLOSE_SIDEBAR", withoutAnimation); + /** + * @method clearTagView + * @param {*} context + */ + clearTagView: ({ commit }) => { + commit('CLEAR_TAGVIEW'); }, - toggleDevice({ commit }, device) { - commit("TOGGLE_DEVICE", device); + /** + * @method startLoading + * @param {*} context + */ + startLoading: ({ commit }) => { + commit('SET_LOADING', true); }, - setSize({ commit }, size) { - commit("SET_SIZE", size); + /** + * @method endLoading + * @param {*} context + */ + endLoading: ({ commit }) => { + commit('SET_LOADING', false); } }; diff --git a/WebSite/src/store/modules/errorLog.js b/WebSite/src/store/modules/errorLog.js deleted file mode 100644 index 72bdb4a..0000000 --- a/WebSite/src/store/modules/errorLog.js +++ /dev/null @@ -1,28 +0,0 @@ -const state = { - logs: [] -}; - -const mutations = { - ADD_ERROR_LOG: (state, log) => { - state.logs.push(log); - }, - CLEAR_ERROR_LOG: state => { - state.logs.splice(0); - } -}; - -const actions = { - addErrorLog({ commit }, log) { - commit("ADD_ERROR_LOG", log); - }, - clearErrorLog({ commit }) { - commit("CLEAR_ERROR_LOG"); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/permission.js b/WebSite/src/store/modules/permission.js deleted file mode 100644 index 025b302..0000000 --- a/WebSite/src/store/modules/permission.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:05 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-10 13:48:29 - */ -import { deepClone } from "@/utils/index.js"; -import router, { - constantRoutes, - asyncRoutes, - layoutRoutes, - notFoundRoutes -} from "@/router"; - -const state = { - routes: [] -}; - -const mutations = { - SET_ROUTES: (state, routes) => { - state.routes = routes; - } -}; - -const component = () => import("@/views/outer"); - -function eachMenu(menuList, cb) { - menuList.forEach(m => { - cb(m); - m.children && m.children.length > 0 && eachMenu(m.children, cb); - }); -} - -function getDynamicRoutes(menuList) { - const dynamicRoutes = []; - const layoutRoute = deepClone(layoutRoutes[0]); - - eachMenu(menuList, m => { - if (m.routingUrl && !m.redirectUrl) { - const asyncRoute = asyncRoutes.find(r => r.path === m.routingUrl); - if (asyncRoute) { - const route = deepClone(asyncRoute); - // 设置meta - route.meta = { - icon: m.icon, - title: m.name - }; - // 系统内部路由 - layoutRoute.children.push(route); - // 供外部调用的路由 - const routeForOuter = deepClone(route); - routeForOuter.path = `/${routeForOuter.path}`; - routeForOuter.name = `${routeForOuter.name}ForOuter`; - dynamicRoutes.push(routeForOuter); - } - } - if (m.routingUrl && m.redirectUrl) { - const routeToOuter = { - path: m.routingUrl, - component, - name: `${m.id}ToOuter`, - meta: { - icon: m.icon, - title: m.name - } - }; - layoutRoute.children.push(routeToOuter); - } - }); - dynamicRoutes.push(layoutRoute); - return dynamicRoutes; -} - -const actions = { - /** - * æ ¹æ®å½“å‰ç”¨æˆ·æƒé™åŠ¨æ€æ·»åŠ è·¯ç”± - */ - generateRoutes({ commit }, menuList) { - // - const dynamicRoutes = getDynamicRoutes(menuList); - router.addRoutes(dynamicRoutes); - router.addRoutes(notFoundRoutes); - commit("SET_ROUTES", [ - ...constantRoutes, - ...dynamicRoutes, - ...notFoundRoutes - ]); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/settings.js b/WebSite/src/store/modules/settings.js deleted file mode 100644 index c287845..0000000 --- a/WebSite/src/store/modules/settings.js +++ /dev/null @@ -1,33 +0,0 @@ -import variables from "@/styles/element-variables.scss"; -import defaultSettings from "@/settings"; - -const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings; - -const state = { - theme: variables.theme, - showSettings: showSettings, - tagsView: tagsView, - fixedHeader: fixedHeader, - sidebarLogo: sidebarLogo -}; - -const mutations = { - CHANGE_SETTING: (state, { key, value }) => { - if (state.hasOwnProperty(key)) { - state[key] = value; - } - } -}; - -const actions = { - changeSetting({ commit }, data) { - commit("CHANGE_SETTING", data); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/tagsView.js b/WebSite/src/store/modules/tagsView.js deleted file mode 100644 index 97bd2e7..0000000 --- a/WebSite/src/store/modules/tagsView.js +++ /dev/null @@ -1,160 +0,0 @@ -const state = { - visitedViews: [], - cachedViews: [] -}; - -const mutations = { - ADD_VISITED_VIEW: (state, view) => { - if (state.visitedViews.some(v => v.path === view.path)) return; - state.visitedViews.push( - Object.assign({}, view, { - title: view.meta.title || "no-name" - }) - ); - }, - ADD_CACHED_VIEW: (state, view) => { - if (state.cachedViews.includes(view.name)) return; - if (!view.meta.noCache) { - state.cachedViews.push(view.name); - } - }, - - DEL_VISITED_VIEW: (state, view) => { - for (const [i, v] of state.visitedViews.entries()) { - if (v.path === view.path) { - state.visitedViews.splice(i, 1); - break; - } - } - }, - DEL_CACHED_VIEW: (state, view) => { - const index = state.cachedViews.indexOf(view.name); - index > -1 && state.cachedViews.splice(index, 1); - }, - - DEL_OTHERS_VISITED_VIEWS: (state, view) => { - state.visitedViews = state.visitedViews.filter(v => { - return v.meta.affix || v.path === view.path; - }); - }, - DEL_OTHERS_CACHED_VIEWS: (state, view) => { - const index = state.cachedViews.indexOf(view.name); - if (index > -1) { - state.cachedViews = state.cachedViews.slice(index, index + 1); - } else { - // if index = -1, there is no cached tags - state.cachedViews = []; - } - }, - - DEL_ALL_VISITED_VIEWS: state => { - // keep affix tags - const affixTags = state.visitedViews.filter(tag => tag.meta.affix); - state.visitedViews = affixTags; - }, - DEL_ALL_CACHED_VIEWS: state => { - state.cachedViews = []; - }, - - UPDATE_VISITED_VIEW: (state, view) => { - for (let v of state.visitedViews) { - if (v.path === view.path) { - v = Object.assign(v, view); - break; - } - } - } -}; - -const actions = { - addView({ dispatch }, view) { - dispatch("addVisitedView", view); - dispatch("addCachedView", view); - }, - addVisitedView({ commit }, view) { - commit("ADD_VISITED_VIEW", view); - }, - addCachedView({ commit }, view) { - commit("ADD_CACHED_VIEW", view); - }, - - delView({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch("delVisitedView", view); - dispatch("delCachedView", view); - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }); - }); - }, - delVisitedView({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_VISITED_VIEW", view); - resolve([...state.visitedViews]); - }); - }, - delCachedView({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_CACHED_VIEW", view); - resolve([...state.cachedViews]); - }); - }, - - delOthersViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch("delOthersVisitedViews", view); - dispatch("delOthersCachedViews", view); - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }); - }); - }, - delOthersVisitedViews({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_OTHERS_VISITED_VIEWS", view); - resolve([...state.visitedViews]); - }); - }, - delOthersCachedViews({ commit, state }, view) { - return new Promise(resolve => { - commit("DEL_OTHERS_CACHED_VIEWS", view); - resolve([...state.cachedViews]); - }); - }, - - delAllViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch("delAllVisitedViews", view); - dispatch("delAllCachedViews", view); - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }); - }); - }, - delAllVisitedViews({ commit, state }) { - return new Promise(resolve => { - commit("DEL_ALL_VISITED_VIEWS"); - resolve([...state.visitedViews]); - }); - }, - delAllCachedViews({ commit, state }) { - return new Promise(resolve => { - commit("DEL_ALL_CACHED_VIEWS"); - resolve([...state.cachedViews]); - }); - }, - - updateVisitedView({ commit }, view) { - commit("UPDATE_VISITED_VIEW", view); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/store/modules/user.js b/WebSite/src/store/modules/user.js deleted file mode 100644 index 0fcbaa2..0000000 --- a/WebSite/src/store/modules/user.js +++ /dev/null @@ -1,142 +0,0 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:58 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-08-10 13:17:16 - */ -import { getToken, setToken, removeToken } from "@/utils/auth"; -import router, { resetRouter } from "@/router"; -import Account from "@/service/modules/account"; -import User from "@/service/modules/user"; -import { Message } from "element-ui"; -import { getConfig } from "@/utils/config"; - -const state = { - token: getToken(), - name: "", - avatar: "", - introduction: "", - roles: [], - menuTree: [], - user: null, - accountId: "", - userId: "" -}; - -const mutations = { - SET_TOKEN: (state, token) => { - state.token = token; - }, - SET_INTRODUCTION: (state, introduction) => { - state.introduction = introduction; - }, - SET_NAME: (state, name) => { - state.name = name; - }, - SET_AVATAR: (state, avatar) => { - state.avatar = avatar; - }, - SET_ROLES: (state, roles) => { - state.roles = roles; - }, - SET_MENUTREE: (state, menuTree) => { - state.menuTree = menuTree; - }, - SET_USER: (state, user) => { - state.user = user; - }, - SET_ACCOUNTID: (state, accountId) => { - state.accountId = accountId; - }, - SET_USERID: (state, userId) => { - state.userId = userId; - } -}; - -const actions = { - async login({ commit }, loginInfo) { - loginInfo.rememberMe = true; - const { recognizeId } = await getConfig(); - if (!recognizeId) { - Message.error("请先é…置应用识别id"); - return Promise.reject(); - } - const resLogin = await Account.login({ recognizeId, ...loginInfo }); - const account = resLogin.data[0]; - const { id, users } = resLogin.data[0]; - if (!users || users.length === 0) { - Message.error("当å‰ç™»å½•è´¦å·æ— å¯é€‰ç”¨æˆ·"); - return Promise.reject(); - } - commit("SET_ACCOUNTID", id); - localStorage.setItem("accountId", id); - return account; - }, - - async setUser({ commit }, id) { - await User.setCurrent({ id }); - commit("SET_USERID", id); - commit("SET_TOKEN", id); - setToken(id); - }, - - async getInfo({ commit, dispatch }) { - const accountId = localStorage.getItem("accountId"); - commit("SET_ACCOUNTID", accountId); - - const res = await User.getCurrent(); - const { id, name } = res.data[0]; - const menuTree = res.data[0].menuList; - const roles = ["admin"]; - const avatar = - "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"; - const introduction = ""; - - const data = { roles, menuTree, id, name, avatar, introduction }; - - commit("SET_ROLES", roles); - commit("SET_MENUTREE", menuTree); - commit("SET_NAME", name); - commit("SET_AVATAR", avatar); - commit("SET_INTRODUCTION", introduction); - commit("SET_USER", res.data[0]); - commit("SET_USERID", id); - - dispatch("permission/generateRoutes", menuTree, { root: true }); - - return data; - }, - - // user logout - async logout({ dispatch }) { - await dispatch("resetCache"); - resetRouter(); - - // reset visited views and cached views - // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485 - dispatch("tagsView/delAllViews", null, { root: true }); - }, - - // resst all cache - async resetCache({ commit }) { - commit("SET_ACCOUNTID", null); - commit("SET_TOKEN", null); - commit("SET_ROLES", null); - commit("SET_MENUTREE", null); - commit("SET_NAME", null); - commit("SET_AVATAR", null); - commit("SET_INTRODUCTION", null); - commit("SET_USER", null); - commit("SET_USERID", null); - localStorage.clear(); - removeToken(); - } -}; - -export default { - namespaced: true, - state, - mutations, - actions -}; diff --git a/WebSite/src/styles/element-ui.scss b/WebSite/src/styles/element-ui.scss index 955d3ca..e631084 100644 --- a/WebSite/src/styles/element-ui.scss +++ b/WebSite/src/styles/element-ui.scss @@ -6,7 +6,7 @@ } .el-upload { - input[type="file"] { + input[type='file'] { display: none !important; } } @@ -31,7 +31,7 @@ .fixed-width { .el-button--mini { padding: 7px 10px; - width: 60px; + min-width: 60px; } } @@ -69,7 +69,7 @@ // dropdown .el-dropdown-menu { a { - display: block + display: block; } } @@ -82,3 +82,23 @@ .el-range-separator { box-sizing: content-box; } + +// notification +.el-notification { + background-color: rgba(0, 0, 0, 0.6) !important; + border: 0 !important; + + .el-notification__title { + color: #fff !important; + } + + .el-notification__content { + color: #eee !important; + } + + .el-notification__closeBtn { + &:hover { + color: #ddd !important; + } + } +} diff --git a/WebSite/src/styles/element-variables.scss b/WebSite/src/styles/element-variables.scss index 30a0e6b..5bdc4da 100644 --- a/WebSite/src/styles/element-variables.scss +++ b/WebSite/src/styles/element-variables.scss @@ -6,7 +6,7 @@ /* theme color */ $--color-primary: #1890ff; $--color-success: #13ce66; -$--color-warning: #FFBA00; +$--color-warning: #ffba00; $--color-danger: #ff4949; // $--color-info: #1E1E1E; @@ -17,10 +17,10 @@ $--button-font-weight: 400; $--border-color-light: #dfe4ed; $--border-color-lighter: #e6ebf5; -$--table-border:1px solid#dfe6ec; +$--table-border: 1px solid #dfe6ec; /* icon font path, required */ -$--font-path: '~element-ui/lib/theme-chalk/fonts'; +$--font-path: "~element-ui/lib/theme-chalk/fonts"; @import "~element-ui/packages/theme-chalk/src/index"; diff --git a/WebSite/src/styles/index.scss b/WebSite/src/styles/index.scss index 96095ef..b7327d5 100644 --- a/WebSite/src/styles/index.scss +++ b/WebSite/src/styles/index.scss @@ -4,8 +4,10 @@ @import './element-ui.scss'; @import './sidebar.scss'; @import './btn.scss'; +@import './mixin-theme.scss'; body { + overflow: visible !important; height: 100%; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; @@ -22,7 +24,7 @@ html { box-sizing: border-box; } -#app { +#app,#app-inner { height: 100%; } diff --git a/WebSite/src/styles/reset.scss b/WebSite/src/styles/reset.scss deleted file mode 100644 index b796962..0000000 --- a/WebSite/src/styles/reset.scss +++ /dev/null @@ -1,67 +0,0 @@ -.mtNone { - .el-card__body { - padding-top: 0; - } -} -.tright { - text-align: right; -} -.filter-tree { - .custom-tree-node { - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - font-size: 14px; - padding-right: 8px; - } -} -.mt20 { - margin-top: 20px; -} -.btop { - border-top: 3px solid #3c8dbc; -} -.pd10 { - .el-card__body { - padding: 10px; - } -} -.pnone { - .el-card__body { - padding-top: 0; - } - .el-collapse-item__wrap { - border: none; - } -} - -.overAuto { - overflow: inherit; -} -/* 滚动æ¡ç¾ŽåŒ– */ -::-webkit-scrollbar { - width: 5px; - height: 5px; -} -/*外层轨é“。å¯ä»¥ç”¨display:noneè®©å…¶ä¸æ˜¾ç¤ºï¼Œä¹Ÿå¯ä»¥æ·»åŠ èƒŒæ™¯å›¾ç‰‡ï¼Œé¢œè‰²æ”¹å˜æ˜¾ç¤ºæ•ˆæžœ*/ -::-webkit-scrollbar-track { - width: 6px; - background-color: #fff; - -webkit-border-radius: 2em; - -moz-border-radius: 2em; - border-radius: 2em; -} -/*滚动æ¡çš„设置*/ -::-webkit-scrollbar-thumb { - background-color: #409eff; - background-clip: padding-box; - min-height: 28px; - -webkit-border-radius: 2em; - -moz-border-radius: 2em; - border-radius: 2em; -} -/*滚动æ¡ç§»ä¸ŠåŽ»çš„èƒŒæ™¯*/ -::-webkit-scrollbar-thumb:hover { - background-color: #409eff; -} diff --git a/WebSite/src/styles/sidebar.scss b/WebSite/src/styles/sidebar.scss index 3dad4c3..858fadb 100644 --- a/WebSite/src/styles/sidebar.scss +++ b/WebSite/src/styles/sidebar.scss @@ -8,7 +8,8 @@ } .sidebar-container { - transition: width 0.28s; + transition-property: width,background-color; + transition-duration: 0.28s; width: $sideBarWidth !important; background-color: $menuBg; height: 100%; @@ -27,6 +28,17 @@ .scrollbar-wrapper { overflow-x: hidden !important; + + // fixd on 1.0.2-beta.31 + // scrollbar-width: none will be set on firefox, maybe a bug + // this may cause the display problem on sidebar menu + // set auto to fix + // scrollbar-width: auto !important; + + // fixd on 1.0.2-beta.31 + // margin will lose on m1 mac, maybe a bug + // force set margin + // margin: 0 -17px -17px 0 !important; } .el-scrollbar__bar.is-vertical { @@ -57,6 +69,11 @@ margin-right: 16px; } + .sub-el-icon { + margin-right: 12px; + margin-left: -2px; + } + .el-menu { border: none; height: 100%; @@ -64,25 +81,34 @@ } // menu hover - .submenu-title-noDropdown, - .el-submenu__title { - &:hover { - background-color: $menuHover !important; - } - } + // .submenu-title-noDropdown, + // .el-submenu__title { + // &:hover { + // background-color: $menuHover !important; + // } + // } - .is-active>.el-submenu__title { - color: $subMenuActiveText !important; - } + // .is-active>.el-submenu__title { + // color: $subMenuActiveText !important; + // } & .nest-menu .el-submenu>.el-submenu__title, & .el-submenu .el-menu-item { + min-width: $sideBarWidth !important; - background-color: $subMenuBg !important; + // background-color: $subMenuBg !important; - &:hover { - background-color: $subMenuHover !important; - } + // &:hover { + // background-color: $subMenuHover !important; + // } + } + .el-menu-item{ + border-left: 0 solid rgb(80, 138, 255); + transition: all 0.18s; + } + .el-menu-item.is-active { + + border-left: 5px solid rgb(80, 138, 255); } } @@ -105,6 +131,10 @@ .svg-icon { margin-left: 20px; } + + .sub-el-icon { + margin-left: 19px; + } } } @@ -118,6 +148,10 @@ margin-left: 20px; } + .sub-el-icon { + margin-left: 19px; + } + .el-submenu__icon-arrow { display: none; } @@ -178,16 +212,20 @@ .svg-icon { margin-right: 16px; } - } - - .nest-menu .el-submenu>.el-submenu__title, - .el-menu-item { - &:hover { - // you can use $subMenuHover - background-color: $menuHover !important; + .sub-el-icon { + margin-right: 12px; + margin-left: -2px; } } + // .nest-menu .el-submenu>.el-submenu__title, + // .el-menu-item { + // &:hover { + // // you can use $subMenuHover + // background-color: $menuHover !important; + // } + // } + // the scroll bar appears when the subMenu is too long >.el-menu--popup { max-height: 100vh; diff --git a/WebSite/src/styles/transition.scss b/WebSite/src/styles/transition.scss index 4cb27cc..50dab1a 100644 --- a/WebSite/src/styles/transition.scss +++ b/WebSite/src/styles/transition.scss @@ -1,46 +1,101 @@ // global transition css +// !! there are only six classes can be used in Vue.js 3.x +// v-enter-active,v-enter-from,v-enter-to +// v-leave-active,v-leave-from,v-leave-to +// see detail: https://v3.vuejs.org/guide/transitions-enterleave.html#transition-classes /* fade */ -.fade-enter-active, -.fade-leave-active { +.fade-leave-active, +.fade-enter-active { transition: opacity 0.28s; } -.fade-enter, -.fade-leave-active { +.fade-enter-from, +.fade-leave-to { opacity: 0; } /* fade-transform */ -.fade-transform-leave-active, -.fade-transform-enter-active { - transition: all .5s; +.fade-transform-s-leave-active, +.fade-transform-s-enter-active { + transition: all 0.18s; } -.fade-transform-enter { +.fade-transform-s-enter-from, +.fade-transform-s-leave-to { opacity: 0; - transform: translateX(-30px); + transform: translateX(20px); +} + +.fade-transform-leave-active, +.fade-transform-enter-active { + transition: all 0.5s; } +.fade-transform-enter-from, .fade-transform-leave-to { opacity: 0; transform: translateX(30px); } +.fade-transform-bottom-s-leave-active, +.fade-transform-bottom-s-enter-active { + transition: all 0.18s; +} + +.fade-transform-bottom-s-enter-from, +.fade-transform-bottom-s-leave-to { + opacity: 0; + transform: translateY(20px); +} + +.fade-transform-bottom-leave-active, +.fade-transform-bottom-enter-active { + transition: all 0.5s; +} + +.fade-transform-bottom-enter-from, +.fade-transform-bottom-leave-to { + opacity: 0; + transform: translateY(30px); +} + +.fade-transform-top-s-leave-active, +.fade-transform-top-s-enter-active { + transition: all 0.18s; +} + +.fade-transform-top-s-enter-from, +.fade-transform-top-s-leave-to { + opacity: 0; + transform: translateY(-20px); +} + +.fade-transform-top-leave-active, +.fade-transform-top-enter-active { + transition: all 0.5s; +} + +.fade-transform-top-enter-from, +.fade-transform-top-leave-to { + opacity: 0; + transform: translateY(-30px); +} + /* breadcrumb transition */ .breadcrumb-enter-active, .breadcrumb-leave-active { - transition: all .5s; + transition: all 0.5s; } -.breadcrumb-enter, -.breadcrumb-leave-active { +.breadcrumb-enter-from, +.breadcrumb-leave-to { opacity: 0; transform: translateX(20px); } .breadcrumb-move { - transition: all .5s; + transition: all 0.5s; } .breadcrumb-leave-active { diff --git a/WebSite/src/styles/variables.scss b/WebSite/src/styles/variables.scss index a19c27c..a2f3b19 100644 --- a/WebSite/src/styles/variables.scss +++ b/WebSite/src/styles/variables.scss @@ -1,17 +1,17 @@ // base color -$blue:#324157; -$light-blue:#3A71A8; -$red:#C03639; -$pink: #E65D6E; -$green: #30B08F; -$tiffany: #4AB7BD; -$yellow:#FEC171; -$panGreen: #30B08F; +$blue: #324157; +$light-blue: #3a71a8; +$red: #c03639; +$pink: #e65d6e; +$green: #30b08f; +$tiffany: #4ab7bd; +$yellow: #fec171; +$panGreen: #30b08f; // sidebar -$menuText:#bfcbd9; -$menuActiveText:#409EFF; -$subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951 +$menuText: #bfcbd9; +$menuActiveText: #409eff; +$subMenuActiveText: #f4f4f5; // https://github.com/ElemeFE/element/issues/12951 $menuBg:#304156; $menuHover:#263445; diff --git a/WebSite/src/utils/auth.js b/WebSite/src/utils/auth.js index ba92eea..de4743b 100644 --- a/WebSite/src/utils/auth.js +++ b/WebSite/src/utils/auth.js @@ -1,13 +1,6 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-03-13 10:03:58 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-04-21 09:25:25 - */ import Cookies from "js-cookie"; -const TokenKey = "Admin-Token"; +const TokenKey = "SFP_Verify_Cookie"; export function getToken() { return Cookies.get(TokenKey); diff --git a/WebSite/src/utils/clipboard.js b/WebSite/src/utils/clipboard.js index a44307c..cc22b5c 100644 --- a/WebSite/src/utils/clipboard.js +++ b/WebSite/src/utils/clipboard.js @@ -1,18 +1,25 @@ -import Vue from "vue"; -import Clipboard from "clipboard"; +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 10:12:27 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 10:12:34 + */ +import Vue from 'vue'; +import Clipboard from 'clipboard'; function clipboardSuccess() { Vue.prototype.$message({ - message: "Copy successfully", - type: "success", + message: 'Copy successfully', + type: 'success', duration: 1500 }); } function clipboardError() { Vue.prototype.$message({ - message: "Copy failed", - type: "error" + message: 'Copy failed', + type: 'error' }); } @@ -20,11 +27,11 @@ export default function handleClipboard(text, event) { const clipboard = new Clipboard(event.target, { text: () => text }); - clipboard.on("success", () => { + clipboard.on('success', () => { clipboardSuccess(); clipboard.destroy(); }); - clipboard.on("error", () => { + clipboard.on('error', () => { clipboardError(); clipboard.destroy(); }); diff --git a/WebSite/src/utils/enum.js b/WebSite/src/utils/enum.js index 529a002..6eee786 100644 --- a/WebSite/src/utils/enum.js +++ b/WebSite/src/utils/enum.js @@ -1,19 +1,35 @@ -/* - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-17 15:42:24 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-17 16:12:16 +//使用方法 +/** + * èŽ·å–æžšä¸¾å€¼ï¼šSTATUSMAP.SH + * èŽ·å–æžšä¸¾æè¿°ï¼šSTATUSMAP.getDesc('SH') + * é€šè¿‡æžšä¸¾å€¼èŽ·å–æè¿°ï¼šSTATUSMAP.getDescFromValue('TG') */ -export const EnableInfo = { - YES: "ç¦ç”¨", - NO: "å¯ç”¨" -}; +let EnumYongChe = createEnum({ + 自助: [0, '自助'], + æ»´æ»´: [1, 'æ»´æ»´'], + 曹æ“: [2, '曹æ“'], + 美团: [3, '美团'], + 享é“出行: [4, '享é“出行'], + æºç¨‹: [5, 'æºç¨‹'], + è®¢å•æŽˆæƒ: [6, 'è®¢å•æŽˆæƒ'] +}); -export const UserType = { - ADMIN: "管ç†å‘˜", - TEACHER: "教工", - STUDENT: "å¦ç”Ÿ", - EXTERNAL: "外è˜", - OTHER: "å…¶ä»–" -}; +function createEnum(definition) { + const valueMap = {}; + const descMap = {}; + for (const key of Object.keys(definition)) { + const [value, desc] = definition[key]; + valueMap[key] = value; + descMap[value] = desc; + } + return { + ...valueMap, + getDesc(key) { + return (definition[key] && definition[key][1]) || 'æ— '; + }, + getDescFromValue(value) { + return descMap[value] || 'æ— '; + } + }; +} +export default EnumYongChe; diff --git a/WebSite/src/utils/index.js b/WebSite/src/utils/index.js index 27dcdf3..12d13cc 100644 --- a/WebSite/src/utils/index.js +++ b/WebSite/src/utils/index.js @@ -1,362 +1,388 @@ /** - * Created by PanJiaChen on 16/11/18. + * 判æ–空对象,数组,å—符串,undefined,null + * @param {*} obj */ - -/** - * Parse the time to string - * @param {(Object|string|number)} time - * @param {string} cFormat - * @returns {string | null} - */ -export function parseTime(time, cFormat) { - if (arguments.length === 0) { - return null; +export function isEmpty(obj) { + if ( + typeof obj == 'undefined' || + (!obj && typeof obj != 'undefined' && obj != 0) || + obj == null + ) { + return true; } - const format = cFormat || "{y}-{m}-{d} {h}:{i}:{s}"; - let date; - if (typeof time === "object") { - date = time; - } else { - if (typeof time === "string" && /^[0-9]+$/.test(time)) { - time = parseInt(time); - } - if (typeof time === "number" && time.toString().length === 10) { - time = time * 1000; + for (let i in obj) { + if (Object.prototype.hasOwnProperty.call(obj, i)) { + return false; } - date = new Date(time); - } - const formatObj = { - y: date.getFullYear(), - m: date.getMonth() + 1, - d: date.getDate(), - h: date.getHours(), - i: date.getMinutes(), - s: date.getSeconds(), - a: date.getDay() - }; - const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { - const value = formatObj[key]; - // Note: getDay() returns 0 on Sunday - if (key === "a") { - return ["æ—¥", "一", "二", "三", "å››", "五", "å…"][value]; - } - return value.toString().padStart(2, "0"); - }); - return time_str; -} - -/** - * @param {number} time - * @param {string} option - * @returns {string} - */ -export function formatTime(time, option) { - if (("" + time).length === 10) { - time = parseInt(time) * 1000; - } else { - time = +time; } - const d = new Date(time); - const now = Date.now(); - - const diff = (now - d) / 1000; - - if (diff < 30) { - return "刚刚"; - } else if (diff < 3600) { - // less 1 hour - return Math.ceil(diff / 60) + "分钟å‰"; - } else if (diff < 3600 * 24) { - return Math.ceil(diff / 3600) + "å°æ—¶å‰"; - } else if (diff < 3600 * 24 * 2) { - return "1天å‰"; - } - if (option) { - return parseTime(time, option); - } else { - return ( - d.getMonth() + - 1 + - "月" + - d.getDate() + - "æ—¥" + - d.getHours() + - "æ—¶" + - d.getMinutes() + - "分" - ); + if (typeof obj === 'number') { + return false; } + return true; } -/** - * @param {string} url - * @returns {Object} - */ -export function getQueryObject(url) { - url = url == null ? window.location.href : url; - const search = url.substring(url.lastIndexOf("?") + 1); - const obj = {}; - const reg = /([^?&=]+)=([^?&=]*)/g; - search.replace(reg, (rs, $1, $2) => { - const name = decodeURIComponent($1); - let val = decodeURIComponent($2); - val = String(val); - obj[name] = val; - return rs; - }); - return obj; +export function isNotEmpty(obj) { + return !isEmpty(obj); } /** - * @param {string} input value - * @returns {number} output value + * @name {防抖} */ -export function byteLength(str) { - // returns the byte length of an utf8 string - let s = str.length; - for (var i = str.length - 1; i >= 0; i--) { - const code = str.charCodeAt(i); - if (code > 0x7f && code <= 0x7ff) s++; - else if (code > 0x7ff && code <= 0xffff) s += 2; - if (code >= 0xdc00 && code <= 0xdfff) i--; - } - return s; -} - -/** - * @param {Array} actual - * @returns {Array} - */ -export function cleanArray(actual) { - const newArray = []; - for (let i = 0; i < actual.length; i++) { - if (actual[i]) { - newArray.push(actual[i]); +export function debounce(fn, delay) { + let timer = null; + return function () { + if (timer) { + clearTimeout(timer); } - } - return newArray; + timer = setTimeout(() => { + fn.call(this, arguments); + timer = null; + }, delay); + }; } /** - * @param {Object} json - * @returns {Array} + * @name {节æµ} + * @param {*} fn + * @param {*} delay */ -export function param(json) { - if (!json) return ""; - return cleanArray( - Object.keys(json).map(key => { - if (json[key] === undefined) return ""; - return encodeURIComponent(key) + "=" + encodeURIComponent(json[key]); - }) - ).join("&"); +export function throttle(fn, delay) { + let timer = null; + return function () { + if (!timer) { + timer = setTimeout(() => { + fn.call(this, arguments); + timer = null; + }, delay); + } + }; } /** - * @param {string} url - * @returns {Object} + * èŽ·å–æ‰€æœ‰url傿•° */ -export function param2Obj(url) { - const search = url.split("?")[1]; - if (!search) { - return {}; +export function getQueryStringArgs() { + // å–得没有开头问å·çš„æŸ¥è¯¢å—符串 + let qs = location.search.length > 0 ? location.search.substring(1) : '', + // ä¿å˜æ•°æ®çš„对象 + args = {}; + // 把æ¯ä¸ªå‚æ•°æ·»åŠ åˆ° args 对象 + for (let item of qs.split('&').map((kv) => kv.split('='))) { + let name = decodeURIComponent(item[0]), + value = decodeURIComponent(item[1]); + if (name.length) { + args[name] = value; + } } - return JSON.parse( - '{"' + - decodeURIComponent(search) - .replace(/"/g, '\\"') - .replace(/&/g, '","') - .replace(/=/g, '":"') - .replace(/\+/g, " ") + - '"}' - ); -} - -/** - * @param {string} val - * @returns {string} - */ -export function html2Text(val) { - const div = document.createElement("div"); - div.innerHTML = val; - return div.textContent || div.innerText; + return args; } /** - * Merges two objects, giving the last one precedence - * @param {Object} target - * @param {(Object|Array)} source - * @returns {Object} + * @name {拼接url傿•°} */ -export function objectMerge(target, source) { - if (typeof target !== "object") { - target = {}; - } - if (Array.isArray(source)) { - return source.slice(); - } - Object.keys(source).forEach(property => { - const sourceProperty = source[property]; - if (typeof sourceProperty === "object") { - target[property] = objectMerge(target[property], sourceProperty); +export function urlParamCombine(obj) { + let param = '?'; + for (let key in obj) { + obj[key] = obj[key] == null ? '' : obj[key]; + if (Array.isArray(obj[key]) || typeof obj[key] == 'object') { + for (let k in obj[key]) { + param += k + '=' + obj[key][k] + '&'; + } } else { - target[property] = sourceProperty; + param += key + '=' + obj[key] + '&'; } - }); - return target; + } + return param.substr(0, param.length - 1); } /** - * @param {HTMLElement} element - * @param {string} className + * æ ¼å¼åŒ–æ—¶é—´ */ -export function toggleClass(element, className) { - if (!element || !className) { - return; - } - let classString = element.className; - const nameIndex = classString.indexOf(className); - if (nameIndex === -1) { - classString += "" + className; +export function formatTime( + dateOrTimestamp, + format = 'yyyy-MM-dd HH:mm:ss.SSS', + isMomentAgo = false, + isHideThisYear = false +) { + let date; + if (dateOrTimestamp instanceof Date) { + date = dateOrTimestamp; } else { - classString = - classString.substr(0, nameIndex) + - classString.substr(nameIndex + className.length); + if (/^-?\d+$/.test(dateOrTimestamp)) { + date = new Date(parseInt(dateOrTimestamp)); + } else if (new Date(dateOrTimestamp).toString() != 'Invalid Date') { + date = new Date(dateOrTimestamp); + } else { + console.error('æ—¶é—´æ ¼å¼åŒ–å¤±è´¥ï¼Œå‚æ•°dateOrStamp错误:', dateOrTimestamp); + return '时间错误'; + } } - element.className = classString; -} -/** - * @param {string} type - * @returns {Date} - */ -export function getTime(type) { - if (type === "start") { - return new Date().getTime() - 3600 * 1000 * 24 * 90; - } else { - return new Date(new Date().toDateString()); + if (isHideThisYear && new Date().getFullYear() == date.getFullYear()) { + let matchRes = format.match(/M.*/); + if (matchRes && matchRes.length) { + format = matchRes[0]; + } } -} -/** - * @param {Function} func - * @param {number} wait - * @param {boolean} immediate - * @return {*} - */ -export function debounce(func, wait, immediate) { - let timeout, args, context, timestamp, result; + let dict = { + yyyy: date.getFullYear(), + M: date.getMonth() + 1, + d: date.getDate(), + H: date.getHours(), + m: date.getMinutes(), + s: date.getSeconds(), + S: ('' + (date.getMilliseconds() + 1000)).substring(1), + MM: ('' + (date.getMonth() + 101)).substring(1), + dd: ('' + (date.getDate() + 100)).substring(1), + HH: ('' + (date.getHours() + 100)).substring(1), + mm: ('' + (date.getMinutes() + 100)).substring(1), + ss: ('' + (date.getSeconds() + 100)).substring(1) + }; - const later = function() { - // æ®ä¸Šä¸€æ¬¡è§¦å‘æ—¶é—´é—´éš” - const last = +new Date() - timestamp; + if (isMomentAgo) { + if (this.isToday(date)) { + let diffMin = parseInt((+new Date() - +date) / 1000 / 60); //时间差(å•ä½åˆ†é’Ÿï¼‰ + let diffHour = parseInt(diffMin / 60); + if (diffMin < 1) { + return '刚刚'; + } else if (diffMin < 60) { + return diffMin + '分钟å‰'; + } else if (diffHour < 6) { + return diffHour + 'å°æ—¶å‰'; + } else { + if (format.indexOf('H') > -1) { + format = format.replace(/[\s\S].*?(?=H)/g, ''); + } else if (format.indexOf('m') > -1) { + format = format.replace(/[\s\S].*?(?=m)/g, ''); + } else if (format.indexOf('s') > -1) { + format = format.replace(/[\s\S].*?(?=s)/g, ''); + } else if (format.indexOf('S') > -1) { + format = format.replace(/[\s\S].*?(?=S)/g, ''); + } - // 上次被包装函数被调用时间间隔 last å°äºŽè®¾å®šæ—¶é—´é—´éš” wait - if (last < wait && last > 0) { - timeout = setTimeout(later, wait - last); - } else { - timeout = null; - // 如果设定为immediate===trueï¼Œå› ä¸ºå¼€å§‹è¾¹ç•Œå·²ç»è°ƒç”¨è¿‡äº†æ¤å¤„æ— éœ€è°ƒç”¨ - if (!immediate) { - result = func.apply(context, args); - if (!timeout) context = args = null; + if ( + format.indexOf('H') < 0 && + format.indexOf('s') < 0 && + format.indexOf('m') < 0 && + format.indexOf('S') < 0 + ) { + format = ''; //当Hms都ä¸å˜åœ¨çš„æ—¶å€™ï¼Œç§»é™¤ MM-ddçš„æ ¼å¼åŒ– + } + + let result = + '今天 ' + + format.replace(/(H+|s+|m+|S)/g, function (a) { + return dict[a]; + }); + return result.trim(); + } + } else if (this.isYesterday(date)) { + if (format.indexOf('H') > -1) { + format = format.replace(/[\s\S].*?(?=H)/g, ''); + } else if (format.indexOf('m') > -1) { + format = format.replace(/[\s\S].*?(?=m)/g, ''); + } else if (format.indexOf('s') > -1) { + format = format.replace(/[\s\S].*?(?=s)/g, ''); + } else if (format.indexOf('S') > -1) { + format = format.replace(/[\s\S].*?(?=S)/g, ''); } - } - }; - return function(...args) { - context = this; - timestamp = +new Date(); - const callNow = immediate && !timeout; - // 如果延时ä¸å˜åœ¨ï¼Œé‡æ–°è®¾å®šå»¶æ—¶ - if (!timeout) timeout = setTimeout(later, wait); - if (callNow) { - result = func.apply(context, args); - context = args = null; - } + if ( + format.indexOf('H') < 0 && + format.indexOf('s') < 0 && + format.indexOf('m') < 0 && + format.indexOf('S') < 0 + ) { + format = ''; //当Hms都ä¸å˜åœ¨çš„æ—¶å€™ï¼Œç§»é™¤ MM-ddçš„æ ¼å¼åŒ– + } - return result; - }; -} + let result = + '昨天 ' + + format.replace(/(H+|s+|m+|S)/g, function (a) { + return dict[a]; + }); -/** - * This is just a simple version of deep copy - * Has a lot of edge cases bug - * If you want to use a perfect deep copy, use lodash's _.cloneDeep - * @param {Object} source - * @returns {Object} - */ -export function deepClone(source) { - if (!source && typeof source !== "object") { - throw new Error("error arguments", "deepClone"); - } - const targetObj = source.constructor === Array ? [] : {}; - Object.keys(source).forEach(keys => { - if (source[keys] && typeof source[keys] === "object") { - targetObj[keys] = deepClone(source[keys]); - } else { - targetObj[keys] = source[keys]; + return result.trim(); } + } + + return format.replace(/(y+|M+|d+|H+|s+|m+|S)/g, function (a) { + return dict[a]; }); - return targetObj; } -// export function deepClone(p) { -// if (typeof p === "object" && p !== null) { -// if (Array.isArray(p)) { -// return p.map(item => deepClone(item)); -// } else { -// const newObj = {}; -// Object.keys(p).forEach(key => (newObj[key] = deepCopy(p[key]))); -// return newObj; -// } -// } else { -// return p; -// } -// } -/** - * @param {Array} arr - * @returns {Array} - */ -export function uniqueArr(arr) { - return Array.from(new Set(arr)); +export function moneyThousandsSep(number) { + number = (number + '').replace(/[^0-9+-Ee.]/g, ''); + const s = number.split('.'); + const re = /(-?\d+)(\d{3})/; + while (re.test(s[0])) { + s[0] = s[0].replace(re, `$1,$2`); + } + return s.join('.'); } /** - * @returns {string} + * money formatting + * @method: moneyFormatter + * @param {Number} number è¦æ ¼å¼åŒ–çš„æ•°å— + * @param {Number} decimals ä¿ç•™å‡ ä½å°æ•° + * @param {String} thousandsSep åƒåˆ†ä½ç¬¦å· + * @return {String} */ -export function createUniqueString() { - const timestamp = +new Date() + ""; - const randomNum = parseInt((1 + Math.random()) * 65536) + ""; - return (+(randomNum + timestamp)).toString(32); +export function moneyFormat(number, decimals, thousandsSep = '') { + number = (number + '').replace(/[^0-9+-Ee.]/g, ''); + const n = !isFinite(+number) ? 0 : +number, + prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), + toFixedFix = function (n, prec) { + const k = Math.pow(10, prec); + return '' + Math.round(operate(n, k, '*')) / k; + }; + + const s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); + const re = /(-?\d+)(\d{3})/; + while (re.test(s[0]) && thousandsSep) { + s[0] = s[0].replace(re, `$1${thousandsSep}$2`); + } + + if ((s[1] || '').length < prec) { + s[1] = s[1] || ''; + s[1] += new Array(prec - s[1].length + 1).join('0'); + } + return s.join('.'); +} +// ä¿ç•™ä¸¤ä½å°æ•° +export function toThousands(num) { + num += ''; + // eslint-disable-next-line no-useless-escape + // 清除å—符串ä¸çš„éžæ•°å—éžâ€œ.â€å—符 + // eslint-disable-next-line no-useless-escape + num = num.replace(/[^0-9|\.]/g, ''); + // 清除å—符串开头的0 + num = num.replace(/^0+/, ''); + if (!/\./.test(num)) { + // 为整数å—ç¬¦ä¸²åœ¨æœ«å°¾æ·»åŠ .00 + num += '.00'; + } + if (/^\./.test(num)) { + // å—符以.开头时,åœ¨å¼€å¤´æ·»åŠ 0 + num = '0' + num; + } + num += '00'; + let numMatch = num.match(/\d+\.\d{2}/); + num = numMatch ? numMatch[0] : '0.00'; + num = (num || 0).toString().replace(/^\./g, ''); + // eslint-disable-next-line no-useless-escape + num = num.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); + let arr = num.split('.'); + let num1 = (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); + let resultNumStr = arr[1] == undefined ? num1 + '' : num1 + '.' + arr[1]; + return resultNumStr; +} +// å°†åƒåˆ†ç¬¦æ ¼å¼çš„金颿•°å—è½¬åŒ–æˆæ™®é€šæ ¼å¼çš„æ•°å— +export function moneyToNumValue(val) { + val += ''; + var num = val.trim(); + var ss = num.toString(); + if (ss.length == 0) { + return '0.00'; + } + return ss.replace(/,/g, ''); +} +function toIntObj(num) { + const rel = {}; + const str = num < 0 ? -num + '' : num + ''; + const pos = str.indexOf('.'); + const len = pos > -1 ? str.slice(pos + 1).length : 0; + rel.num = parseFloat(num.toString().replace(/\./g, '')); //åŽ»æŽ‰å°æ•°ç‚¹è½¬ä¸ºæ•´æ•°; + rel.len = len; + return rel; } -/** - * Check if an element has a class - * @param {HTMLElement} elm - * @param {string} cls - * @returns {boolean} - */ -export function hasClass(ele, cls) { - return !!ele.className.match(new RegExp("(\\s|^)" + cls + "(\\s|$)")); +//计算过程 +export function operate(a, b, op) { + const d1 = toIntObj(a); + const d2 = toIntObj(b); + const maxlen = d1.len > d2.len ? d1.len : d2.len; //å°æ•°ä½çš„æœ€å¤§å€¼ + const max = Math.pow(10, maxlen); + const o1 = d1.len < maxlen ? d1.num * Math.pow(10, maxlen - d1.len) : d1.num; //å¦‚æžœå°æ•°ä½å°äºŽæœ€å¤§å€¼ï¼Œåˆ™è¡¥å·® + const o2 = d2.len < maxlen ? d2.num * Math.pow(10, maxlen - d2.len) : d2.num; + switch (op) { + case '+': + return (o1 + o2) / max; + case '-': + return (o1 - o2) / max; + case '*': + return (o1 * o2) / (max * max); + case '/': + return o1 / o2; + } } -/** - * Add class to element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function addClass(ele, cls) { - if (!hasClass(ele, cls)) ele.className += " " + cls; +export function downloadBase64File(base64, name) { + const blob = base64ToBlob(base64); + downloadBlobFile(blob, name); +} +export function downloadBlobFile(blob, name) { + if ('msSaveOrOpenBlob' in navigator) { + window.navigator.msSaveOrOpenBlob(blob, name); + return; + } + const href = window.URL.createObjectURL(blob); + downUrlFile(href, name); + window.URL.revokeObjectURL(href); // é‡Šæ”¾å†…å˜ +} +export function downUrlFile(url, name) { + const eleLink = document.createElement('a'); + eleLink.download = name; + eleLink.style.display = 'none'; + eleLink.href = url; + document.body.appendChild(eleLink); + eleLink.click(); + document.body.removeChild(eleLink); } -/** - * Remove class from element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function removeClass(ele, cls) { - if (hasClass(ele, cls)) { - const reg = new RegExp("(\\s|^)" + cls + "(\\s|$)"); - ele.className = ele.className.replace(reg, " "); +//æ–‡ä»¶ç±»åž‹è½¬æ¢ +export function fileToBase64(file) { + const reader = new FileReader(); + reader.readAsDataURL(file); + return reader.result; +} +export function base64ToFile(base64, name) { + let arr = base64.split(','), + mime = arr[0].match(/:(.*?);/)[1], + bstr = atob(arr[1]), + n = bstr.length, + u8arr = new Uint8Array(n); + while (n--) { + u8arr[n] = bstr.charCodeAt(n); } + return new File([u8arr], name, { type: mime }); +} +export function base64ToBlob(base64) { + const mimeString = base64.split(',')[0].split(':')[1].split(';')[0]; + let binary = atob(base64.replace(/\s/g, '')); + let len = binary.length; + let buffer = new ArrayBuffer(len); + let view = new Uint8Array(buffer); + for (let i = 0; i < len; i++) { + view[i] = binary.charCodeAt(i); + } + return new Blob([view], { type: mimeString }); +} +export function base64ToUrl(base64) { + const blob = base64ToBlob(base64); + return URL.createObjectURL(blob); } +export default { + isEmpty, + isNotEmpty, + debounce, + throttle, + urlParamCombine, + formatTime, + moneyFormat, + downloadBase64File, + downUrlFile, + base64ToUrl +}; diff --git a/WebSite/src/utils/loading.js b/WebSite/src/utils/loading.js index e761c21..13f997e 100644 --- a/WebSite/src/utils/loading.js +++ b/WebSite/src/utils/loading.js @@ -6,7 +6,7 @@ * @LastEditTime: 2020-06-18 13:01:12 */ -import { Loading } from "element-ui"; +import { Loading } from "element-plus"; let loading; let loadCount = 0; export function startLoading() { diff --git a/WebSite/src/utils/request.js b/WebSite/src/utils/request.js index 60b0342..bf66790 100644 --- a/WebSite/src/utils/request.js +++ b/WebSite/src/utils/request.js @@ -70,26 +70,27 @@ service.interceptors.response.use( const res = response.data; // if the custom code is not 20000, it is judged as an error. - if (res.code !== 20000 && res.code !== "00000") { - Message({ - message: res.message || res.description || "Error", - type: "error", - duration: 5 * 1000 - }); + // if (res.code !== 20000 && res.code !== "00000") { + // Message({ + // message: res.message || res.description || "Error", + // type: "error", + // duration: 5 * 1000 + // }); - // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; - if (res.code === "10000") { - // to re-login - store.dispatch("user/logout").then(() => { - router.push("/login"); - }); - } - return Promise.reject( - new Error(res.message || res.description || "Error") - ); - } else { - return res; - } + // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; + // if (res.code === "10000") { + // // to re-login + // store.dispatch("user/logout").then(() => { + // router.push("/login"); + // }); + // } + // return Promise.reject( + // new Error(res.message || res.description || "Error") + // ); + // } else { + // return res; + // } + return res; }, error => { endLoading(); diff --git a/WebSite/src/utils/validate.js b/WebSite/src/utils/validate.js index c86a80c..79389f9 100644 --- a/WebSite/src/utils/validate.js +++ b/WebSite/src/utils/validate.js @@ -1,3 +1,10 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-18 11:17:43 + * @LastEditors: dongjunhua + * @LastEditTime: 2020-12-18 11:19:03 + */ /** * Created by PanJiaChen on 16/11/18. */ @@ -15,7 +22,7 @@ export function isExternal(path) { * @returns {Boolean} */ export function validUsername(str) { - const valid_map = ["admin", "editor"]; + const valid_map = ['admin', 'editor']; return valid_map.indexOf(str.trim()) >= 0; } @@ -60,7 +67,7 @@ export function validAlphabets(str) { * @returns {Boolean} */ export function validEmail(email) { - const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + const reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return reg.test(email); } @@ -69,7 +76,7 @@ export function validEmail(email) { * @returns {Boolean} */ export function isString(str) { - if (typeof str === "string" || str instanceof String) { + if (typeof str === 'string' || str instanceof String) { return true; } return false; @@ -80,8 +87,8 @@ export function isString(str) { * @returns {Boolean} */ export function isArray(arg) { - if (typeof Array.isArray === "undefined") { - return Object.prototype.toString.call(arg) === "[object Array]"; + if (typeof Array.isArray === 'undefined') { + return Object.prototype.toString.call(arg) === '[object Array]'; } return Array.isArray(arg); } diff --git a/WebSite/src/vendor/Export2Excel.js b/WebSite/src/vendor/Export2Excel.js deleted file mode 100644 index d8a2af3..0000000 --- a/WebSite/src/vendor/Export2Excel.js +++ /dev/null @@ -1,220 +0,0 @@ -/* eslint-disable */ -import { saveAs } from 'file-saver' -import XLSX from 'xlsx' - -function generateArray(table) { - var out = []; - var rows = table.querySelectorAll('tr'); - var ranges = []; - for (var R = 0; R < rows.length; ++R) { - var outRow = []; - var row = rows[R]; - var columns = row.querySelectorAll('td'); - for (var C = 0; C < columns.length; ++C) { - var cell = columns[C]; - var colspan = cell.getAttribute('colspan'); - var rowspan = cell.getAttribute('rowspan'); - var cellValue = cell.innerText; - if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue; - - //Skip ranges - ranges.forEach(function (range) { - if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) { - for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null); - } - }); - - //Handle Row Span - if (rowspan || colspan) { - rowspan = rowspan || 1; - colspan = colspan || 1; - ranges.push({ - s: { - r: R, - c: outRow.length - }, - e: { - r: R + rowspan - 1, - c: outRow.length + colspan - 1 - } - }); - }; - - //Handle Value - outRow.push(cellValue !== "" ? cellValue : null); - - //Handle Colspan - if (colspan) - for (var k = 0; k < colspan - 1; ++k) outRow.push(null); - } - out.push(outRow); - } - return [out, ranges]; -}; - -function datenum(v, date1904) { - if (date1904) v += 1462; - var epoch = Date.parse(v); - return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); -} - -function sheet_from_array_of_arrays(data, opts) { - var ws = {}; - var range = { - s: { - c: 10000000, - r: 10000000 - }, - e: { - c: 0, - r: 0 - } - }; - for (var R = 0; R != data.length; ++R) { - for (var C = 0; C != data[R].length; ++C) { - if (range.s.r > R) range.s.r = R; - if (range.s.c > C) range.s.c = C; - if (range.e.r < R) range.e.r = R; - if (range.e.c < C) range.e.c = C; - var cell = { - v: data[R][C] - }; - if (cell.v == null) continue; - var cell_ref = XLSX.utils.encode_cell({ - c: C, - r: R - }); - - if (typeof cell.v === 'number') cell.t = 'n'; - else if (typeof cell.v === 'boolean') cell.t = 'b'; - else if (cell.v instanceof Date) { - cell.t = 'n'; - cell.z = XLSX.SSF._table[14]; - cell.v = datenum(cell.v); - } else cell.t = 's'; - - ws[cell_ref] = cell; - } - } - if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range); - return ws; -} - -function Workbook() { - if (!(this instanceof Workbook)) return new Workbook(); - this.SheetNames = []; - this.Sheets = {}; -} - -function s2ab(s) { - var buf = new ArrayBuffer(s.length); - var view = new Uint8Array(buf); - for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; - return buf; -} - -export function export_table_to_excel(id) { - var theTable = document.getElementById(id); - var oo = generateArray(theTable); - var ranges = oo[1]; - - /* original data */ - var data = oo[0]; - var ws_name = "SheetJS"; - - var wb = new Workbook(), - ws = sheet_from_array_of_arrays(data); - - /* add ranges to worksheet */ - // ws['!cols'] = ['apple', 'banan']; - ws['!merges'] = ranges; - - /* add worksheet to workbook */ - wb.SheetNames.push(ws_name); - wb.Sheets[ws_name] = ws; - - var wbout = XLSX.write(wb, { - bookType: 'xlsx', - bookSST: false, - type: 'binary' - }); - - saveAs(new Blob([s2ab(wbout)], { - type: "application/octet-stream" - }), "test.xlsx") -} - -export function export_json_to_excel({ - multiHeader = [], - header, - data, - filename, - merges = [], - autoWidth = true, - bookType = 'xlsx' -} = {}) { - /* original data */ - filename = filename || 'excel-list' - data = [...data] - data.unshift(header); - - for (let i = multiHeader.length - 1; i > -1; i--) { - data.unshift(multiHeader[i]) - } - - var ws_name = "SheetJS"; - var wb = new Workbook(), - ws = sheet_from_array_of_arrays(data); - - if (merges.length > 0) { - if (!ws['!merges']) ws['!merges'] = []; - merges.forEach(item => { - ws['!merges'].push(XLSX.utils.decode_range(item)) - }) - } - - if (autoWidth) { - /*设置worksheetæ¯åˆ—的最大宽度*/ - const colWidth = data.map(row => row.map(val => { - /*å…ˆåˆ¤æ–æ˜¯å¦ä¸ºnull/undefined*/ - if (val == null) { - return { - 'wch': 10 - }; - } - /*å†åˆ¤æ–是å¦ä¸ºä¸æ–‡*/ - else if (val.toString().charCodeAt(0) > 255) { - return { - 'wch': val.toString().length * 2 - }; - } else { - return { - 'wch': val.toString().length - }; - } - })) - /*以第一行为åˆå§‹å€¼*/ - let result = colWidth[0]; - for (let i = 1; i < colWidth.length; i++) { - for (let j = 0; j < colWidth[i].length; j++) { - if (result[j]['wch'] < colWidth[i][j]['wch']) { - result[j]['wch'] = colWidth[i][j]['wch']; - } - } - } - ws['!cols'] = result; - } - - /* add worksheet to workbook */ - wb.SheetNames.push(ws_name); - wb.Sheets[ws_name] = ws; - - var wbout = XLSX.write(wb, { - bookType: bookType, - bookSST: false, - type: 'binary' - }); - saveAs(new Blob([s2ab(wbout)], { - type: "application/octet-stream" - }), `${filename}.${bookType}`); -} diff --git a/WebSite/src/vendor/Export2Zip.js b/WebSite/src/vendor/Export2Zip.js deleted file mode 100644 index db70707..0000000 --- a/WebSite/src/vendor/Export2Zip.js +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable */ -import { saveAs } from 'file-saver' -import JSZip from 'jszip' - -export function export_txt_to_zip(th, jsonData, txtName, zipName) { - const zip = new JSZip() - const txt_name = txtName || 'file' - const zip_name = zipName || 'file' - const data = jsonData - let txtData = `${th}\r\n` - data.forEach((row) => { - let tempStr = '' - tempStr = row.toString() - txtData += `${tempStr}\r\n` - }) - zip.file(`${txt_name}.txt`, txtData) - zip.generateAsync({ - type: "blob" - }).then((blob) => { - saveAs(blob, `${zip_name}.zip`) - }, (err) => { - alert('导出失败') - }) -} diff --git a/WebSite/src/views/charts/keyboard.vue b/WebSite/src/views/charts/keyboard.vue deleted file mode 100644 index 8252211..0000000 --- a/WebSite/src/views/charts/keyboard.vue +++ /dev/null @@ -1,22 +0,0 @@ -<template> - <div class="chart-container"> - <chart height="100%" width="100%" /> - </div> -</template> - -<script> -import Chart from "@/components/Charts/Keyboard"; - -export default { - name: "KeyboardChart", - components: { Chart } -}; -</script> - -<style scoped> -.chart-container { - position: relative; - width: 100%; - height: calc(100vh - 84px); -} -</style> diff --git a/WebSite/src/views/charts/line.vue b/WebSite/src/views/charts/line.vue deleted file mode 100644 index e638010..0000000 --- a/WebSite/src/views/charts/line.vue +++ /dev/null @@ -1,22 +0,0 @@ -<template> - <div class="chart-container"> - <chart height="100%" width="100%" /> - </div> -</template> - -<script> -import Chart from "@/components/Charts/LineMarker"; - -export default { - name: "LineChart", - components: { Chart } -}; -</script> - -<style scoped> -.chart-container { - position: relative; - width: 100%; - height: calc(100vh - 84px); -} -</style> diff --git a/WebSite/src/views/charts/mix-chart.vue b/WebSite/src/views/charts/mix-chart.vue deleted file mode 100644 index 7bdc487..0000000 --- a/WebSite/src/views/charts/mix-chart.vue +++ /dev/null @@ -1,22 +0,0 @@ -<template> - <div class="chart-container"> - <chart height="100%" width="100%" /> - </div> -</template> - -<script> -import Chart from "@/components/Charts/MixChart"; - -export default { - name: "MixChart", - components: { Chart } -}; -</script> - -<style scoped> -.chart-container { - position: relative; - width: 100%; - height: calc(100vh - 84px); -} -</style> diff --git a/WebSite/src/views/clipboard/index.vue b/WebSite/src/views/clipboard/index.vue deleted file mode 100644 index e296dda..0000000 --- a/WebSite/src/views/clipboard/index.vue +++ /dev/null @@ -1,65 +0,0 @@ -<template> - <div class="app-container"> - <el-tabs v-model="activeName"> - <el-tab-pane label="use clipboard directly" name="directly"> - <el-input - v-model="inputData" - placeholder="Please input" - style="width:400px;max-width:100%;" - /> - <el-button - type="primary" - icon="el-icon-document" - @click="handleCopy(inputData, $event)" - > - copy - </el-button> - </el-tab-pane> - <el-tab-pane label="use clipboard by v-directive" name="v-directive"> - <el-input - v-model="inputData" - placeholder="Please input" - style="width:400px;max-width:100%;" - /> - <el-button - v-clipboard:copy="inputData" - v-clipboard:success="clipboardSuccess" - type="primary" - icon="el-icon-document" - > - copy - </el-button> - </el-tab-pane> - </el-tabs> - </div> -</template> - -<script> -import clip from "@/utils/clipboard"; // use clipboard directly -import clipboard from "@/directive/clipboard/index.js"; // use clipboard by v-directive - -export default { - name: "ClipboardDemo", - directives: { - clipboard - }, - data() { - return { - activeName: "directly", - inputData: "https://github.com/PanJiaChen/vue-element-admin" - }; - }, - methods: { - handleCopy(text, event) { - clip(text, event); - }, - clipboardSuccess() { - this.$message({ - message: "Copy successfully", - type: "success", - duration: 1500 - }); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/avatar-upload.vue b/WebSite/src/views/components-demo/avatar-upload.vue deleted file mode 100644 index ea12253..0000000 --- a/WebSite/src/views/components-demo/avatar-upload.vue +++ /dev/null @@ -1,69 +0,0 @@ -<template> - <div class="components-container"> - <aside> - This is based on - <a class="link-type" href="//github.com/dai-siki/vue-image-crop-upload"> - vue-image-crop-upload</a - >. Since I was using only the vue@1 version, and it is not compatible with - mockjs at the moment, I modified it myself, and if you are going to use - it, it is better to use official version. - </aside> - - <pan-thumb :image="image" /> - - <el-button - type="primary" - icon="el-icon-upload" - style="position: absolute;bottom: 15px;margin-left: 40px;" - @click="imagecropperShow = true" - > - Change Avatar - </el-button> - - <image-cropper - v-show="imagecropperShow" - :key="imagecropperKey" - :width="300" - :height="300" - url="https://httpbin.org/post" - lang-type="en" - @close="close" - @crop-upload-success="cropSuccess" - /> - </div> -</template> - -<script> -import ImageCropper from "@/components/ImageCropper"; -import PanThumb from "@/components/PanThumb"; - -export default { - name: "AvatarUploadDemo", - components: { ImageCropper, PanThumb }, - data() { - return { - imagecropperShow: false, - imagecropperKey: 0, - image: "https://wpimg.wallstcn.com/577965b9-bb9e-4e02-9f0c-095b41417191" - }; - }, - methods: { - cropSuccess(resData) { - this.imagecropperShow = false; - this.imagecropperKey = this.imagecropperKey + 1; - this.image = resData.files.avatar; - }, - close() { - this.imagecropperShow = false; - } - } -}; -</script> - -<style scoped> -.avatar { - width: 200px; - height: 200px; - border-radius: 50%; -} -</style> diff --git a/WebSite/src/views/components-demo/back-to-top.vue b/WebSite/src/views/components-demo/back-to-top.vue deleted file mode 100644 index 9ab1057..0000000 --- a/WebSite/src/views/components-demo/back-to-top.vue +++ /dev/null @@ -1,162 +0,0 @@ -<template> - <div class="components-container"> - <aside> - When the page is scrolled to the specified position, the Back to Top - button appears in the lower right corner - </aside> - <aside> - You can customize the style of the button, show / hide, height of - appearance, height of the return. If you need a text prompt, you can use - element-ui el-tooltip elements externally - </aside> - <div class="placeholder-container"> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - </div> - <!-- you can add element-ui's tooltip --> - <el-tooltip placement="top" content="tooltip"> - <back-to-top - :custom-style="myBackToTopStyle" - :visibility-height="300" - :back-position="50" - transition-name="fade" - /> - </el-tooltip> - </div> -</template> - -<script> -import BackToTop from "@/components/BackToTop"; - -export default { - name: "BackToTopDemo", - components: { BackToTop }, - data() { - return { - // customizable button style, show/hide critical point, return position - myBackToTopStyle: { - right: "50px", - bottom: "50px", - width: "40px", - height: "40px", - "border-radius": "4px", - "line-height": "45px", // è¯·ä¿æŒä¸Žé«˜åº¦ä¸€è‡´ä»¥åž‚ç›´å±…ä¸ Please keep consistent with height to center vertically - background: "#e7eaf1" // 按钮的背景颜色 The background color of the button - } - }; - } -}; -</script> - -<style scoped> -.placeholder-container div { - margin: 10px; -} -</style> diff --git a/WebSite/src/views/components-demo/count-to.vue b/WebSite/src/views/components-demo/count-to.vue deleted file mode 100644 index b7f29f3..0000000 --- a/WebSite/src/views/components-demo/count-to.vue +++ /dev/null @@ -1,244 +0,0 @@ -<template> - <div class="components-container"> - <aside> - <a href="https://github.com/PanJiaChen/vue-countTo" target="_blank" - >countTo-component</a - > - </aside> - <count-to - ref="example" - :start-val="_startVal" - :end-val="_endVal" - :duration="_duration" - :decimals="_decimals" - :separator="_separator" - :prefix="_prefix" - :suffix="_suffix" - :autoplay="false" - class="example" - /> - <div style="margin-left: 25%;margin-top: 40px;"> - <label class="label" for="startValInput" - >startVal: - <input - v-model.number="setStartVal" - type="number" - name="startValInput" - /> - </label> - <label class="label" for="endValInput" - >endVal: - <input v-model.number="setEndVal" type="number" name="endVaInput" /> - </label> - <label class="label" for="durationInput" - >duration: - <input - v-model.number="setDuration" - type="number" - name="durationInput" - /> - </label> - <div class="startBtn example-btn" @click="start"> - Start - </div> - <div class="pause-resume-btn example-btn" @click="pauseResume"> - pause/resume - </div> - <br /> - <label class="label" for="decimalsInput" - >decimals: - <input - v-model.number="setDecimals" - type="number" - name="decimalsInput" - /> - </label> - <label class="label" for="separatorInput" - >separator: - <input v-model="setSeparator" name="separatorInput" /> - </label> - <label class="label" for="prefixInput" - >prefix: - <input v-model="setPrefix" name="prefixInput" /> - </label> - <label class="label" for="suffixInput" - >suffix: - <input v-model="setSuffix" name="suffixInput" /> - </label> - </div> - <aside> - <count-to :start-val='{{ _startVal }}' :end-val='{{ - _endVal - }}' :duration='{{ _duration }}' :decimals='{{ - _decimals - }}' :separator='{{ _separator }}' :prefix='{{ - _prefix - }}' :suffix='{{ _suffix }}' :autoplay=false> - </aside> - </div> -</template> - -<script> -import countTo from "vue-count-to"; - -export default { - name: "CountToDemo", - components: { countTo }, - data() { - return { - setStartVal: 0, - setEndVal: 2017, - setDuration: 4000, - setDecimals: 0, - setSeparator: ",", - setSuffix: " rmb", - setPrefix: "Â¥ " - }; - }, - computed: { - _startVal() { - if (this.setStartVal) { - return this.setStartVal; - } else { - return 0; - } - }, - _endVal() { - if (this.setEndVal) { - return this.setEndVal; - } else { - return 0; - } - }, - _duration() { - if (this.setDuration) { - return this.setDuration; - } else { - return 100; - } - }, - _decimals() { - if (this.setDecimals) { - if (this.setDecimals < 0 || this.setDecimals > 20) { - alert("digits argument must be between 0 and 20"); - return 0; - } - return this.setDecimals; - } else { - return 0; - } - }, - _separator() { - return this.setSeparator; - }, - _suffix() { - return this.setSuffix; - }, - _prefix() { - return this.setPrefix; - } - }, - methods: { - start() { - this.$refs.example.start(); - }, - pauseResume() { - this.$refs.example.pauseResume(); - } - } -}; -</script> - -<style scoped> -.example-btn { - display: inline-block; - margin-bottom: 0; - font-weight: 500; - text-align: center; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - line-height: 1.5; - padding: 4px 15px; - font-size: 12px; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - position: relative; - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - border-color: #d9d9d9; -} - -.example-btn:hover { - color: #4ab7bd; - background-color: #fff; - border-color: #4ab7bd; -} -.example { - font-size: 50px; - color: #f6416c; - display: block; - margin: 10px 0; - text-align: center; - font-size: 80px; - font-weight: 500; -} - -.label { - color: #2f4f4f; - font-size: 16px; - display: inline-block; - margin: 15px 30px 15px 0; -} - -input { - position: relative; - display: inline-block; - padding: 4px 7px; - width: 70px; - height: 28px; - cursor: text; - font-size: 12px; - line-height: 1.5; - color: rgba(0, 0, 0, 0.65); - background-color: #fff; - background-image: none; - border: 1px solid #d9d9d9; - border-radius: 4px; - -webkit-transition: all 0.3s; - transition: all 0.3s; -} - -.startBtn { - margin-left: 20px; - font-size: 20px; - color: #30b08f; - background-color: #fff; -} - -.startBtn:hover { - background-color: #30b08f; - color: #fff; - border-color: #30b08f; -} - -.pause-resume-btn { - font-size: 20px; - color: #e65d6e; - background-color: #fff; -} - -.pause-resume-btn:hover { - background-color: #e65d6e; - color: #fff; - border-color: #e65d6e; -} -</style> diff --git a/WebSite/src/views/components-demo/dnd-list.vue b/WebSite/src/views/components-demo/dnd-list.vue deleted file mode 100644 index 61cfa11..0000000 --- a/WebSite/src/views/components-demo/dnd-list.vue +++ /dev/null @@ -1,46 +0,0 @@ -<template> - <div class="components-container"> - <aside> - drag-list base on - <a href="https://github.com/SortableJS/Vue.Draggable" target="_blank" - >Vue.Draggable</a - > - </aside> - <div class="editor-container"> - <dnd-list - :list1="list1" - :list2="list2" - list1-title="List" - list2-title="Article pool" - /> - </div> - </div> -</template> - -<script> -import DndList from "@/components/DndList"; -import { fetchList } from "@/api/article"; - -export default { - name: "DndListDemo", - components: { DndList }, - data() { - return { - list1: [], - list2: [] - }; - }, - created() { - this.getData(); - }, - methods: { - getData() { - this.listLoading = true; - fetchList().then(response => { - this.list1 = response.data.items.splice(0, 5); - this.list2 = response.data.items; - }); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/drag-dialog.vue b/WebSite/src/views/components-demo/drag-dialog.vue deleted file mode 100644 index 698239c..0000000 --- a/WebSite/src/views/components-demo/drag-dialog.vue +++ /dev/null @@ -1,76 +0,0 @@ -<template> - <div class="components-container"> - <el-button type="primary" @click="dialogTableVisible = true"> - open a Drag Dialog - </el-button> - <el-dialog - v-el-drag-dialog - :visible.sync="dialogTableVisible" - title="Shipping address" - @dragDialog="handleDrag" - > - <el-select ref="select" v-model="value" placeholder="请选择"> - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-select> - <el-table :data="gridData"> - <el-table-column property="date" label="Date" width="150" /> - <el-table-column property="name" label="Name" width="200" /> - <el-table-column property="address" label="Address" /> - </el-table> - </el-dialog> - </div> -</template> - -<script> -import elDragDialog from "@/directive/el-drag-dialog"; // base on element-ui - -export default { - name: "DragDialogDemo", - directives: { elDragDialog }, - data() { - return { - dialogTableVisible: false, - options: [ - { value: "选项1", label: "黄金糕" }, - { value: "选项2", label: "åŒçš®å¥¶" }, - { value: "选项3", label: "蚵仔煎" }, - { value: "选项4", label: "龙须é¢" } - ], - value: "", - gridData: [ - { - date: "2016-05-02", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - }, - { - date: "2016-05-04", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - }, - { - date: "2016-05-01", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - }, - { - date: "2016-05-03", - name: "John Smith", - address: "No.1518, Jinshajiang Road, Putuo District" - } - ] - }; - }, - methods: { - // v-el-drag-dialog onDrag callback function - handleDrag() { - this.$refs.select.blur(); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/drag-kanban.vue b/WebSite/src/views/components-demo/drag-kanban.vue deleted file mode 100644 index 7d73214..0000000 --- a/WebSite/src/views/components-demo/drag-kanban.vue +++ /dev/null @@ -1,83 +0,0 @@ -<template> - <div class="components-container board"> - <Kanban - :key="1" - :list="list1" - :group="group" - class="kanban todo" - header-text="Todo" - /> - <Kanban - :key="2" - :list="list2" - :group="group" - class="kanban working" - header-text="Working" - /> - <Kanban - :key="3" - :list="list3" - :group="group" - class="kanban done" - header-text="Done" - /> - </div> -</template> -<script> -import Kanban from "@/components/Kanban"; - -export default { - name: "DragKanbanDemo", - components: { - Kanban - }, - data() { - return { - group: "mission", - list1: [ - { name: "Mission", id: 1 }, - { name: "Mission", id: 2 }, - { name: "Mission", id: 3 }, - { name: "Mission", id: 4 } - ], - list2: [ - { name: "Mission", id: 5 }, - { name: "Mission", id: 6 }, - { name: "Mission", id: 7 } - ], - list3: [ - { name: "Mission", id: 8 }, - { name: "Mission", id: 9 }, - { name: "Mission", id: 10 } - ] - }; - } -}; -</script> -<style lang="scss"> -.board { - width: 1000px; - margin-left: 20px; - display: flex; - justify-content: space-around; - flex-direction: row; - align-items: flex-start; -} -.kanban { - &.todo { - .board-column-header { - background: #4a9ff9; - } - } - &.working { - .board-column-header { - background: #f9944a; - } - } - &.done { - .board-column-header { - background: #2ac06d; - } - } -} -</style> diff --git a/WebSite/src/views/components-demo/drag-select.vue b/WebSite/src/views/components-demo/drag-select.vue deleted file mode 100644 index 6caa5ba..0000000 --- a/WebSite/src/views/components-demo/drag-select.vue +++ /dev/null @@ -1,59 +0,0 @@ -<template> - <div class="components-container"> - <el-drag-select - v-model="value" - style="width:500px;" - multiple - placeholder="请选择" - > - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-drag-select> - - <div style="margin-top:30px;"> - <el-tag v-for="item of value" :key="item" style="margin-right:15px;"> - {{ item }} - </el-tag> - </div> - </div> -</template> - -<script> -import ElDragSelect from "@/components/DragSelect"; // base on element-ui - -export default { - name: "DragSelectDemo", - components: { ElDragSelect }, - data() { - return { - value: ["Apple", "Banana", "Orange"], - options: [ - { - value: "Apple", - label: "Apple" - }, - { - value: "Banana", - label: "Banana" - }, - { - value: "Orange", - label: "Orange" - }, - { - value: "Pear", - label: "Pear" - }, - { - value: "Strawberry", - label: "Strawberry" - } - ] - }; - } -}; -</script> diff --git a/WebSite/src/views/components-demo/dropzone.vue b/WebSite/src/views/components-demo/dropzone.vue deleted file mode 100644 index e70d78e..0000000 --- a/WebSite/src/views/components-demo/dropzone.vue +++ /dev/null @@ -1,39 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Based on - <a class="link-type" href="https://github.com/rowanwins/vue-dropzone"> - dropzone </a - >. Because my business has special needs, and has to upload images to - qiniu, so instead of a third party, I chose encapsulate it by myself. It - is very simple, you can see the detail code in @/components/Dropzone. - </aside> - <div class="editor-container"> - <dropzone - id="myVueDropzone" - url="https://httpbin.org/post" - @dropzone-removedFile="dropzoneR" - @dropzone-success="dropzoneS" - /> - </div> - </div> -</template> - -<script> -import Dropzone from "@/components/Dropzone"; - -export default { - name: "DropzoneDemo", - components: { Dropzone }, - methods: { - dropzoneS(file) { - console.log(file); - this.$message({ message: "Upload success", type: "success" }); - }, - dropzoneR(file) { - console.log(file); - this.$message({ message: "Delete success", type: "success" }); - } - } -}; -</script> diff --git a/WebSite/src/views/components-demo/json-editor.vue b/WebSite/src/views/components-demo/json-editor.vue deleted file mode 100644 index e9d21ec..0000000 --- a/WebSite/src/views/components-demo/json-editor.vue +++ /dev/null @@ -1,42 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Json-Editor is base on - <a href="https://github.com/codemirror/CodeMirror" target="_blank" - >CodeMirrorr</a - >. Lint base on - <a - href="https://github.com/codemirror/CodeMirror/blob/master/addon/lint/json-lint.js" - target="_blank" - >json-lint</a - >. - </aside> - <div class="editor-container"> - <json-editor ref="jsonEditor" v-model="value" /> - </div> - </div> -</template> - -<script> -import JsonEditor from "@/components/JsonEditor"; - -const jsonData = - '[{"items":[{"market_type":"forexdata","symbol":"XAUUSD"},{"market_type":"forexdata","symbol":"UKOIL"},{"market_type":"forexdata","symbol":"CORN"}],"name":""},{"items":[{"market_type":"forexdata","symbol":"XAUUSD"},{"market_type":"forexdata","symbol":"XAGUSD"},{"market_type":"forexdata","symbol":"AUTD"},{"market_type":"forexdata","symbol":"AGTD"}],"name":"贵金属"},{"items":[{"market_type":"forexdata","symbol":"CORN"},{"market_type":"forexdata","symbol":"WHEAT"},{"market_type":"forexdata","symbol":"SOYBEAN"},{"market_type":"forexdata","symbol":"SUGAR"}],"name":"农产å“"},{"items":[{"market_type":"forexdata","symbol":"UKOIL"},{"market_type":"forexdata","symbol":"USOIL"},{"market_type":"forexdata","symbol":"NGAS"}],"name":"能æºåŒ–å·¥"}]'; - -export default { - name: "JsonEditorDemo", - components: { JsonEditor }, - data() { - return { - value: JSON.parse(jsonData) - }; - } -}; -</script> - -<style scoped> -.editor-container { - position: relative; - height: 100%; -} -</style> diff --git a/WebSite/src/views/components-demo/markdown.vue b/WebSite/src/views/components-demo/markdown.vue deleted file mode 100644 index 4ad7f9a..0000000 --- a/WebSite/src/views/components-demo/markdown.vue +++ /dev/null @@ -1,124 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Markdown is based on - <a href="https://github.com/nhnent/tui.editor" target="_blank" - >tui.editor</a - > - ,simply wrapped with Vue. - <a - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/feature/component/markdown-editor.html" - > - Documentation - </a> - </aside> - - <div class="editor-container"> - <el-tag class="tag-title"> - Basic: - </el-tag> - <markdown-editor v-model="content1" height="300px" /> - </div> - - <div class="editor-container"> - <el-tag class="tag-title"> - Markdown Mode: - </el-tag> - <markdown-editor - ref="markdownEditor" - v-model="content2" - :options="{ hideModeSwitch: true, previewStyle: 'tab' }" - height="200px" - /> - </div> - - <div class="editor-container"> - <el-tag class="tag-title"> - Customize Toolbar: - </el-tag> - <markdown-editor - v-model="content3" - :options="{ toolbarItems: ['heading', 'bold', 'italic'] }" - /> - </div> - - <div class="editor-container"> - <el-tag class="tag-title"> - I18n: - </el-tag> - <el-alert - :closable="false" - title="You can change the language of the admin system to see the effect" - type="success" - /> - <markdown-editor - ref="markdownEditor" - v-model="content4" - :language="language" - height="300px" - /> - </div> - - <el-button - style="margin-top:80px;" - type="primary" - icon="el-icon-document" - @click="getHtml" - > - Get HTML - </el-button> - <div v-html="html" /> - </div> -</template> - -<script> -import MarkdownEditor from "@/components/MarkdownEditor"; - -const content = ` -**This is test** - -* vue -* element -* webpack - -`; -export default { - name: "MarkdownDemo", - components: { MarkdownEditor }, - data() { - return { - content1: content, - content2: content, - content3: content, - content4: content, - html: "", - languageTypeList: { - en: "en_US", - zh: "zh_CN", - es: "es_ES" - } - }; - }, - computed: { - language() { - return this.languageTypeList["en"]; - } - }, - methods: { - getHtml() { - this.html = this.$refs.markdownEditor.getHtml(); - console.log(this.html); - } - } -}; -</script> - -<style scoped> -.editor-container { - margin-bottom: 30px; -} -.tag-title { - margin-bottom: 5px; -} -</style> diff --git a/WebSite/src/views/components-demo/mixin.vue b/WebSite/src/views/components-demo/mixin.vue deleted file mode 100644 index 18691eb..0000000 --- a/WebSite/src/views/components-demo/mixin.vue +++ /dev/null @@ -1,200 +0,0 @@ -<template> - <div class="mixin-components-container"> - <el-row> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>Buttons</span> - </div> - <div style="margin-bottom:50px;"> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn blue-btn" to="/documentation/index"> - Documentation - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn light-blue-btn" to="/icon/index"> - Icons - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn pink-btn" to="/excel/export-excel"> - Excel - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn green-btn" to="/table/complex-table"> - Table - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn tiffany-btn" to="/example/create"> - Form - </router-link> - </el-col> - <el-col :span="4" class="text-center"> - <router-link class="pan-btn yellow-btn" to="/theme/index"> - Theme - </router-link> - </el-col> - </div> - </el-card> - </el-row> - - <el-row :gutter="20" style="margin-top:50px;"> - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>Material Design çš„input</span> - </div> - <div style="height:100px;"> - <el-form :model="demo" :rules="demoRules"> - <el-form-item prop="title"> - <md-input - v-model="demo.title" - icon="el-icon-search" - name="title" - placeholder="è¾“å…¥æ ‡é¢˜" - > - æ ‡é¢˜ - </md-input> - </el-form-item> - </el-form> - </div> - </el-card> - </el-col> - - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>图片hover效果</span> - </div> - <div class="component-item"> - <pan-thumb - width="100px" - height="100px" - image="https://wpimg.wallstcn.com/577965b9-bb9e-4e02-9f0c-095b41417191" - > - vue-element-admin - </pan-thumb> - </div> - </el-card> - </el-col> - - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>水波纹 waves v-directive</span> - </div> - <div class="component-item"> - <el-button v-waves type="primary"> - 水波纹效果 - </el-button> - </div> - </el-card> - </el-col> - - <el-col :span="6"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>hover text</span> - </div> - <div class="component-item"> - <mallki class-name="mallki-text" text="vue-element-admin" /> - </div> - </el-card> - </el-col> - </el-row> - - <el-row :gutter="20" style="margin-top:50px;"> - <el-col :span="8"> - <el-card class="box-card"> - <div slot="header" class="clearfix"> - <span>Share</span> - </div> - <div class="component-item" style="height:420px;"> - <dropdown-menu - :items="articleList" - style="margin:0 auto;" - title="ç³»åˆ—æ–‡ç« " - /> - </div> - </el-card> - </el-col> - </el-row> - </div> -</template> - -<script> -import PanThumb from "@/components/PanThumb"; -import MdInput from "@/components/MDinput"; -import Mallki from "@/components/TextHoverEffect/Mallki"; -import DropdownMenu from "@/components/Share/DropdownMenu"; -import waves from "@/directive/waves/index.js"; // 水波纹指令 - -export default { - name: "ComponentMixinDemo", - components: { - PanThumb, - MdInput, - Mallki, - DropdownMenu - }, - directives: { - waves - }, - data() { - const validate = (rule, value, callback) => { - if (value.length !== 6) { - callback(new Error("请输入å…个å—符")); - } else { - callback(); - } - }; - return { - demo: { - title: "" - }, - demoRules: { - title: [{ required: true, trigger: "change", validator: validate }] - }, - articleList: [ - { - title: "基础篇", - href: "https://juejin.im/post/59097cd7a22b9d0065fb61d2" - }, - { - title: "登录æƒé™ç¯‡", - href: "https://juejin.im/post/591aa14f570c35006961acac" - }, - { - title: "实战篇", - href: "https://juejin.im/post/593121aa0ce4630057f70d35" - }, - { - title: "vue-admin-template 篇", - href: "https://juejin.im/post/595b4d776fb9a06bbe7dba56" - }, - { - title: "v4.0 篇", - href: "https://juejin.im/post/5c92ff94f265da6128275a85" - }, - { - title: "优雅的使用 icon", - href: "https://juejin.im/post/59bb864b5188257e7a427c09" - } - ] - }; - } -}; -</script> - -<style scoped> -.mixin-components-container { - background-color: #f0f2f5; - padding: 30px; - min-height: calc(100vh - 84px); -} -.component-item { - min-height: 100px; -} -</style> diff --git a/WebSite/src/views/components-demo/split-pane.vue b/WebSite/src/views/components-demo/split-pane.vue deleted file mode 100644 index 59ba599..0000000 --- a/WebSite/src/views/components-demo/split-pane.vue +++ /dev/null @@ -1,71 +0,0 @@ -<template> - <div class="components-container"> - <aside> - <strong>SplitPane</strong> If you've used - <a href="https://codepen.io/" target="_blank"> codepen</a>, - <a href="https://jsfiddle.net/" target="_blank"> jsfiddle </a>will not be - unfamiliar. - <a href="https://github.com/PanJiaChen/vue-split-pane" target="_blank"> - Github repository</a - > - </aside> - <split-pane split="vertical" @resize="resize"> - <template slot="paneL"> - <div class="left-container" /> - </template> - <template slot="paneR"> - <split-pane split="horizontal"> - <template slot="paneL"> - <div class="top-container" /> - </template> - <template slot="paneR"> - <div class="bottom-container" /> - </template> - </split-pane> - </template> - </split-pane> - </div> -</template> - -<script> -import splitPane from "vue-splitpane"; - -export default { - name: "SplitpaneDemo", - components: { splitPane }, - methods: { - resize() { - console.log("resize"); - } - } -}; -</script> - -<style scoped> -.components-container { - position: relative; - height: 100vh; -} - -.left-container { - background-color: #f38181; - height: 100%; -} - -.right-container { - background-color: #fce38a; - height: 200px; -} - -.top-container { - background-color: #fce38a; - width: 100%; - height: 100%; -} - -.bottom-container { - width: 100%; - background-color: #95e1d3; - height: 100%; -} -</style> diff --git a/WebSite/src/views/components-demo/sticky.vue b/WebSite/src/views/components-demo/sticky.vue deleted file mode 100644 index 882c6c3..0000000 --- a/WebSite/src/views/components-demo/sticky.vue +++ /dev/null @@ -1,149 +0,0 @@ -<template> - <div> - <sticky :z-index="10" class-name="sub-navbar"> - <el-dropdown trigger="click"> - <el-button plain> - Platform<i class="el-icon-caret-bottom el-icon--right" /> - </el-button> - <el-dropdown-menu slot="dropdown" class="no-border"> - <el-checkbox-group v-model="platforms" style="padding: 5px 15px;"> - <el-checkbox - v-for="item in platformsOptions" - :key="item.key" - :label="item.key" - > - {{ item.name }} - </el-checkbox> - </el-checkbox-group> - </el-dropdown-menu> - </el-dropdown> - - <el-dropdown trigger="click"> - <el-button plain> - Link<i class="el-icon-caret-bottom el-icon--right" /> - </el-button> - <el-dropdown-menu - slot="dropdown" - class="no-padding no-border" - style="width:300px" - > - <el-input v-model="url" placeholder="Please enter the content"> - <template slot="prepend"> - Url - </template> - </el-input> - </el-dropdown-menu> - </el-dropdown> - - <div class="time-container"> - <el-date-picker - v-model="time" - type="datetime" - format="yyyy-MM-dd HH:mm:ss" - placeholder="Release time" - /> - </div> - - <el-button style="margin-left: 10px;" type="success"> - publish - </el-button> - </sticky> - - <div class="components-container"> - <aside> - Sticky header, When the page is scrolled to the preset position will be - sticky on the top. - </aside> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <sticky :sticky-top="200"> - <el-button type="primary"> placeholder</el-button> - </sticky> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - <div>placeholder</div> - </div> - </div> -</template> - -<script> -import Sticky from "@/components/Sticky"; - -export default { - name: "StickyDemo", - components: { Sticky }, - data() { - return { - time: "", - url: "", - platforms: ["a-platform"], - platformsOptions: [ - { key: "a-platform", name: "platformA" }, - { key: "b-platform", name: "platformB" }, - { key: "c-platform", name: "platformC" } - ], - pickerOptions: { - disabledDate(time) { - return time.getTime() > Date.now(); - } - } - }; - } -}; -</script> - -<style scoped> -.components-container div { - margin: 10px; -} - -.time-container { - display: inline-block; -} -</style> diff --git a/WebSite/src/views/components-demo/tinymce.vue b/WebSite/src/views/components-demo/tinymce.vue deleted file mode 100644 index aa1a9d8..0000000 --- a/WebSite/src/views/components-demo/tinymce.vue +++ /dev/null @@ -1,43 +0,0 @@ -<template> - <div class="components-container"> - <aside> - Rich text is a core feature of the management backend, but at the same - time it is a place with lots of pits. In the process of selecting rich - texts, I also took a lot of detours. The common rich texts on the market - have been basically used, and I finally chose Tinymce. See the more - detailed rich text comparison and introduction. - <a - target="_blank" - class="link-type" - href="https://panjiachen.github.io/vue-element-admin-site/component/rich-editor.html" - >Documentation</a - > - </aside> - <div> - <tinymce v-model="content" :height="300" /> - </div> - <div class="editor-content" v-html="content" /> - </div> -</template> - -<script> -import Tinymce from "@/components/Tinymce"; - -export default { - name: "TinymceDemo", - components: { Tinymce }, - data() { - return { - content: `<h1 style="text-align: center;">Welcome to the TinyMCE demo!</h1><p style="text-align: center; font-size: 15px;"><img title="TinyMCE Logo" src="//www.tinymce.com/images/glyph-tinymce@2x.png" alt="TinyMCE Logo" width="110" height="97" /><ul> - <li>Our <a href="//www.tinymce.com/docs/">documentation</a> is a great resource for learning how to configure TinyMCE.</li><li>Have a specific question? Visit the <a href="https://community.tinymce.com/forum/">Community Forum</a>.</li><li>We also offer enterprise grade support as part of <a href="https://tinymce.com/pricing">TinyMCE premium subscriptions</a>.</li> - </ul>` - }; - } -}; -</script> - -<style scoped> -.editor-content { - margin-top: 20px; -} -</style> diff --git a/WebSite/src/views/dashboard/admin/components/BarChart.vue b/WebSite/src/views/dashboard/admin/components/BarChart.vue deleted file mode 100644 index df33a08..0000000 --- a/WebSite/src/views/dashboard/admin/components/BarChart.vue +++ /dev/null @@ -1,111 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -const animationDuration = 6000; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "300px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - - this.chart.setOption({ - tooltip: { - trigger: "axis", - axisPointer: { - // åæ ‡è½´æŒ‡ç¤ºå™¨ï¼Œåæ ‡è½´è§¦å‘æœ‰æ•ˆ - type: "shadow" // 默认为直线,å¯é€‰ä¸ºï¼š'line' | 'shadow' - } - }, - grid: { - top: 10, - left: "2%", - right: "2%", - bottom: "3%", - containLabel: true - }, - xAxis: [ - { - type: "category", - data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], - axisTick: { - alignWithLabel: true - } - } - ], - yAxis: [ - { - type: "value", - axisTick: { - show: false - } - } - ], - series: [ - { - name: "pageA", - type: "bar", - stack: "vistors", - barWidth: "60%", - data: [79, 52, 200, 334, 390, 330, 220], - animationDuration - }, - { - name: "pageB", - type: "bar", - stack: "vistors", - barWidth: "60%", - data: [80, 52, 200, 334, 390, 330, 220], - animationDuration - }, - { - name: "pageC", - type: "bar", - stack: "vistors", - barWidth: "60%", - data: [30, 52, 200, 334, 390, 330, 220], - animationDuration - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/BoxCard.vue b/WebSite/src/views/dashboard/admin/components/BoxCard.vue deleted file mode 100644 index 9eb4c31..0000000 --- a/WebSite/src/views/dashboard/admin/components/BoxCard.vue +++ /dev/null @@ -1,116 +0,0 @@ -<template> - <el-card class="box-card-component" style="margin-left:8px;"> - <div slot="header" class="box-card-header"> - <img - src="https://wpimg.wallstcn.com/e7d23d71-cf19-4b90-a1cc-f56af8c0903d.png" - /> - </div> - <div style="position:relative;"> - <pan-thumb :image="avatar" class="panThumb" /> - <mallki class-name="mallki-text" text="vue-element-admin" /> - <div style="padding-top:35px;" class="progress-item"> - <span>Vue</span> - <el-progress :percentage="70" /> - </div> - <div class="progress-item"> - <span>JavaScript</span> - <el-progress :percentage="18" /> - </div> - <div class="progress-item"> - <span>Css</span> - <el-progress :percentage="12" /> - </div> - <div class="progress-item"> - <span>ESLint</span> - <el-progress :percentage="100" status="success" /> - </div> - </div> - </el-card> -</template> - -<script> -import { mapGetters } from "vuex"; -import PanThumb from "@/components/PanThumb"; -import Mallki from "@/components/TextHoverEffect/Mallki"; - -export default { - components: { PanThumb, Mallki }, - - filters: { - statusFilter(status) { - const statusMap = { - success: "success", - pending: "danger" - }; - return statusMap[status]; - } - }, - data() { - return { - statisticsData: { - article_count: 1024, - pageviews_count: 1024 - } - }; - }, - computed: { - ...mapGetters(["name", "avatar", "roles"]) - } -}; -</script> - -<style lang="scss"> -.box-card-component { - .el-card__header { - padding: 0px !important; - } -} -</style> -<style lang="scss" scoped> -.box-card-component { - .box-card-header { - position: relative; - height: 220px; - img { - width: 100%; - height: 100%; - transition: all 0.2s linear; - &:hover { - transform: scale(1.1, 1.1); - filter: contrast(130%); - } - } - } - .mallki-text { - position: absolute; - top: 0px; - right: 0px; - font-size: 20px; - font-weight: bold; - } - .panThumb { - z-index: 100; - height: 70px !important; - width: 70px !important; - position: absolute !important; - top: -45px; - left: 0px; - border: 5px solid #ffffff; - background-color: #fff; - margin: auto; - box-shadow: none !important; - /deep/ .pan-info { - box-shadow: none !important; - } - } - .progress-item { - margin-bottom: 10px; - font-size: 14px; - } - @media only screen and (max-width: 1510px) { - .mallki-text { - display: none; - } - } -} -</style> diff --git a/WebSite/src/views/dashboard/admin/components/LineChart.vue b/WebSite/src/views/dashboard/admin/components/LineChart.vue deleted file mode 100644 index e8cdf89..0000000 --- a/WebSite/src/views/dashboard/admin/components/LineChart.vue +++ /dev/null @@ -1,138 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "350px" - }, - autoResize: { - type: Boolean, - default: true - }, - chartData: { - type: Object, - required: true - } - }, - data() { - return { - chart: null - }; - }, - watch: { - chartData: { - deep: true, - handler(val) { - this.setOptions(val); - } - } - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - this.setOptions(this.chartData); - }, - setOptions({ expectedData, actualData } = {}) { - this.chart.setOption({ - xAxis: { - data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], - boundaryGap: false, - axisTick: { - show: false - } - }, - grid: { - left: 10, - right: 10, - bottom: 20, - top: 30, - containLabel: true - }, - tooltip: { - trigger: "axis", - axisPointer: { - type: "cross" - }, - padding: [5, 10] - }, - yAxis: { - axisTick: { - show: false - } - }, - legend: { - data: ["expected", "actual"] - }, - series: [ - { - name: "expected", - itemStyle: { - normal: { - color: "#FF005A", - lineStyle: { - color: "#FF005A", - width: 2 - } - } - }, - smooth: true, - type: "line", - data: expectedData, - animationDuration: 2800, - animationEasing: "cubicInOut" - }, - { - name: "actual", - smooth: true, - type: "line", - itemStyle: { - normal: { - color: "#3888fa", - lineStyle: { - color: "#3888fa", - width: 2 - }, - areaStyle: { - color: "#f3f8ff" - } - } - }, - data: actualData, - animationDuration: 2800, - animationEasing: "quadraticOut" - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/PanelGroup.vue b/WebSite/src/views/dashboard/admin/components/PanelGroup.vue deleted file mode 100644 index 49ffc00..0000000 --- a/WebSite/src/views/dashboard/admin/components/PanelGroup.vue +++ /dev/null @@ -1,201 +0,0 @@ -<template> - <el-row :gutter="40" class="panel-group"> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('newVisitis')"> - <div class="card-panel-icon-wrapper icon-people"> - <svg-icon icon-class="peoples" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - New Visits - </div> - <count-to - :start-val="0" - :end-val="102400" - :duration="2600" - class="card-panel-num" - /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('messages')"> - <div class="card-panel-icon-wrapper icon-message"> - <svg-icon icon-class="message" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - Messages - </div> - <count-to - :start-val="0" - :end-val="81212" - :duration="3000" - class="card-panel-num" - /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('purchases')"> - <div class="card-panel-icon-wrapper icon-money"> - <svg-icon icon-class="money" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - Purchases - </div> - <count-to - :start-val="0" - :end-val="9280" - :duration="3200" - class="card-panel-num" - /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('shoppings')"> - <div class="card-panel-icon-wrapper icon-shopping"> - <svg-icon icon-class="shopping" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - Shoppings - </div> - <count-to - :start-val="0" - :end-val="13600" - :duration="3600" - class="card-panel-num" - /> - </div> - </div> - </el-col> - </el-row> -</template> - -<script> -import CountTo from "vue-count-to"; - -export default { - components: { - CountTo - }, - methods: { - handleSetLineChartData(type) { - this.$emit("handleSetLineChartData", type); - } - } -}; -</script> - -<style lang="scss" scoped> -.panel-group { - margin-top: 18px; - - .card-panel-col { - margin-bottom: 32px; - } - - .card-panel { - height: 108px; - cursor: pointer; - font-size: 12px; - position: relative; - overflow: hidden; - color: #666; - background: #fff; - box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05); - border-color: rgba(0, 0, 0, 0.05); - - &:hover { - .card-panel-icon-wrapper { - color: #fff; - } - - .icon-people { - background: #40c9c6; - } - - .icon-message { - background: #36a3f7; - } - - .icon-money { - background: #f4516c; - } - - .icon-shopping { - background: #34bfa3; - } - } - - .icon-people { - color: #40c9c6; - } - - .icon-message { - color: #36a3f7; - } - - .icon-money { - color: #f4516c; - } - - .icon-shopping { - color: #34bfa3; - } - - .card-panel-icon-wrapper { - float: left; - margin: 14px 0 0 14px; - padding: 16px; - transition: all 0.38s ease-out; - border-radius: 6px; - } - - .card-panel-icon { - float: left; - font-size: 48px; - } - - .card-panel-description { - float: right; - font-weight: bold; - margin: 26px; - margin-left: 0px; - - .card-panel-text { - line-height: 18px; - color: rgba(0, 0, 0, 0.45); - font-size: 16px; - margin-bottom: 12px; - } - - .card-panel-num { - font-size: 20px; - } - } - } -} - -@media (max-width: 550px) { - .card-panel-description { - display: none; - } - - .card-panel-icon-wrapper { - float: none !important; - width: 100%; - height: 100%; - margin: 0 !important; - - .svg-icon { - display: block; - margin: 14px auto !important; - float: none !important; - } - } -} -</style> diff --git a/WebSite/src/views/dashboard/admin/components/PieChart.vue b/WebSite/src/views/dashboard/admin/components/PieChart.vue deleted file mode 100644 index cd81bc0..0000000 --- a/WebSite/src/views/dashboard/admin/components/PieChart.vue +++ /dev/null @@ -1,79 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "300px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - - this.chart.setOption({ - tooltip: { - trigger: "item", - formatter: "{a} <br/>{b} : {c} ({d}%)" - }, - legend: { - left: "center", - bottom: "10", - data: ["Industries", "Technology", "Forex", "Gold", "Forecasts"] - }, - series: [ - { - name: "WEEKLY WRITE ARTICLES", - type: "pie", - roseType: "radius", - radius: [15, 95], - center: ["50%", "38%"], - data: [ - { value: 320, name: "Industries" }, - { value: 240, name: "Technology" }, - { value: 149, name: "Forex" }, - { value: 100, name: "Gold" }, - { value: 59, name: "Forecasts" } - ], - animationEasing: "cubicInOut", - animationDuration: 2600 - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/RaddarChart.vue b/WebSite/src/views/dashboard/admin/components/RaddarChart.vue deleted file mode 100644 index bf0e1cd..0000000 --- a/WebSite/src/views/dashboard/admin/components/RaddarChart.vue +++ /dev/null @@ -1,119 +0,0 @@ -<template> - <div :class="className" :style="{ height: height, width: width }" /> -</template> - -<script> -import echarts from "echarts"; -require("echarts/theme/macarons"); // echarts theme -import resize from "./mixins/resize"; - -const animationDuration = 3000; - -export default { - mixins: [resize], - props: { - className: { - type: String, - default: "chart" - }, - width: { - type: String, - default: "100%" - }, - height: { - type: String, - default: "300px" - } - }, - data() { - return { - chart: null - }; - }, - mounted() { - this.$nextTick(() => { - this.initChart(); - }); - }, - beforeDestroy() { - if (!this.chart) { - return; - } - this.chart.dispose(); - this.chart = null; - }, - methods: { - initChart() { - this.chart = echarts.init(this.$el, "macarons"); - - this.chart.setOption({ - tooltip: { - trigger: "axis", - axisPointer: { - // åæ ‡è½´æŒ‡ç¤ºå™¨ï¼Œåæ ‡è½´è§¦å‘æœ‰æ•ˆ - type: "shadow" // 默认为直线,å¯é€‰ä¸ºï¼š'line' | 'shadow' - } - }, - radar: { - radius: "66%", - center: ["50%", "42%"], - splitNumber: 8, - splitArea: { - areaStyle: { - color: "rgba(127,95,132,.3)", - opacity: 1, - shadowBlur: 45, - shadowColor: "rgba(0,0,0,.5)", - shadowOffsetX: 0, - shadowOffsetY: 15 - } - }, - indicator: [ - { name: "Sales", max: 10000 }, - { name: "Administration", max: 20000 }, - { name: "Information Techology", max: 20000 }, - { name: "Customer Support", max: 20000 }, - { name: "Development", max: 20000 }, - { name: "Marketing", max: 20000 } - ] - }, - legend: { - left: "center", - bottom: "10", - data: ["Allocated Budget", "Expected Spending", "Actual Spending"] - }, - series: [ - { - type: "radar", - symbolSize: 0, - areaStyle: { - normal: { - shadowBlur: 13, - shadowColor: "rgba(0,0,0,.2)", - shadowOffsetX: 0, - shadowOffsetY: 10, - opacity: 1 - } - }, - data: [ - { - value: [5000, 7000, 12000, 11000, 15000, 14000], - name: "Allocated Budget" - }, - { - value: [4000, 9000, 15000, 15000, 13000, 11000], - name: "Expected Spending" - }, - { - value: [5500, 11000, 12000, 15000, 12000, 12000], - name: "Actual Spending" - } - ], - animationDuration: animationDuration - } - ] - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue b/WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue deleted file mode 100644 index 4112358..0000000 --- a/WebSite/src/views/dashboard/admin/components/TodoList/Todo.vue +++ /dev/null @@ -1,81 +0,0 @@ -<template> - <li :class="{ completed: todo.done, editing: editing }" class="todo"> - <div class="view"> - <input - :checked="todo.done" - class="toggle" - type="checkbox" - @change="toggleTodo(todo)" - /> - <label @dblclick="editing = true" v-text="todo.text" /> - <button class="destroy" @click="deleteTodo(todo)" /> - </div> - <input - v-show="editing" - v-focus="editing" - :value="todo.text" - class="edit" - @keyup.enter="doneEdit" - @keyup.esc="cancelEdit" - @blur="doneEdit" - /> - </li> -</template> - -<script> -export default { - name: "Todo", - directives: { - focus(el, { value }, { context }) { - if (value) { - context.$nextTick(() => { - el.focus(); - }); - } - } - }, - props: { - todo: { - type: Object, - default: function() { - return {}; - } - } - }, - data() { - return { - editing: false - }; - }, - methods: { - deleteTodo(todo) { - this.$emit("deleteTodo", todo); - }, - editTodo({ todo, value }) { - this.$emit("editTodo", { todo, value }); - }, - toggleTodo(todo) { - this.$emit("toggleTodo", todo); - }, - doneEdit(e) { - const value = e.target.value.trim(); - const { todo } = this; - if (!value) { - this.deleteTodo({ - todo - }); - } else if (this.editing) { - this.editTodo({ - todo, - value - }); - this.editing = false; - } - }, - cancelEdit(e) { - e.target.value = this.todo.text; - this.editing = false; - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/TodoList/index.scss b/WebSite/src/views/dashboard/admin/components/TodoList/index.scss deleted file mode 100644 index 74ce0d5..0000000 --- a/WebSite/src/views/dashboard/admin/components/TodoList/index.scss +++ /dev/null @@ -1,320 +0,0 @@ -.todoapp { - font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif; - line-height: 1.4em; - color: #4d4d4d; - min-width: 230px; - max-width: 550px; - margin: 0 auto ; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-weight: 300; - background: #fff; - z-index: 1; - position: relative; - button { - margin: 0; - padding: 0; - border: 0; - background: none; - font-size: 100%; - vertical-align: baseline; - font-family: inherit; - font-weight: inherit; - color: inherit; - -webkit-appearance: none; - appearance: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - :focus { - outline: 0; - } - .hidden { - display: none; - } - .todoapp { - background: #fff; - margin: 130px 0 40px 0; - position: relative; - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); - } - .todoapp input::-webkit-input-placeholder { - font-style: italic; - font-weight: 300; - color: #e6e6e6; - } - .todoapp input::-moz-placeholder { - font-style: italic; - font-weight: 300; - color: #e6e6e6; - } - .todoapp input::input-placeholder { - font-style: italic; - font-weight: 300; - color: #e6e6e6; - } - .todoapp h1 { - position: absolute; - top: -155px; - width: 100%; - font-size: 100px; - font-weight: 100; - text-align: center; - color: rgba(175, 47, 47, 0.15); - -webkit-text-rendering: optimizeLegibility; - -moz-text-rendering: optimizeLegibility; - text-rendering: optimizeLegibility; - } - .new-todo, - .edit { - position: relative; - margin: 0; - width: 100%; - font-size: 18px; - font-family: inherit; - font-weight: inherit; - line-height: 1.4em; - border: 0; - color: inherit; - padding: 6px; - border: 1px solid #999; - box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2); - box-sizing: border-box; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - .new-todo { - padding: 10px 16px 16px 60px; - border: none; - background: rgba(0, 0, 0, 0.003); - box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03); - } - .main { - position: relative; - z-index: 2; - border-top: 1px solid #e6e6e6; - } - .toggle-all { - text-align: center; - border: none; - /* Mobile Safari */ - opacity: 0; - position: absolute; - } - .toggle-all+label { - width: 60px; - height: 34px; - font-size: 0; - position: absolute; - top: -52px; - left: -13px; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - } - .toggle-all+label:before { - content: 'â¯'; - font-size: 22px; - color: #e6e6e6; - padding: 10px 27px 10px 27px; - } - .toggle-all:checked+label:before { - color: #737373; - } - .todo-list { - margin: 0; - padding: 0; - list-style: none; - } - .todo-list li { - position: relative; - font-size: 24px; - border-bottom: 1px solid #ededed; - } - .todo-list li:last-child { - border-bottom: none; - } - .todo-list li.editing { - border-bottom: none; - padding: 0; - } - .todo-list li.editing .edit { - display: block; - width: 506px; - padding: 12px 16px; - margin: 0 0 0 43px; - } - .todo-list li.editing .view { - display: none; - } - .todo-list li .toggle { - text-align: center; - width: 40px; - /* auto, since non-WebKit browsers doesn't support input styling */ - height: auto; - position: absolute; - top: 0; - bottom: 0; - margin: auto 0; - border: none; - /* Mobile Safari */ - -webkit-appearance: none; - appearance: none; - } - .todo-list li .toggle { - opacity: 0; - } - .todo-list li .toggle+label { - /* - Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433 - IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/ - */ - background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E'); - background-repeat: no-repeat; - background-position: center left; - background-size: 36px; - } - .todo-list li .toggle:checked+label { - background-size: 36px; - background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E'); - } - .todo-list li label { - word-break: break-all; - padding: 15px 15px 15px 50px; - display: block; - line-height: 1.0; - font-size: 14px; - transition: color 0.4s; - } - .todo-list li.completed label { - color: #d9d9d9; - text-decoration: line-through; - } - .todo-list li .destroy { - display: none; - position: absolute; - top: 0; - right: 10px; - bottom: 0; - width: 40px; - height: 40px; - margin: auto 0; - font-size: 30px; - color: #cc9a9a; - transition: color 0.2s ease-out; - cursor: pointer; - } - .todo-list li .destroy:hover { - color: #af5b5e; - } - .todo-list li .destroy:after { - content: '×'; - } - .todo-list li:hover .destroy { - display: block; - } - .todo-list li .edit { - display: none; - } - .todo-list li.editing:last-child { - margin-bottom: -1px; - } - .footer { - color: #777; - position: relative; - padding: 10px 15px; - height: 40px; - text-align: center; - border-top: 1px solid #e6e6e6; - } - .footer:before { - content: ''; - position: absolute; - right: 0; - bottom: 0; - left: 0; - height: 40px; - overflow: hidden; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 8px 0 -3px #f6f6f6, 0 9px 1px -3px rgba(0, 0, 0, 0.2), 0 16px 0 -6px #f6f6f6, 0 17px 2px -6px rgba(0, 0, 0, 0.2); - } - .todo-count { - float: left; - text-align: left; - } - .todo-count strong { - font-weight: 300; - } - .filters { - margin: 0; - padding: 0; - position: relative; - z-index: 1; - list-style: none; - } - .filters li { - display: inline; - } - .filters li a { - color: inherit; - font-size: 12px; - padding: 3px 7px; - text-decoration: none; - border: 1px solid transparent; - border-radius: 3px; - } - .filters li a:hover { - border-color: rgba(175, 47, 47, 0.1); - } - .filters li a.selected { - border-color: rgba(175, 47, 47, 0.2); - } - .clear-completed, - html .clear-completed:active { - float: right; - position: relative; - line-height: 20px; - text-decoration: none; - cursor: pointer; - } - .clear-completed:hover { - text-decoration: underline; - } - .info { - margin: 65px auto 0; - color: #bfbfbf; - font-size: 10px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-align: center; - } - .info p { - line-height: 1; - } - .info a { - color: inherit; - text-decoration: none; - font-weight: 400; - } - .info a:hover { - text-decoration: underline; - } - /* - Hack to remove background from Mobile Safari. - Can't use it globally since it destroys checkboxes in Firefox -*/ - @media screen and (-webkit-min-device-pixel-ratio:0) { - .toggle-all, - .todo-list li .toggle { - background: none; - } - .todo-list li .toggle { - height: 40px; - } - } - @media (max-width: 430px) { - .footer { - height: 50px; - } - .filters { - bottom: 10px; - } - } -} diff --git a/WebSite/src/views/dashboard/admin/components/TodoList/index.vue b/WebSite/src/views/dashboard/admin/components/TodoList/index.vue deleted file mode 100644 index 7a32015..0000000 --- a/WebSite/src/views/dashboard/admin/components/TodoList/index.vue +++ /dev/null @@ -1,142 +0,0 @@ -<template> - <section class="todoapp"> - <!-- header --> - <header class="header"> - <input - class="new-todo" - autocomplete="off" - placeholder="Todo List" - @keyup.enter="addTodo" - /> - </header> - <!-- main section --> - <section v-show="todos.length" class="main"> - <input - id="toggle-all" - :checked="allChecked" - class="toggle-all" - type="checkbox" - @change="toggleAll({ done: !allChecked })" - /> - <label for="toggle-all" /> - <ul class="todo-list"> - <todo - v-for="(todo, index) in filteredTodos" - :key="index" - :todo="todo" - @toggleTodo="toggleTodo" - @editTodo="editTodo" - @deleteTodo="deleteTodo" - /> - </ul> - </section> - <!-- footer --> - <footer v-show="todos.length" class="footer"> - <span class="todo-count"> - <strong>{{ remaining }}</strong> - {{ remaining | pluralize("item") }} left - </span> - <ul class="filters"> - <li v-for="(val, key) in filters" :key="key"> - <a - :class="{ selected: visibility === key }" - @click.prevent="visibility = key" - >{{ key | capitalize }}</a - > - </li> - </ul> - <!-- <button class="clear-completed" v-show="todos.length > remaining" @click="clearCompleted"> - Clear completed - </button> --> - </footer> - </section> -</template> - -<script> -import Todo from "./Todo.vue"; - -const STORAGE_KEY = "todos"; -const filters = { - all: todos => todos, - active: todos => todos.filter(todo => !todo.done), - completed: todos => todos.filter(todo => todo.done) -}; -const defalutList = [ - { text: "star this repository", done: false }, - { text: "fork this repository", done: false }, - { text: "follow author", done: false }, - { text: "vue-element-admin", done: true }, - { text: "vue", done: true }, - { text: "element-ui", done: true }, - { text: "axios", done: true }, - { text: "webpack", done: true } -]; -export default { - components: { Todo }, - filters: { - pluralize: (n, w) => (n === 1 ? w : w + "s"), - capitalize: s => s.charAt(0).toUpperCase() + s.slice(1) - }, - data() { - return { - visibility: "all", - filters, - // todos: JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || defalutList - todos: defalutList - }; - }, - computed: { - allChecked() { - return this.todos.every(todo => todo.done); - }, - filteredTodos() { - return filters[this.visibility](this.todos); - }, - remaining() { - return this.todos.filter(todo => !todo.done).length; - } - }, - methods: { - setLocalStorage() { - window.localStorage.setItem(STORAGE_KEY, JSON.stringify(this.todos)); - }, - addTodo(e) { - const text = e.target.value; - if (text.trim()) { - this.todos.push({ - text, - done: false - }); - this.setLocalStorage(); - } - e.target.value = ""; - }, - toggleTodo(val) { - val.done = !val.done; - this.setLocalStorage(); - }, - deleteTodo(todo) { - this.todos.splice(this.todos.indexOf(todo), 1); - this.setLocalStorage(); - }, - editTodo({ todo, value }) { - todo.text = value; - this.setLocalStorage(); - }, - clearCompleted() { - this.todos = this.todos.filter(todo => !todo.done); - this.setLocalStorage(); - }, - toggleAll({ done }) { - this.todos.forEach(todo => { - todo.done = done; - this.setLocalStorage(); - }); - } - } -}; -</script> - -<style lang="scss"> -@import "./index.scss"; -</style> diff --git a/WebSite/src/views/dashboard/admin/components/TransactionTable.vue b/WebSite/src/views/dashboard/admin/components/TransactionTable.vue deleted file mode 100644 index aa6a95c..0000000 --- a/WebSite/src/views/dashboard/admin/components/TransactionTable.vue +++ /dev/null @@ -1,55 +0,0 @@ -<template> - <el-table :data="list" style="width: 100%;padding-top: 15px;"> - <el-table-column label="Order_No" min-width="200"> - <template slot-scope="scope"> - {{ scope.row.order_no | orderNoFilter }} - </template> - </el-table-column> - <el-table-column label="Price" width="195" align="center"> - <template slot-scope="scope"> - Â¥{{ scope.row.price | toThousandFilter }} - </template> - </el-table-column> - <el-table-column label="Status" width="100" align="center"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - </el-table> -</template> - -<script> -import { transactionList } from "@/api/remote-search"; - -export default { - filters: { - statusFilter(status) { - const statusMap = { - success: "success", - pending: "danger" - }; - return statusMap[status]; - }, - orderNoFilter(str) { - return str.substring(0, 30); - } - }, - data() { - return { - list: null - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - transactionList().then(response => { - this.list = response.data.items.slice(0, 8); - }); - } - } -}; -</script> diff --git a/WebSite/src/views/dashboard/admin/components/mixins/resize.js b/WebSite/src/views/dashboard/admin/components/mixins/resize.js deleted file mode 100644 index 53153bf..0000000 --- a/WebSite/src/views/dashboard/admin/components/mixins/resize.js +++ /dev/null @@ -1,65 +0,0 @@ -import { debounce } from "@/utils"; - -export default { - data() { - return { - $_sidebarElm: null, - $_resizeHandler: null - }; - }, - mounted() { - this.$_resizeHandler = debounce(() => { - if (this.chart) { - this.chart.resize(); - } - }, 100); - this.$_initResizeEvent(); - this.$_initSidebarResizeEvent(); - }, - beforeDestroy() { - this.$_destroyResizeEvent(); - this.$_destroySidebarResizeEvent(); - }, - // to fixed bug when cached by keep-alive - // https://github.com/PanJiaChen/vue-element-admin/issues/2116 - activated() { - this.$_initResizeEvent(); - this.$_initSidebarResizeEvent(); - }, - deactivated() { - this.$_destroyResizeEvent(); - this.$_destroySidebarResizeEvent(); - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_initResizeEvent() { - window.addEventListener("resize", this.$_resizeHandler); - }, - $_destroyResizeEvent() { - window.removeEventListener("resize", this.$_resizeHandler); - }, - $_sidebarResizeHandler(e) { - if (e.propertyName === "width") { - this.$_resizeHandler(); - } - }, - $_initSidebarResizeEvent() { - this.$_sidebarElm = document.getElementsByClassName( - "sidebar-container" - )[0]; - this.$_sidebarElm && - this.$_sidebarElm.addEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - }, - $_destroySidebarResizeEvent() { - this.$_sidebarElm && - this.$_sidebarElm.removeEventListener( - "transitionend", - this.$_sidebarResizeHandler - ); - } - } -}; diff --git a/WebSite/src/views/dashboard/admin/index.vue b/WebSite/src/views/dashboard/admin/index.vue deleted file mode 100644 index ac41376..0000000 --- a/WebSite/src/views/dashboard/admin/index.vue +++ /dev/null @@ -1,145 +0,0 @@ -<template> - <div class="dashboard-editor-container"> - <github-corner class="github-corner" /> - - <panel-group @handleSetLineChartData="handleSetLineChartData" /> - - <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> - <line-chart :chart-data="lineChartData" /> - </el-row> - - <el-row :gutter="32"> - <el-col :xs="24" :sm="24" :lg="8"> - <div class="chart-wrapper"> - <raddar-chart /> - </div> - </el-col> - <el-col :xs="24" :sm="24" :lg="8"> - <div class="chart-wrapper"> - <pie-chart /> - </div> - </el-col> - <el-col :xs="24" :sm="24" :lg="8"> - <div class="chart-wrapper"> - <bar-chart /> - </div> - </el-col> - </el-row> - - <el-row :gutter="8"> - <el-col - :xs="{ span: 24 }" - :sm="{ span: 24 }" - :md="{ span: 24 }" - :lg="{ span: 12 }" - :xl="{ span: 12 }" - style="padding-right:8px;margin-bottom:30px;" - > - <transaction-table /> - </el-col> - <el-col - :xs="{ span: 24 }" - :sm="{ span: 12 }" - :md="{ span: 12 }" - :lg="{ span: 6 }" - :xl="{ span: 6 }" - style="margin-bottom:30px;" - > - <todo-list /> - </el-col> - <el-col - :xs="{ span: 24 }" - :sm="{ span: 12 }" - :md="{ span: 12 }" - :lg="{ span: 6 }" - :xl="{ span: 6 }" - style="margin-bottom:30px;" - > - <box-card /> - </el-col> - </el-row> - </div> -</template> - -<script> -import GithubCorner from "@/components/GithubCorner"; -import PanelGroup from "./components/PanelGroup"; -import LineChart from "./components/LineChart"; -import RaddarChart from "./components/RaddarChart"; -import PieChart from "./components/PieChart"; -import BarChart from "./components/BarChart"; -import TransactionTable from "./components/TransactionTable"; -import TodoList from "./components/TodoList"; -import BoxCard from "./components/BoxCard"; - -const lineChartData = { - newVisitis: { - expectedData: [100, 120, 161, 134, 105, 160, 165], - actualData: [120, 82, 91, 154, 162, 140, 145] - }, - messages: { - expectedData: [200, 192, 120, 144, 160, 130, 140], - actualData: [180, 160, 151, 106, 145, 150, 130] - }, - purchases: { - expectedData: [80, 100, 121, 104, 105, 90, 100], - actualData: [120, 90, 100, 138, 142, 130, 130] - }, - shoppings: { - expectedData: [130, 140, 141, 142, 145, 150, 160], - actualData: [120, 82, 91, 154, 162, 140, 130] - } -}; - -export default { - name: "DashboardAdmin", - components: { - GithubCorner, - PanelGroup, - LineChart, - RaddarChart, - PieChart, - BarChart, - TransactionTable, - TodoList, - BoxCard - }, - data() { - return { - lineChartData: lineChartData.newVisitis - }; - }, - methods: { - handleSetLineChartData(type) { - this.lineChartData = lineChartData[type]; - } - } -}; -</script> - -<style lang="scss" scoped> -.dashboard-editor-container { - padding: 32px; - background-color: rgb(240, 242, 245); - position: relative; - - .github-corner { - position: absolute; - top: 0px; - border: 0; - right: 0; - } - - .chart-wrapper { - background: #fff; - padding: 16px 16px 0; - margin-bottom: 32px; - } -} - -@media (max-width: 1024px) { - .chart-wrapper { - padding: 8px; - } -} -</style> diff --git a/WebSite/src/views/dashboard/editor/index.vue b/WebSite/src/views/dashboard/editor/index.vue deleted file mode 100644 index 61de4ce..0000000 --- a/WebSite/src/views/dashboard/editor/index.vue +++ /dev/null @@ -1,77 +0,0 @@ -<template> - <div class="dashboard-editor-container"> - <div class=" clearfix"> - <pan-thumb :image="avatar" style="float: left"> - Your roles: - <span v-for="item in roles" :key="item" class="pan-info-roles">{{ - item - }}</span> - </pan-thumb> - <github-corner - style="position: absolute; top: 0px; border: 0; right: 0;" - /> - <div class="info-container"> - <span class="display_name">{{ name }}</span> - <span style="font-size:20px;padding-top:20px;display:inline-block;" - >Editor's Dashboard</span - > - </div> - </div> - <div> - <img :src="emptyGif" class="emptyGif" /> - </div> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import PanThumb from "@/components/PanThumb"; -import GithubCorner from "@/components/GithubCorner"; - -export default { - name: "DashboardEditor", - components: { PanThumb, GithubCorner }, - data() { - return { - emptyGif: - "https://wpimg.wallstcn.com/0e03b7da-db9e-4819-ba10-9016ddfdaed3" - }; - }, - computed: { - ...mapGetters(["name", "avatar", "roles"]) - } -}; -</script> - -<style lang="scss" scoped> -.emptyGif { - display: block; - width: 45%; - margin: 0 auto; -} - -.dashboard-editor-container { - background-color: #e3e3e3; - min-height: 100vh; - padding: 50px 60px 0px; - .pan-info-roles { - font-size: 12px; - font-weight: 700; - color: #333; - display: block; - } - .info-container { - position: relative; - margin-left: 190px; - height: 150px; - line-height: 200px; - .display_name { - font-size: 48px; - line-height: 48px; - color: #212121; - position: absolute; - top: 25px; - } - } -} -</style> diff --git a/WebSite/src/views/dashboard/index.vue b/WebSite/src/views/dashboard/index.vue deleted file mode 100644 index 1f4d5ba..0000000 --- a/WebSite/src/views/dashboard/index.vue +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dong - * @Date: 2020-04-21 18:54:21 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-05-12 08:28:53 - --> -<template> - <div class="dashboard-container"> - <component :is="currentRole" /> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import adminDashboard from "./admin"; -import editorDashboard from "./editor"; - -export default { - name: "Dashboard", - components: { adminDashboard, editorDashboard }, - data() { - return { - currentRole: "adminDashboard" - }; - }, - computed: { - ...mapGetters(["roles"]) - }, - created() { - if (!this.roles.includes("admin")) { - this.currentRole = "editorDashboard"; - } - } -}; -</script> diff --git a/WebSite/src/views/documentation/index.vue b/WebSite/src/views/documentation/index.vue deleted file mode 100644 index d3d5e32..0000000 --- a/WebSite/src/views/documentation/index.vue +++ /dev/null @@ -1,103 +0,0 @@ -<template> - <div class="app-container documentation-container"> - <a - class="document-btn" - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/" - >Documentation</a - > - <a - class="document-btn" - target="_blank" - href="https://github.com/PanJiaChen/vue-element-admin/" - >Github Repository</a - > - <a - class="document-btn" - target="_blank" - href="https://panjiachen.gitee.io/vue-element-admin-site/zh/" - >国内文档</a - > - <dropdown-menu class="document-btn" :items="articleList" title="ç³»åˆ—æ–‡ç« " /> - <a - class="document-btn" - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/zh/job/" - >内推招è˜</a - > - </div> -</template> - -<script> -import DropdownMenu from "@/components/Share/DropdownMenu"; - -export default { - name: "Documentation", - components: { DropdownMenu }, - data() { - return { - articleList: [ - { - title: "基础篇", - href: "https://juejin.im/post/59097cd7a22b9d0065fb61d2" - }, - { - title: "登录æƒé™ç¯‡", - href: "https://juejin.im/post/591aa14f570c35006961acac" - }, - { - title: "实战篇", - href: "https://juejin.im/post/593121aa0ce4630057f70d35" - }, - { - title: "vue-admin-template 篇", - href: "https://juejin.im/post/595b4d776fb9a06bbe7dba56" - }, - { - title: "v4.0 篇", - href: "https://juejin.im/post/5c92ff94f265da6128275a85" - }, - { - title: "自行å°è£… component", - href: "https://segmentfault.com/a/1190000009090836" - }, - { - title: "优雅的使用 icon", - href: "https://juejin.im/post/59bb864b5188257e7a427c09" - }, - { - title: "webpack4(上)", - href: "https://juejin.im/post/59bb864b5188257e7a427c09" - }, - { - title: "webpack4(下)", - href: "https://juejin.im/post/5b5d6d6f6fb9a04fea58aabc" - } - ] - }; - } -}; -</script> - -<style lang="scss" scoped> -.documentation-container { - margin: 50px; - display: flex; - flex-wrap: wrap; - justify-content: space-evenly; - - .document-btn { - flex-shrink: 0; - display: block; - cursor: pointer; - background: black; - color: white; - height: 60px; - width: 200px; - margin-bottom: 16px; - line-height: 60px; - font-size: 20px; - text-align: center; - } -} -</style> diff --git a/WebSite/src/views/error-log/components/ErrorTestA.vue b/WebSite/src/views/error-log/components/ErrorTestA.vue deleted file mode 100644 index f284637..0000000 --- a/WebSite/src/views/error-log/components/ErrorTestA.vue +++ /dev/null @@ -1,13 +0,0 @@ -<template> - <div> - <!--error code--> - {{ a.a }} - <!--error code--> - </div> -</template> - -<script> -export default { - name: "ErrorTestA" -}; -</script> diff --git a/WebSite/src/views/error-log/components/ErrorTestB.vue b/WebSite/src/views/error-log/components/ErrorTestB.vue deleted file mode 100644 index 24a3cd8..0000000 --- a/WebSite/src/views/error-log/components/ErrorTestB.vue +++ /dev/null @@ -1,11 +0,0 @@ -<template> - <div /> -</template> - -<script> -export default { - created() { - this.b = b // eslint-disable-line - } -}; -</script> diff --git a/WebSite/src/views/error-log/index.vue b/WebSite/src/views/error-log/index.vue deleted file mode 100644 index fd1afb4..0000000 --- a/WebSite/src/views/error-log/index.vue +++ /dev/null @@ -1,42 +0,0 @@ -<template> - <div class="errPage-container"> - <ErrorA /> - <ErrorB /> - <h3>Please click the bug icon in the upper right corner</h3> - <aside> - Now the management system are basically the form of the spa, it enhances - the user experience, but it also increases the possibility of page - problems, a small negligence may lead to the entire page deadlock. - Fortunately Vue provides a way to catch handling exceptions, where you can - handle errors or report exceptions. - <a - target="_blank" - class="link-type" - href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/error.html" - > - Document introduction - </a> - </aside> - <a href="#"> - <img - src="https://wpimg.wallstcn.com/360e4842-4db5-42d0-b078-f9a84a825546.gif" - /> - </a> - </div> -</template> - -<script> -import ErrorA from "./components/ErrorTestA"; -import ErrorB from "./components/ErrorTestB"; - -export default { - name: "ErrorLog", - components: { ErrorA, ErrorB } -}; -</script> - -<style scoped> -.errPage-container { - padding: 30px; -} -</style> diff --git a/WebSite/src/views/error-page/401.vue b/WebSite/src/views/error-page/401.vue index dd7534f..62dbf1b 100644 --- a/WebSite/src/views/error-page/401.vue +++ b/WebSite/src/views/error-page/401.vue @@ -1,30 +1,22 @@ +<!-- + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-20 16:39:21 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-20 20:52:00 +--> <template> <div class="errPage-container"> - <el-button icon="el-icon-arrow-left" class="pan-back-btn" @click="back"> - 返回 - </el-button> <el-row> <el-col :span="12"> <h1 class="text-jumbo text-ginormous"> Oops! </h1> - gifæ¥æº<a href="https://zh.airbnb.com/" target="_blank">airbnb</a> é¡µé¢ - <h2>ä½ æ²¡æœ‰æƒé™åŽ»è¯¥é¡µé¢</h2> - <h6>å¦‚æœ‰ä¸æ»¡è¯·è”ç³»ä½ é¢†å¯¼</h6> - <ul class="list-unstyled"> - <li>æˆ–è€…ä½ å¯ä»¥åŽ»:</li> - <li class="link-type"> - <router-link to="/dashboard"> - 回首页 - </router-link> - </li> - <li class="link-type"> - <a href="https://www.taobao.com/">éšä¾¿çœ‹çœ‹</a> - </li> - <li> - <a href="#" @click.prevent="dialogVisible = true">点我看图</a> - </li> - </ul> + <h2>You have no permission !</h2> + <h5>Perhaps you should contact the administrator</h5> + <el-button size="large" class="pan-back-btn" @click="goBack"> + Go Back + </el-button> </el-col> <el-col :span="12"> <img @@ -35,32 +27,25 @@ /> </el-col> </el-row> - <el-dialog :visible.sync="dialogVisible" title="éšä¾¿çœ‹"> - <img :src="ewizardClap" class="pan-img" /> - </el-dialog> </div> </template> <script> -import errGif from "@/assets/401_images/401.gif"; +import errGif from '@/assets/401_images/401.gif'; export default { - name: "Page401", + name: 'Page401', data() { return { - errGif: errGif + "?" + +new Date(), + errGif: errGif + '?' + +new Date(), ewizardClap: - "https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646", + 'https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646', dialogVisible: false }; }, methods: { - back() { - if (this.$route.query.noGoBack) { - this.$router.push({ path: "/dashboard" }); - } else { - this.$router.go(-1); - } + goBack() { + this.$router.go(-1); } } }; @@ -70,7 +55,8 @@ export default { .errPage-container { width: 800px; max-width: 100%; - margin: 100px auto; + margin: 0 auto; + padding-top: 160px; .pan-back-btn { background: #008489; color: #fff; diff --git a/WebSite/src/views/error-page/404.vue b/WebSite/src/views/error-page/404.vue index cb5c47c..291b4cd 100644 --- a/WebSite/src/views/error-page/404.vue +++ b/WebSite/src/views/error-page/404.vue @@ -39,7 +39,7 @@ Please check that the URL you entered is correct, or click the button below to return to the homepage. </div> - <a href="" class="bullshit__return-home">Back to home</a> + <a @click="goBack" class="bullshit__return-home">Go Back</a> </div> </div> </div> @@ -47,10 +47,15 @@ <script> export default { - name: "Page404", + name: 'Page404', computed: { message() { - return "The webmaster said that you can not enter this page..."; + return 'The webmaster said that you can not enter this page...'; + } + }, + methods: { + goBack() { + this.$router.go(-1); } } }; diff --git a/WebSite/src/views/example/button/index.vue b/WebSite/src/views/example/button/index.vue deleted file mode 100644 index 1fb98bd..0000000 --- a/WebSite/src/views/example/button/index.vue +++ /dev/null @@ -1,160 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 14:28:05 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">基本按钮类型</span> - </el-row> - <el-row class="row"> - <el-button>默认按钮</el-button> - <el-button type="primary" plain>ä¸»è¦æŒ‰é’®</el-button> - <el-button type="success" plain>æˆåŠŸæŒ‰é’®</el-button> - <el-button type="info" plain>ä¿¡æ¯æŒ‰é’®</el-button> - <el-button type="warning" plain>è¦å‘ŠæŒ‰é’®</el-button> - <el-button type="danger" plain>å±é™©æŒ‰é’®</el-button> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">å¸¸è§æŒ‰é’®ç¤ºä¾‹</span> - </el-row> - <el-row class="row"> - <el-table :data="tableData" style="width: 100%" stripe> - <el-table-column prop="type" label="类型"> </el-table-column> - <el-table-column prop="text" label="åç§°"> </el-table-column> - <el-table-column prop="icon" label="å›¾æ ‡"> </el-table-column> - <el-table-column label="展示"> - <template slot-scope="scope"> - <el-button - :type="scope.row.type" - :icon="scope.row.icon" - :plain="scope.row.plain" - >{{ scope.row.text }}</el-button - > - </template> - </el-table-column> - </el-table> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼Œæ‰€æœ‰æŒ‰é’®é»˜è®¤ size 为 - miniï¼ˆå·²å…¨å±€è®¾ç½®ï¼Œæ— éœ€å•ç‹¬æ·»åŠ ï¼‰ - </li> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼Œé™¤ â€œå–æ¶ˆâ€ å’Œ â€œç¡®å®šâ€ å¤–çš„æ‰€æœ‰æŒ‰é’®é»˜è®¤æ·»åŠ plain - å±žæ€§ï¼ˆæœ´ç´ æ ·å¼ï¼‰ - </li> - <li> - åœ¨å¸¸è§æŒ‰é’®ä¸å·²åˆ—出的按钮请éµå¾ªå¯¹åº”æ ·å¼ï¼Œæœªåˆ—出的按钮团队æˆå‘˜é—´åº”è¾¾æˆå…±è¯†ï¼Œä¿æŒæ ·å¼ç»Ÿä¸€ - </li> - <li>查询æ¡ä»¶åŒºåŸŸçš„æŒ‰é’®é¡»å•独å¦èµ·ä¸€è¡Œ</li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Button", - components: { TextField }, - data() { - return { - tableData: [ - { - type: "default", - text: "查询", - icon: "el-icon-search", - plain: true - }, - { - type: "default", - text: "查看", - icon: "el-icon-document-copy", - plain: true - }, - { - type: "primary", - text: "新增", - icon: "el-icon-plus", - plain: true - }, - { - type: "primary", - text: "修改", - icon: "el-icon-edit", - plain: true - }, - { - type: "danger", - text: "åˆ é™¤", - icon: "el-icon-delete", - plain: true - }, - { - type: "danger", - text: "é‡ç½®", - icon: "el-icon-refresh-left", - plain: true - }, - { - type: "info", - text: "ä¸Šä¼ ", - icon: "el-icon-upload2", - plain: true - }, - { - type: "info", - text: "下载", - icon: "el-icon-download", - plain: true - }, - { - type: "default", - text: "å–æ¶ˆ", - icon: "", - plain: false - }, - { - type: "primary", - text: "确定", - icon: "", - plain: false - } - ] - }; - } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/dialog/components/Detail.vue b/WebSite/src/views/example/dialog/components/Detail.vue deleted file mode 100644 index 779d188..0000000 --- a/WebSite/src/views/example/dialog/components/Detail.vue +++ /dev/null @@ -1,39 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-20 12:48:20 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-08-20 12:59:30 ---> -<template> - <div> - <span>这是详情页é¢1</span> - <div class="footer-container"> - <el-button type="primary" @click="handleConfirm">ç¡® 定</el-button> - </div> - </div> -</template> - -<script> -export default { - name: "Detail", - props: { - visible: { - type: Boolean - } - }, - methods: { - handleConfirm() { - this.$emit("update:visible", false); - } - } -}; -</script> - -<style scoped> -.footer-container { - width: 100%; - margin-top: 20px; - text-align: right; -} -</style> diff --git a/WebSite/src/views/example/dialog/index.vue b/WebSite/src/views/example/dialog/index.vue deleted file mode 100644 index 9fe4ec0..0000000 --- a/WebSite/src/views/example/dialog/index.vue +++ /dev/null @@ -1,116 +0,0 @@ -<!-- - * @Descripttion: - * @Author: dongjunhua - * @Date: 2020-08-16 14:45:34 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 14:29:36 ---> -<template> - <div class="app-container"> - <jump-dialog :visible.sync="dialogVisible2" :activeName="activeName"> - <el-card shadow="hover" slot="layout"> - <el-row class="row"> - <span class="text-title">示例</span> - </el-row> - <el-row> - <el-button @click="dialogVisible = true">ç‚¹å‡»å¼¹å‡ºå¯¹è¯æ¡†</el-button> - <el-button @click="handleOpenJump1">ç‚¹å‡»è·³è½¬å¯¹è¯æ¡†1</el-button> - <el-button @click="handleOpenJump2">ç‚¹å‡»è·³è½¬å¯¹è¯æ¡†2</el-button> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 对于 pc 端页é¢ï¼Œé»˜è®¤ä½¿ç”¨ el-dialog - 组件,在å³ä¸‹è§’æ”¾ç½®å–æ¶ˆå’Œç¡®å®šæŒ‰é’®ï¼ˆæŒ‰é’®æ–‡å—æè¿°æ ¹æ®å®žé™…业务场景å¯è¿›è¡Œä¿®æ”¹ï¼ŒæŒ‰é’®å¿…须放在å称为 - footer çš„æ’æ§½ä¸ï¼‰ - </li> - <li> - åº”æ ¹æ®å†…容的实际情况设置 el-dialog 的百分比宽度 - </li> - <li> - 对于手机端页é¢ï¼Œé»˜è®¤ä½¿ç”¨ el-drawer - 组件,方å‘自下往上开å¯ï¼Œåœ¨åº•部防æ¢å–消和确定按钮 - </li> - <li> - å¯¹è¯æ¡†ä¸å†…容较多时,å¯ä½¿ç”¨è‡ªå®šä¹‰ç»„ä»¶ jump-dialog - 进行整页跳转,以下是该组件的使用说明:<br /> - (1) 将原页é¢å†…容放置在å为 layout çš„æ’æ§½ä¸<br /> - (2) æ¯æœ‰ä¸€ä¸ªæ–°çš„è·³è½¬å¯¹è¯æ¡†ï¼Œéœ€åœ¨ jump-dialog 䏿·»åŠ ä¸€ä¸ª - jump-dialog-item å组件<br /> - (3) å组件接收 name å’Œ label ä½œä¸ºå‚æ•°ï¼ˆå¿…é¡»ï¼‰ï¼Œå…¶ä¸ label - ä¼šä½œä¸ºè·³è½¬å¯¹è¯æ¡†çš„æ ‡é¢˜å±•示<br /> - (4) - ä¸€èˆ¬æƒ…å†µä¸‹ï¼Œåº”åœ¨è·³è½¬å¯¹è¯æ¡†çš„å³ä¸‹è§’æ”¾ç½®ç¡®å®šæŒ‰é’®ï¼ˆè·³è½¬å¯¹è¯æ¡†è‡ªå¸¦è¿”回故ä¸éœ€è¦å–消按钮) - </li> - </ul> - </text-field> - </el-row> - </el-card> - <jump-dialog-item name="first" label="详情页é¢1"> - <detail :visible.sync="dialogVisible2"></detail> - </jump-dialog-item> - <jump-dialog-item name="second" label="详情页é¢2"> - <span>这是详情页é¢2</span> - </jump-dialog-item> - </jump-dialog> - <el-dialog title="编辑" :visible.sync="dialogVisible" width="30%"> - <span>这是一段信æ¯</span> - <span slot="footer" class="dialog-footer"> - <el-button @click="dialogVisible = false">å– æ¶ˆ</el-button> - <el-button type="primary" @click="dialogVisible = false" - >ç¡® 定</el-button - > - </span> - </el-dialog> - </div> -</template> -<script> -import Detail from "./components/Detail"; -import TextField from "@/components/TextField"; -export default { - name: "Dialog", - components: { Detail, TextField }, - data() { - return { - dialogVisible: false, - dialogVisible2: false, - activeName: null - }; - }, - methods: { - handleOpenJump1() { - this.dialogVisible2 = true; - this.activeName = "first"; - }, - handleOpenJump2() { - this.dialogVisible2 = true; - this.activeName = "second"; - } - } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/form.vue b/WebSite/src/views/example/form.vue deleted file mode 100644 index 8ab770c..0000000 --- a/WebSite/src/views/example/form.vue +++ /dev/null @@ -1,205 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 14:23:16 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">示例</span> - </el-row> - <el-row class="row"> - <el-col :sm="24" :md="12" :lg="6"> - <el-form - :model="ruleForm" - :rules="rules" - ref="ruleForm" - label-width="100px" - class="demo-ruleForm" - label-position="top" - > - <el-form-item label="活动åç§°" prop="name"> - <el-input v-model="ruleForm.name"></el-input> - </el-form-item> - <el-form-item label="活动区域" prop="region"> - <el-select v-model="ruleForm.region" placeholder="请选择活动区域"> - <el-option label="区域一" value="shanghai"></el-option> - <el-option label="区域二" value="beijing"></el-option> - </el-select> - </el-form-item> - <el-form-item label="活动时间" required> - <el-col :span="11"> - <el-form-item prop="date1"> - <el-date-picker - type="date" - placeholder="选择日期" - v-model="ruleForm.date1" - style="width: 100%;" - ></el-date-picker> - </el-form-item> - </el-col> - <el-col class="line" :span="2">-</el-col> - <el-col :span="11"> - <el-form-item prop="date2"> - <el-time-picker - placeholder="选择时间" - v-model="ruleForm.date2" - style="width: 100%;" - ></el-time-picker> - </el-form-item> - </el-col> - </el-form-item> - <el-form-item label="峿—¶é…é€" prop="delivery"> - <el-switch v-model="ruleForm.delivery"></el-switch> - </el-form-item> - <el-form-item label="活动性质" prop="type"> - <el-checkbox-group v-model="ruleForm.type"> - <el-checkbox - label="美食/é¤åŽ…çº¿ä¸Šæ´»åŠ¨" - name="type" - ></el-checkbox> - <el-checkbox label="地推活动" name="type"></el-checkbox> - <el-checkbox label="线下主题活动" name="type"></el-checkbox> - <el-checkbox label="å•纯å“牌æ›å…‰" name="type"></el-checkbox> - </el-checkbox-group> - </el-form-item> - <el-form-item label="特殊资æº" prop="resource"> - <el-radio-group v-model="ruleForm.resource"> - <el-radio label="线上å“牌商赞助"></el-radio> - <el-radio label="线下场地å…è´¹"></el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="活动形å¼" prop="desc"> - <el-input type="textarea" v-model="ruleForm.desc"></el-input> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="submitForm('ruleForm')" - >ç«‹å³åˆ›å»º</el-button - > - <el-button @click="resetForm('ruleForm')">é‡ç½®</el-button> - </el-form-item> - </el-form> - </el-col> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - åº”æ ¹æ®å…·ä½“ç›®æ ‡å’Œåˆ¶çº¦å› ç´ ï¼Œé€‰æ‹©æœ€ä½³çš„æ ‡ç¾å¯¹é½æ–¹å¼ï¼ˆä¾‹å¦‚ï¼šå½“æ ‡ç¾æ–‡å—é•¿åº¦è¾ƒçŸæ—¶å¯ä½¿ç”¨å·¦å¯¹é½æˆ–å³å¯¹é½ï¼Œå½“长度较长时å¯ä½¿ç”¨é¡¶éƒ¨å¯¹é½ï¼‰ï¼Œä½†æ•´ä¸ªé¡¹ç›®çš„坹齿–¹å¼åº”å°½å¯èƒ½ä¿æŒä¸€è‡´ - </li> - <li> - è¯·æ ¹æ®å®žé™…业务需求在æäº¤å‰å¯¹è¡¨å•项目进行必è¦çš„æ ¡éªŒå’Œæç¤º - </li> - <li> - 如表å•å¤„äºŽå¯¹è¯æ¡†ä¸ï¼Œåˆ™è¡¨å•çš„æäº¤åº”äº¤ç”±å¯¹è¯æ¡†çš„ç¡®å®šæŒ‰é’®è§¦å‘ - </li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Form", - components: { TextField }, - data() { - return { - ruleForm: { - name: "", - region: "", - date1: "", - date2: "", - delivery: false, - type: [], - resource: "", - desc: "" - }, - rules: { - name: [ - { required: true, message: "请输入活动åç§°", trigger: "blur" }, - { min: 3, max: 5, message: "长度在 3 到 5 个å—符", trigger: "blur" } - ], - region: [ - { required: true, message: "请选择活动区域", trigger: "change" } - ], - date1: [ - { - type: "date", - required: true, - message: "请选择日期", - trigger: "change" - } - ], - date2: [ - { - type: "date", - required: true, - message: "请选择时间", - trigger: "change" - } - ], - type: [ - { - type: "array", - required: true, - message: "请至少选择一个活动性质", - trigger: "change" - } - ], - resource: [ - { required: true, message: "请选择活动资æº", trigger: "change" } - ], - desc: [{ required: true, message: "请填写活动形å¼", trigger: "blur" }] - } - }; - }, - methods: { - submitForm(formName) { - this.$refs[formName].validate(valid => { - if (valid) { - alert("submit!"); - } else { - console.log("error submit!!"); - return false; - } - }); - }, - resetForm(formName) { - this.$refs[formName].resetFields(); - } - } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -.line { - text-align: center; -} -</style> diff --git a/WebSite/src/views/example/icon.vue b/WebSite/src/views/example/icon.vue deleted file mode 100644 index eb9b2ec..0000000 --- a/WebSite/src/views/example/icon.vue +++ /dev/null @@ -1,61 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:47:36 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">å›¾æ ‡</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 推è使用默认和 element 两ç§å›¾æ ‡æ ·å¼ - </li> - <li> - 如有需è¦å¯å¼•å…¥å¤–éƒ¨å›¾æ ‡åº“ï¼Œä½†éœ€æ³¨æ„ä¿æŒé£Žæ ¼ä¸€è‡´ - </li> - </ul> - </text-field> - </el-row> - <el-row style="margin-top:20px"> - <icons></icons> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -import Icons from "@/views/icons"; -export default { - name: "Icon", - components: { TextField, Icons } -}; -</script> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/index.vue b/WebSite/src/views/example/index.vue deleted file mode 100644 index 2168f80..0000000 --- a/WebSite/src/views/example/index.vue +++ /dev/null @@ -1,350 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 15:17:46 ---> -<template> - <div class="app-container" style="position:relative"> - <div class="tag-outer"> - <div style="color:#ffffff"><b>ver</b></div> - <div style="color:#ffffff"> - <b>1.0</b> - </div> - </div> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">概述</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - æ¤è§„范为å‰ç«¯ UI 规范,基于 element-ui 制定,其目的是ä¿è¯é¡¹ç›® UI - 效果的一致性 ,解决以往开å‘ä¸é¡¹ç›®ç»„ä¸åŒæˆå‘˜é—´æ ·å¼ä¸ç»Ÿä¸€çš„问题 - </li> - <li> - 默认情况下,å‰ç«¯å¼€å‘人员在开å‘过程ä¸éœ€éµå¾ªè§„范所述内容进行页é¢å¼€å‘ - </li> - <li> - 如当å‰é¡¹ç›®æœ‰ç‰¹æ®Šçš„æ ·å¼éœ€æ±‚ - ,则å¯ç»ç”±é¡¹ç›®è´Ÿè´£äººå’Œå‰ç«¯å¼€å‘人员共åŒè®¨è®ºåˆ¶å®š UI - æ ·å¼ä»¥æ›¿ä»£é»˜è®¤æ ·å¼è§„范 - </li> - <li> - æ¤è§„范å¯èƒ½ä¼šéšæ—¶é—´è¿›è¡Œæ›´è¿ï¼Œå¯åŠ¨æ–°é¡¹ç›®æ—¶è¯·å‚ç…§å½“å‰æœ€æ–°è§„范 - </li> - <li> - element-ui 组件的使用,请å‚阅官网 - <a - href="https://element.eleme.cn/#/zh-CN/component/quickstart" - target="_blank" - style="color:#409EFF" - >https://element.eleme.cn/#/zh-CN/component/quickstart</a - > - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">å—体</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 为了在ä¸åŒçŽ¯å¢ƒä¸‹éƒ½èƒ½è¾¾åˆ°æœ€ä½³æ•ˆæžœï¼Œæˆ‘ä»¬é»˜è®¤ä½¿ç”¨ä»¥ä¸‹å—体:<br /> - <b>Helvetica Neue</b>, <b>Helvetica</b>, <b>PingFang SC</b>, - <b>Hiragino Sans GB</b>, <b>Microsoft YaHei</b>, <b>Arial</b>, - <b>sans-serif</b> - </li> - <li> - 以上å—体已在全局 css ä¸è®¾ç½®ï¼Œå¦‚æ— ç‰¹æ®Šæƒ…å†µç¦æ¢ä½¿ç”¨å…¶ä»–å—体 - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">å—å·</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 默认情况下,我们对å—å·è¿›è¡Œä»¥ä¸‹è§„定: - <br /><span style="font-size:12px; line-height:2" - ><b>12px</b> - 用于辅助性æç¤ºå†…容</span - ><br /><span style="font-size:14px; line-height:2" - ><b>14px</b> - ç”¨äºŽæ£æ–‡å†…容</span - ><br /><span style="font-size:16px; line-height:2" - ><b>16px</b> - ç”¨äºŽæ ‡é¢˜</span - > - </li> - <li> - å—å·æ ¹æ®å®žé™…情况å¯ä»¥é…Œæƒ…考虑,但åªå…è®¸ä½¿ç”¨å¶æ•°å—å·ï¼Œä¸”å—å·è§„æ ¼å°½é‡æŽ§åˆ¶åœ¨3ç§ä»¥å†… - </li> - <li> - å—体的行间è·ä¸€èˆ¬ä¸ºå—å·çš„1.5 - 2å€ï¼ŒæŽ¨è使用2å€ - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">颜色</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 默认情况下,我们对å—体和边框的颜色进行以下规定:<br /> - <b>#303133</b> - ç”¨äºŽä¸»è¦æ–‡å—ï¼ˆæ ‡é¢˜ï¼‰ <br /><b>#606266</b> - - 用于常规文å—ï¼ˆæ£æ–‡ï¼‰ <br /><b>#909399</b> - - ç”¨äºŽæ¬¡è¦æ–‡å—(辅助)<br /> - <b>#e4ebed</b> - 一级边框(外层) <br /><b>#ebeef5</b> - - 二级边框(内层) - </li> - <li>ä»»ä½•æ—¶å€™ç¦æ¢ä½¿ç”¨çº¯é»‘色 <b>#000000</b></li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">交互组件的使用</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 默认情况下,我们对常用交互组件的使用场åˆè¿›è¡Œä»¥ä¸‹è§„定:<br /> - <b>el-input</b> - 默认输入框,适åˆéœ€è¦æ–‡å—输入的查询æ¡ä»¶æˆ–内容<br /> - <el-input - v-model="input" - placeholder="请输入内容" - style="width:200px; margin:10px 0" - ></el-input> - <br /><b>el-select</b> - 用于需è¦è¿›è¡Œé€‰æ‹©çš„æŸ¥è¯¢æ¡ä»¶æˆ–内容 <br /> - <el-select - v-model="value" - placeholder="请选择" - style="width:200px; margin:10px 0" - > - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - <br /> - <b>el-date-picker</b> - - 用于日期类型的查询æ¡ä»¶æˆ–内容<br /> - <el-date-picker - v-model="value1" - type="date" - placeholder="选择日期" - style="width:200px; margin:10px 0" - > - </el-date-picker - ><br /> - <b>el-time-select</b> - 用于时间类型的查询æ¡ä»¶æˆ–内容 <br /> - <el-time-select - v-model="value" - :picker-options="{ - start: '08:30', - step: '00:15', - end: '18:30' - }" - placeholder="选择时间" - style="width:200px; margin:10px 0" - > - </el-time-select> - <br /> - <b>el-checkbox</b> - - - å•独使用表示两ç§çжæ€ä¹‹é—´çš„切æ¢ï¼Œå¤šä¸ªä½¿ç”¨è¡¨ç¤ºä¸€ç»„备选项ä¸è¿›è¡Œå¤šé€‰<br /> - <el-row style="margin:10px 0"> - <el-checkbox-group v-model="checkList"> - <el-checkbox label="å¤é€‰æ¡† A"></el-checkbox> - <el-checkbox label="å¤é€‰æ¡† B"></el-checkbox> - <el-checkbox label="å¤é€‰æ¡† C"></el-checkbox> - <el-checkbox label="ç¦ç”¨" disabled></el-checkbox> - <el-checkbox label="选ä¸ä¸”ç¦ç”¨" disabled></el-checkbox> - </el-checkbox-group> - </el-row> - <b>el-radio</b> - - ä¸å…许å•独使用,多个使用表示一组备选项ä¸è¿›è¡Œå•选<br /> - <el-row style="margin:10px 0"> - <el-radio-group v-model="radio"> - <el-radio :label="3">å•选框 A</el-radio> - <el-radio :label="6">å•选框 B</el-radio> - <el-radio :label="9">å•选框 C</el-radio> - </el-radio-group> - </el-row> - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">æ¶ˆæ¯æç¤º</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 我们使用 message - ç»„ä»¶è¿›è¡Œæ¶ˆæ¯æç¤ºï¼Œä¸‹é¢æ˜¯4ç§æç¤ºç±»åž‹çš„ä½¿ç”¨åœºåˆï¼š<br /> - <b>message</b> - 默认,通常用于一般æç¤ºä¿¡æ¯ - <el-button type="text" @click="openInfo">点击</el-button> <br /><b - >message<span style="color:#67C23A">.success</span></b - > - - æˆåŠŸï¼Œç”¨äºŽè¡¨ç¤ºæ“ä½œæˆ–è¡Œä¸ºè¾¾æˆ - <el-button type="text" @click="openSuccess">点击</el-button - ><br /><b>message<span style="color:#E6A23C">.warning</span></b> - - è¦å‘Šï¼Œç”¨äºŽè¡¨ç¤ºæ“作或行为达æˆä½†å˜åœ¨æ½œåœ¨é£Žé™©æˆ–å¯èƒ½æœªå®Œå…¨è¾¾åˆ°é¢„期 - <el-button type="text" @click="openWarning">点击</el-button><br /> - <b>message<span style="color:#F56C6C">.error</span></b> - - 错误,用于表示æ“作或行为ä¸å…è®¸æˆ–æœªè¾¾æˆ - <el-button type="text" @click="openError">点击</el-button> - </li> - <li> - 所有弹出框默认显示时间5ç§’ï¼Œä¸”éœ€å¸¦æœ‰å…³é—æŒ‰é’® - </li> - <li> - 对于 http 请求的返回结果,axios - 实例ä¸å·²æ·»åŠ å…¨å±€é”™è¯¯æç¤ºï¼Œä¸€èˆ¬æƒ…å†µä¸‹æ— éœ€é¢å¤–处ç†ï¼ˆæˆåŠŸæç¤ºä»éœ€æ‰‹åŠ¨æ·»åŠ ï¼‰ - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">其他注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 任何ä¸å¯é€†æ“作在执行å‰å¿…须弹出确认框 - </li> - <li> - 事件触å‘调用 http - 请求到返回结果这段时间内,应防æ¢äº‹ä»¶å†æ¬¡è¢«è§¦å‘(手段包括但ä¸é™äºŽæ·»åŠ - loadingã€è®¾ç½® disabled ç‰ï¼‰ - </li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Exmple", - components: { TextField }, - data() { - return { - input: "", - options: [ - { - value: "选项1", - label: "黄金糕" - }, - { - value: "选项2", - label: "åŒçš®å¥¶" - }, - { - value: "选项3", - label: "蚵仔煎" - }, - { - value: "选项4", - label: "龙须é¢" - }, - { - value: "选项5", - label: "北京烤é¸" - } - ], - value1: "", - value: "", - checkList: ["选ä¸ä¸”ç¦ç”¨", "å¤é€‰æ¡† A"], - radio: 3 - }; - }, - methods: { - openInfo() { - this.$message({ - showClose: true, - message: "è¿™æ˜¯ä¸€æ¡æ¶ˆæ¯æç¤º" - }); - }, - - openSuccess() { - this.$message({ - showClose: true, - message: "æå–œä½ ï¼Œè¿™æ˜¯ä¸€æ¡æˆåŠŸæ¶ˆæ¯", - type: "success" - }); - }, - - openWarning() { - this.$message({ - showClose: true, - message: "è¦å‘Šå“¦ï¼Œè¿™æ˜¯ä¸€æ¡è¦å‘Šæ¶ˆæ¯", - type: "warning" - }); - }, - - openError() { - this.$message({ - showClose: true, - message: "错了哦,这是一æ¡é”™è¯¯æ¶ˆæ¯", - type: "error" - }); - } - } -}; -</script> - -<style scoped> -.tag-outer { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - position: absolute; - top: 20px; - right: 40px; - width: 40px; - height: 40px; - font-size: 12px; - background-color: #409eff; - border-right: 5px solid rgb(121, 187, 255); - border-left: 5px solid rgb(121, 187, 255); - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); -} -</style> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/layout.vue b/WebSite/src/views/example/layout.vue deleted file mode 100644 index fe49f81..0000000 --- a/WebSite/src/views/example/layout.vue +++ /dev/null @@ -1,187 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-17 10:01:43 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">布局指导原则</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - 任何时候,页é¢ç»„件最外层应使用 div 作为最外层容器,且 class 为 - app-containerï¼ˆè¯¥æ ·å¼å·²åœ¨å…¨å±€ css ä¸å®šä¹‰ï¼‰ - </li> - <li> - 关于总体布局(例如上下左å³åŒºå—ï¼Œå…ƒç´ çš„å†…å®¹å’Œä½ç½®ï¼‰ï¼Œå¼€å‘人员应å‚ç…§ - UI 设计进行 - </li> - <li> - 以展示的内容性质划分区域(例如查询æ¡ä»¶ã€æŸ¥è¯¢ç»“果),æ¯ä¸ªåŒºåŸŸä½¿ç”¨ - el-card 组件作为外部容器 - </li> - <li> - æ¯ä¸ª el-card ä¸çš„内容,应使用 el-row åŠ el-col çš„æ …æ ¼åŒ–å¸ƒå±€ - </li> - <li> - 对于 el-row ä¸å¯èƒ½å˜åœ¨å¤šåˆ—的情况(例如查询æ¡ä»¶ï¼‰ï¼Œå¿…须使用 - el-col,默认å“应尺寸设置为 :sm="12" :md="8" - :lg="6",对于确定ä¸å˜åœ¨å¤šåˆ—的情况(例如查询结果),å¯ä»¥å°† el-col - 设置为 :span=24,也å¯ä»¥ä¸ä½¿ç”¨ el-col - </li> - <li> - æ¯ä¸ªå—çº§å…ƒç´ çš„é»˜è®¤é—´è·ä¸º20px(包括但ä¸é™äºŽï¼šä¸åŒ el-card - 之间ã€el-card - å’Œå†…éƒ¨å…ƒç´ ä¹‹é—´ã€å†…éƒ¨å…ƒç´ å’Œå†…éƒ¨å…ƒç´ ä¹‹é—´ï¼ŒæŒ‰é’®ä¹‹é—´ä¾‹å¤–ï¼Œä½¿ç”¨ - el-button 默认间隔å³å¯ï¼‰ - </li> - </ul> - </text-field> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">示例</span> - </el-row> - <el-row> - <div class="l-app"> - <div class="l-card"> - <el-row :gutter="20"> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - <el-col :sm="12" :md="8" :lg="6" style="margin-bottom:20px"> - <div class="grid-content bg-purple l-flex"> - <b style="color:#666666">el-input</b> - </div> - </el-col> - </el-row> - <el-row :gutter="20"> - <el-col :span="24"> - <div - class="grid-content bg-blue l-i-flex" - style="width:100px; margin-right:5px" - > - <b style="color:#ffffff">el-button</b> - </div> - <div - class="grid-content bg-red l-i-flex" - style="width:100px; margin-right:5px" - > - <b style="color:#ffffff">el-button</b> - </div> - <div - class="grid-content bg-green l-i-flex" - style="width:100px; margin-right:5px" - > - <b style="color:#ffffff">el-button</b> - </div> - </el-col> - </el-row> - </div> - <div class="l-card" style="margin-top:20px"> - <el-row> - <div class="grid-content bg-purple l-flex" style="height:300px"> - <b style="color:#666666">el-table</b> - </div> - </el-row> - </div> - </div> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Layout", - components: { TextField } -}; -</script> - -<style scoped> -.l-app { - width: 100%; - padding: 20px; - background-color: #eeeeee; -} - -.l-card { - width: 100%; - padding: 20px; - background-color: #ffffff; - border-radius: 4px; -} - -.grid-content { - border-radius: 4px; - min-height: 36px; -} - -.bg-purple-dark { - background: #99a9bf; -} -.bg-purple { - background: #d3dce6; -} -.bg-purple-light { - background: #e5e9f2; -} -.bg-red { - background: #f56c6c; -} -.bg-green { - background: #67c23a; -} -.bg-blue { - background: #409eff; -} -.l-flex { - display: flex; - justify-content: center; - align-items: center; -} -.l-i-flex { - display: inline-flex; - justify-content: center; - align-items: center; -} -</style> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/example/table.vue b/WebSite/src/views/example/table.vue deleted file mode 100644 index 29a458e..0000000 --- a/WebSite/src/views/example/table.vue +++ /dev/null @@ -1,169 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:50:12 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-09-18 13:49:43 ---> -<template> - <div class="app-container"> - <el-card shadow="hover"> - <el-row class="row"> - <span class="text-title">示例</span> - </el-row> - <el-row class="row"> - <el-table - :data="tableData" - style="width: 100%" - stripe - :cell-class-name="getCellClass" - > - <el-table-column type="selection" align="center" width="55"> - </el-table-column> - <el-table-column prop="date" label="日期"> </el-table-column> - <el-table-column prop="name" label="å§“å"> </el-table-column> - <el-table-column prop="amount" label="金é¢" width="160" align="right"> - <template slot-scope="scope"> - {{ scope.row.amount | moneyFormatter(2, ",") }} - </template> - </el-table-column> - <el-table-column prop="address" label="地å€"> </el-table-column> - <el-table-column label="状æ€" width="160"> - <template slot-scope="scope"> - <el-tag type="success">{{ scope.row.status }}</el-tag> - <el-tag type="info">åœç”¨</el-tag> - </template> - </el-table-column> - <el-table-column label="æ“作" width="200"> - <template slot-scope="scope"> - <el-button - @click="handleClick(scope.row)" - type="default" - icon="el-icon-document-copy" - plain - >查看</el-button - > - <el-button type="primary" icon="el-icon-edit" plain - >编辑</el-button - > - </template> - </el-table-column> - </el-table> - <el-pagination - background - layout="total, sizes, prev, pager, next" - :total="tableData.length" - :page-sizes="[20, 50, 100]" - style="margin-top:20px" - > - </el-pagination> - </el-row> - <el-row class="row" style="margin-top:30px"> - <span class="text-title">注æ„事项</span> - </el-row> - <el-row> - <text-field> - <ul class="note"> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼ˆä¾‹å¦‚ï¼šå¤šçº§è¡¨å¤´ï¼‰ï¼Œè¡¨æ ¼é»˜è®¤ä½¿ç”¨ä¸å¸¦ç«–ç›´æ–¹å‘è¾¹æ¡†ä¸”å¸¦æœ‰æ–‘é©¬çº¹çš„æ ·å¼ - </li> - <li> - å¦‚æ— ç‰¹æ®Šæƒ…å†µï¼Œè¡¨æ ¼çš„åˆ—é»˜è®¤å·¦å¯¹é½ï¼Œå¦‚该列表示金é¢åˆ™å³å¯¹é½ - </li> - <li> - 用于选择行的 checkbox 列应ä½äºŽæœ€å·¦ä¾§ï¼Œé»˜è®¤å®½åº¦55,居ä¸å¯¹é½ - </li> - <li> - 用于放置å„ç§æ“作按钮的列应ä½äºŽæœ€å³ä¾§ï¼Œå®½åº¦æ ¹æ®æŒ‰é’®æ•°é‡å†³å®šï¼Œå½“ - table 的列较多时应考虑固定该列 - </li> - <li> - 表示状æ€çš„列需使用 el-tag - 组件,通常,我们约定其æ„义为真或带有æ£é¢å«ä¹‰çš„状æ€é¢œè‰²ä¸ºç»¿è‰²æˆ–è“色,其æ„ä¹‰ä¸ºå‡æˆ–带有负é¢å«ä¹‰çš„状æ€é¢œè‰²ä¸ºç°è‰²æˆ–红色 - </li> - <li> - è¡¨æ ¼é»˜è®¤æ¯é¡µæ˜¾ç¤º 20 æ¡æ•°æ®ï¼Œåœ¨åˆ†é¡µç»„件䏿供 20 / 50 / 100 å…± 3 - æ¡£å¯è°ƒæ•´é€‰é¡¹ï¼ŒåŒæ—¶æ˜¾ç¤ºæ€»æ¡æ•° - </li> - </ul> - </text-field> - </el-row> - </el-card> - </div> -</template> - -<script> -import TextField from "@/components/TextField"; -export default { - name: "Button", - components: { TextField }, - data() { - return { - tableData: [ - { - date: "2016-05-02", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1518 弄", - amount: 234791253.11, - status: "å¯ç”¨" - }, - { - date: "2016-05-04", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1517 弄", - amount: 3241380821.0, - status: "å¯ç”¨" - }, - { - date: "2016-05-01", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1519 弄", - amount: 5436434234.0, - status: "å¯ç”¨" - }, - { - date: "2016-05-03", - name: "王å°è™Ž", - address: "上海市普陀区金沙江路 1516 弄", - amount: 73472122.0, - status: "å¯ç”¨" - } - ] - }; - }, - methods: { - getCellClass({ row, column, rowIndex, columnIndex }) { - if (columnIndex === 3) { - return "amount-col"; - } - } - } -}; -</script> - -<style> -.amount-col > .cell { - text-align: right; -} -</style> - -<style scoped> -.text-title { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #303133; -} -.row { - margin-bottom: 20px; -} -ul.note { - padding: 0 0 0 10px !important; - margin: 0 !important; -} -ul.note > li { - line-height: 2; - font-size: 14px; - color: #606266; -} -</style> diff --git a/WebSite/src/views/excel/components/AutoWidthOption.vue b/WebSite/src/views/excel/components/AutoWidthOption.vue deleted file mode 100644 index 08cc5a8..0000000 --- a/WebSite/src/views/excel/components/AutoWidthOption.vue +++ /dev/null @@ -1,34 +0,0 @@ -<template> - <div style="display:inline-block;"> - <label class="radio-label">Cell Auto-Width: </label> - <el-radio-group v-model="autoWidth"> - <el-radio :label="true" border> - True - </el-radio> - <el-radio :label="false" border> - False - </el-radio> - </el-radio-group> - </div> -</template> - -<script> -export default { - props: { - value: { - type: Boolean, - default: true - } - }, - computed: { - autoWidth: { - get() { - return this.value; - }, - set(val) { - this.$emit("input", val); - } - } - } -}; -</script> diff --git a/WebSite/src/views/excel/components/BookTypeOption.vue b/WebSite/src/views/excel/components/BookTypeOption.vue deleted file mode 100644 index 465113f..0000000 --- a/WebSite/src/views/excel/components/BookTypeOption.vue +++ /dev/null @@ -1,39 +0,0 @@ -<template> - <div style="display:inline-block;"> - <label class="radio-label">Book Type: </label> - <el-select v-model="bookType" style="width:120px;"> - <el-option - v-for="item in options" - :key="item" - :label="item" - :value="item" - /> - </el-select> - </div> -</template> - -<script> -export default { - props: { - value: { - type: String, - default: "xlsx" - } - }, - data() { - return { - options: ["xlsx", "csv", "txt"] - }; - }, - computed: { - bookType: { - get() { - return this.value; - }, - set(val) { - this.$emit("input", val); - } - } - } -}; -</script> diff --git a/WebSite/src/views/excel/components/FilenameOption.vue b/WebSite/src/views/excel/components/FilenameOption.vue deleted file mode 100644 index e29cb85..0000000 --- a/WebSite/src/views/excel/components/FilenameOption.vue +++ /dev/null @@ -1,32 +0,0 @@ -<template> - <div style="display:inline-block;"> - <label class="radio-label" style="padding-left:0;">Filename: </label> - <el-input - v-model="filename" - placeholder="Please enter the file name (default excel-list)" - style="width:345px;" - prefix-icon="el-icon-document" - /> - </div> -</template> - -<script> -export default { - props: { - value: { - type: String, - default: "" - } - }, - computed: { - filename: { - get() { - return this.value; - }, - set(val) { - this.$emit("input", val); - } - } - } -}; -</script> diff --git a/WebSite/src/views/excel/export-excel.vue b/WebSite/src/views/excel/export-excel.vue deleted file mode 100644 index e613e6a..0000000 --- a/WebSite/src/views/excel/export-excel.vue +++ /dev/null @@ -1,142 +0,0 @@ -<template> - <div class="app-container"> - <div> - <FilenameOption v-model="filename" /> - <AutoWidthOption v-model="autoWidth" /> - <BookTypeOption v-model="bookType" /> - <el-button - :loading="downloadLoading" - style="margin:0 0 20px 20px;" - type="primary" - icon="el-icon-document" - @click="handleDownload" - > - Export Excel - </el-button> - <a - href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" - target="_blank" - style="margin-left:15px;" - > - <el-tag type="info">Documentation</el-tag> - </a> - </div> - - <el-table - v-loading="listLoading" - :data="list" - element-loading-text="Loading..." - border - fit - highlight-current-row - > - <el-table-column align="center" label="Id" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="110" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - <el-table-column align="center" label="Date" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ - scope.row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") - }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; -import { parseTime } from "@/utils"; -// options components -import FilenameOption from "./components/FilenameOption"; -import AutoWidthOption from "./components/AutoWidthOption"; -import BookTypeOption from "./components/BookTypeOption"; - -export default { - name: "ExportExcel", - components: { FilenameOption, AutoWidthOption, BookTypeOption }, - data() { - return { - list: null, - listLoading: true, - downloadLoading: false, - filename: "", - autoWidth: true, - bookType: "xlsx" - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - this.listLoading = true; - fetchList().then(response => { - this.list = response.data.items; - this.listLoading = false; - }); - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const tHeader = ["Id", "Title", "Author", "Readings", "Date"]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.list; - const data = this.formatJson(filterVal, list); - excel.export_json_to_excel({ - header: tHeader, - data, - filename: this.filename, - autoWidth: this.autoWidth, - bookType: this.bookType - }); - this.downloadLoading = false; - }); - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => - filterVal.map(j => { - if (j === "timestamp") { - return parseTime(v[j]); - } else { - return v[j]; - } - }) - ); - } - } -}; -</script> - -<style> -.radio-label { - font-size: 14px; - color: #606266; - line-height: 40px; - padding: 0 12px 0 30px; -} -</style> diff --git a/WebSite/src/views/excel/merge-header.vue b/WebSite/src/views/excel/merge-header.vue deleted file mode 100644 index 2f58423..0000000 --- a/WebSite/src/views/excel/merge-header.vue +++ /dev/null @@ -1,116 +0,0 @@ -<template> - <div class="app-container"> - <el-button - :loading="downloadLoading" - style="margin-bottom:20px" - type="primary" - icon="el-icon-document" - @click="handleDownload" - >Export</el-button - > - - <el-table - ref="multipleTable" - v-loading="listLoading" - :data="list" - element-loading-text="Loading" - border - fit - highlight-current-row - > - <el-table-column align="center" label="Id" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Main Information" align="center"> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="110" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - </el-table-column> - <el-table-column align="center" label="Date" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ - scope.row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") - }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; -import { parseTime } from "@/utils"; - -export default { - name: "MergeHeader", - data() { - return { - list: null, - listLoading: true, - downloadLoading: false - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - this.listLoading = true; - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.listLoading = false; - }); - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const multiHeader = [["Id", "Main Information", "", "", "Date"]]; - const header = ["", "Title", "Author", "Readings", ""]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.list; - const data = this.formatJson(filterVal, list); - const merges = ["A1:A2", "B1:D1", "E1:E2"]; - excel.export_json_to_excel({ - multiHeader, - header, - merges, - data - }); - this.downloadLoading = false; - }); - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => - filterVal.map(j => { - if (j === "timestamp") { - return parseTime(v[j]); - } else { - return v[j]; - } - }) - ); - } - } -}; -</script> diff --git a/WebSite/src/views/excel/select-excel.vue b/WebSite/src/views/excel/select-excel.vue deleted file mode 100644 index 6012b7c..0000000 --- a/WebSite/src/views/excel/select-excel.vue +++ /dev/null @@ -1,128 +0,0 @@ -<template> - <div class="app-container"> - <el-input - v-model="filename" - placeholder="Please enter the file name (default excel-list)" - style="width:350px;" - prefix-icon="el-icon-document" - /> - <el-button - :loading="downloadLoading" - style="margin-bottom:20px" - type="primary" - icon="el-icon-document" - @click="handleDownload" - > - Export Selected Items - </el-button> - <a - href="https://panjiachen.github.io/vue-element-admin-site/feature/component/excel.html" - target="_blank" - style="margin-left:15px;" - > - <el-tag type="info">Documentation</el-tag> - </a> - <el-table - ref="multipleTable" - v-loading="listLoading" - :data="list" - element-loading-text="æ‹¼å‘½åŠ è½½ä¸" - border - fit - highlight-current-row - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" align="center" /> - <el-table-column align="center" label="Id" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="110" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - <el-table-column align="center" label="PDate" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ scope.row.display_time }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - name: "SelectExcel", - data() { - return { - list: null, - listLoading: true, - multipleSelection: [], - downloadLoading: false, - filename: "" - }; - }, - created() { - this.fetchData(); - }, - methods: { - fetchData() { - this.listLoading = true; - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.listLoading = false; - }); - }, - handleSelectionChange(val) { - this.multipleSelection = val; - }, - handleDownload() { - if (this.multipleSelection.length) { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const tHeader = ["Id", "Title", "Author", "Readings", "Date"]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.multipleSelection; - const data = this.formatJson(filterVal, list); - excel.export_json_to_excel({ - header: tHeader, - data, - filename: this.filename - }); - this.$refs.multipleTable.clearSelection(); - this.downloadLoading = false; - }); - } else { - this.$message({ - message: "Please select at least one item", - type: "warning" - }); - } - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => filterVal.map(j => v[j])); - } - } -}; -</script> diff --git a/WebSite/src/views/excel/upload-excel.vue b/WebSite/src/views/excel/upload-excel.vue deleted file mode 100644 index dcd9471..0000000 --- a/WebSite/src/views/excel/upload-excel.vue +++ /dev/null @@ -1,55 +0,0 @@ -<template> - <div class="app-container"> - <upload-excel-component - :on-success="handleSuccess" - :before-upload="beforeUpload" - /> - <el-table - :data="tableData" - border - highlight-current-row - style="width: 100%;margin-top:20px;" - > - <el-table-column - v-for="item of tableHeader" - :key="item" - :prop="item" - :label="item" - /> - </el-table> - </div> -</template> - -<script> -import UploadExcelComponent from "@/components/UploadExcel/index.vue"; - -export default { - name: "UploadExcel", - components: { UploadExcelComponent }, - data() { - return { - tableData: [], - tableHeader: [] - }; - }, - methods: { - beforeUpload(file) { - const isLt1M = file.size / 1024 / 1024 < 1; - - if (isLt1M) { - return true; - } - - this.$message({ - message: "Please do not upload files larger than 1m in size.", - type: "warning" - }); - return false; - }, - handleSuccess({ results, header }) { - this.tableData = results; - this.tableHeader = header; - } - } -}; -</script> diff --git a/WebSite/src/views/guide/index.vue b/WebSite/src/views/guide/index.vue deleted file mode 100644 index 0c6bedb..0000000 --- a/WebSite/src/views/guide/index.vue +++ /dev/null @@ -1,43 +0,0 @@ -<template> - <div class="app-container"> - <aside> - The guide page is useful for some people who entered the project for the - first time. You can briefly introduce the features of the project. Demo is - based on - <a href="https://github.com/kamranahmedse/driver.js" target="_blank" - >driver.js.</a - > - </aside> - <el-button - icon="el-icon-question" - type="primary" - @click.prevent.stop="guide" - > - Show Guide - </el-button> - </div> -</template> - -<script> -import Driver from "driver.js"; // import driver.js -import "driver.js/dist/driver.min.css"; // import driver.js css -import steps from "./steps"; - -export default { - name: "Guide", - data() { - return { - driver: null - }; - }, - mounted() { - this.driver = new Driver(); - }, - methods: { - guide() { - this.driver.defineSteps(steps); - this.driver.start(); - } - } -}; -</script> diff --git a/WebSite/src/views/guide/steps.js b/WebSite/src/views/guide/steps.js deleted file mode 100644 index 6dfc9c2..0000000 --- a/WebSite/src/views/guide/steps.js +++ /dev/null @@ -1,53 +0,0 @@ -const steps = [ - { - element: "#hamburger-container", - popover: { - title: "Hamburger", - description: "Open && Close sidebar", - position: "bottom" - } - }, - { - element: "#breadcrumb-container", - popover: { - title: "Breadcrumb", - description: "Indicate the current page location", - position: "bottom" - } - }, - { - element: "#header-search", - popover: { - title: "Page Search", - description: "Page search, quick navigation", - position: "left" - } - }, - { - element: "#screenfull", - popover: { - title: "Screenfull", - description: "Set the page into fullscreen", - position: "left" - } - }, - { - element: "#size-select", - popover: { - title: "Switch Size", - description: "Switch the system size", - position: "left" - } - }, - { - element: "#tags-view-container", - popover: { - title: "Tags view", - description: "The history of the page you visited", - position: "bottom" - }, - padding: 0 - } -]; - -export default steps; diff --git a/WebSite/src/views/home/index.vue b/WebSite/src/views/home/index.vue index b90e914..9086d6e 100644 --- a/WebSite/src/views/home/index.vue +++ b/WebSite/src/views/home/index.vue @@ -1,16 +1,34 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-07-15 16:31:00 - * @LastEditors: dongjunhua - * @LastEditTime: 2020-09-13 15:36:49 ---> <template> - <div></div> + <div class="app-container"> + <el-card shadow="never" @click="testLoading"> + <el-calendar v-model="today"> </el-calendar> + </el-card> + </div> </template> <script> +import { reactive, toRefs } from 'vue'; +import { useStore } from 'vuex'; export default { - name: "Home" + name: 'Home', + setup() { + const store = useStore(); + + const data = reactive({ + today: new Date() + }); + + const testLoading = () => { + store.dispatch('app/startLoading'); + setTimeout(() => { + store.dispatch('app/endLoading'); + }, 8000); + }; + + return { + ...toRefs(data), + testLoading + }; + } }; </script> diff --git a/WebSite/src/views/icons/element-icons.js b/WebSite/src/views/icons/element-icons.js deleted file mode 100644 index 6b4d716..0000000 --- a/WebSite/src/views/icons/element-icons.js +++ /dev/null @@ -1,284 +0,0 @@ -const elementIcons = [ - "platform-eleme", - "eleme", - "delete-solid", - "delete", - "s-tools", - "setting", - "user-solid", - "user", - "phone", - "phone-outline", - "more", - "more-outline", - "star-on", - "star-off", - "s-goods", - "goods", - "warning", - "warning-outline", - "question", - "info", - "remove", - "circle-plus", - "success", - "error", - "zoom-in", - "zoom-out", - "remove-outline", - "circle-plus-outline", - "circle-check", - "circle-close", - "s-help", - "help", - "minus", - "plus", - "check", - "close", - "picture", - "picture-outline", - "picture-outline-round", - "upload", - "upload2", - "download", - "camera-solid", - "camera", - "video-camera-solid", - "video-camera", - "message-solid", - "bell", - "s-cooperation", - "s-order", - "s-platform", - "s-fold", - "s-unfold", - "s-operation", - "s-promotion", - "s-home", - "s-release", - "s-ticket", - "s-management", - "s-open", - "s-shop", - "s-marketing", - "s-flag", - "s-comment", - "s-finance", - "s-claim", - "s-custom", - "s-opportunity", - "s-data", - "s-check", - "s-grid", - "menu", - "share", - "d-caret", - "caret-left", - "caret-right", - "caret-bottom", - "caret-top", - "bottom-left", - "bottom-right", - "back", - "right", - "bottom", - "top", - "top-left", - "top-right", - "arrow-left", - "arrow-right", - "arrow-down", - "arrow-up", - "d-arrow-left", - "d-arrow-right", - "video-pause", - "video-play", - "refresh", - "refresh-right", - "refresh-left", - "finished", - "sort", - "sort-up", - "sort-down", - "rank", - "loading", - "view", - "c-scale-to-original", - "date", - "edit", - "edit-outline", - "folder", - "folder-opened", - "folder-add", - "folder-remove", - "folder-delete", - "folder-checked", - "tickets", - "document-remove", - "document-delete", - "document-copy", - "document-checked", - "document", - "document-add", - "printer", - "paperclip", - "takeaway-box", - "search", - "monitor", - "attract", - "mobile", - "scissors", - "umbrella", - "headset", - "brush", - "mouse", - "coordinate", - "magic-stick", - "reading", - "data-line", - "data-board", - "pie-chart", - "data-analysis", - "collection-tag", - "film", - "suitcase", - "suitcase-1", - "receiving", - "collection", - "files", - "notebook-1", - "notebook-2", - "toilet-paper", - "office-building", - "school", - "table-lamp", - "house", - "no-smoking", - "smoking", - "shopping-cart-full", - "shopping-cart-1", - "shopping-cart-2", - "shopping-bag-1", - "shopping-bag-2", - "sold-out", - "sell", - "present", - "box", - "bank-card", - "money", - "coin", - "wallet", - "discount", - "price-tag", - "news", - "guide", - "male", - "female", - "thumb", - "cpu", - "link", - "connection", - "open", - "turn-off", - "set-up", - "chat-round", - "chat-line-round", - "chat-square", - "chat-dot-round", - "chat-dot-square", - "chat-line-square", - "message", - "postcard", - "position", - "turn-off-microphone", - "microphone", - "close-notification", - "bangzhu", - "time", - "odometer", - "crop", - "aim", - "switch-button", - "full-screen", - "copy-document", - "mic", - "stopwatch", - "medal-1", - "medal", - "trophy", - "trophy-1", - "first-aid-kit", - "discover", - "place", - "location", - "location-outline", - "location-information", - "add-location", - "delete-location", - "map-location", - "alarm-clock", - "timer", - "watch-1", - "watch", - "lock", - "unlock", - "key", - "service", - "mobile-phone", - "bicycle", - "truck", - "ship", - "basketball", - "football", - "soccer", - "baseball", - "wind-power", - "light-rain", - "lightning", - "heavy-rain", - "sunrise", - "sunrise-1", - "sunset", - "sunny", - "cloudy", - "partly-cloudy", - "cloudy-and-sunny", - "moon", - "moon-night", - "dish", - "dish-1", - "food", - "chicken", - "fork-spoon", - "knife-fork", - "burger", - "tableware", - "sugar", - "dessert", - "ice-cream", - "hot-water", - "water-cup", - "coffee-cup", - "cold-drink", - "goblet", - "goblet-full", - "goblet-square", - "goblet-square-full", - "refrigerator", - "grape", - "watermelon", - "cherry", - "apple", - "pear", - "orange", - "coffee", - "ice-tea", - "ice-drink", - "milk-tea", - "potato-strips", - "lollipop", - "ice-cream-square", - "ice-cream-round" -]; - -export default elementIcons; diff --git a/WebSite/src/views/icons/index.vue b/WebSite/src/views/icons/index.vue deleted file mode 100644 index e78635b..0000000 --- a/WebSite/src/views/icons/index.vue +++ /dev/null @@ -1,112 +0,0 @@ -<template> - <div class="icons-container"> - <!-- <aside> - <a - href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/icon.html" - target="_blank" - >Add and use - </a> - </aside> --> - <el-tabs type="border-card"> - <el-tab-pane label="Icons"> - <div class="grid"> - <div - v-for="item of svgIcons" - :key="item" - @click="handleClipboard(generateIconCode(item), $event)" - > - <el-tooltip placement="top"> - <div slot="content"> - {{ generateIconCode(item) }} - </div> - <div class="icon-item"> - <svg-icon :icon-class="item" class-name="disabled" /> - <span>{{ item }}</span> - </div> - </el-tooltip> - </div> - </div> - </el-tab-pane> - <el-tab-pane label="Element-UI Icons"> - <div class="grid"> - <div - v-for="item of elementIcons" - :key="item" - @click="handleClipboard(generateElementIconCode(item), $event)" - > - <el-tooltip placement="top"> - <div slot="content"> - {{ generateElementIconCode(item) }} - </div> - <div class="icon-item"> - <i :class="'el-icon-' + item" /> - <span>{{ item }}</span> - </div> - </el-tooltip> - </div> - </div> - </el-tab-pane> - </el-tabs> - </div> -</template> - -<script> -import clipboard from "@/utils/clipboard"; -import svgIcons from "./svg-icons"; -import elementIcons from "./element-icons"; - -export default { - name: "Icons", - data() { - return { - svgIcons, - elementIcons - }; - }, - methods: { - generateIconCode(symbol) { - return `<svg-icon icon-class="${symbol}" />`; - }, - generateElementIconCode(symbol) { - return `<i class="el-icon-${symbol}" />`; - }, - handleClipboard(text, event) { - clipboard(text, event); - } - } -}; -</script> - -<style lang="scss" scoped> -.icons-container { - // margin: 10px 20px 0; - overflow: hidden; - - .grid { - position: relative; - display: grid; - grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); - } - - .icon-item { - margin: 20px; - height: 85px; - text-align: center; - width: 100px; - float: left; - font-size: 30px; - color: #24292e; - cursor: pointer; - } - - span { - display: block; - font-size: 16px; - margin-top: 10px; - } - - .disabled { - pointer-events: none; - } -} -</style> diff --git a/WebSite/src/views/icons/svg-icons.js b/WebSite/src/views/icons/svg-icons.js deleted file mode 100644 index 4b220e1..0000000 --- a/WebSite/src/views/icons/svg-icons.js +++ /dev/null @@ -1,10 +0,0 @@ -const req = require.context("../../icons/svg", false, /\.svg$/); -const requireAll = requireContext => requireContext.keys(); - -const re = /\.\/(.*)\.svg/; - -const svgIcons = requireAll(req).map(i => { - return i.match(re)[1]; -}); - -export default svgIcons; diff --git a/WebSite/src/views/login/auth-redirect.vue b/WebSite/src/views/login/auth-redirect.vue deleted file mode 100644 index 65ee12b..0000000 --- a/WebSite/src/views/login/auth-redirect.vue +++ /dev/null @@ -1,15 +0,0 @@ -<script> -export default { - name: "AuthRedirect", - created() { - const hash = window.location.search.slice(1); - if (window.localStorage) { - window.localStorage.setItem("x-admin-oauth-code", hash); - window.close(); - } - }, - render: function(h) { - return h(); // avoid warning message - } -}; -</script> diff --git a/WebSite/src/views/login/components/SocialSignin.vue b/WebSite/src/views/login/components/SocialSignin.vue deleted file mode 100644 index f85e730..0000000 --- a/WebSite/src/views/login/components/SocialSignin.vue +++ /dev/null @@ -1,76 +0,0 @@ -<template> - <div class="social-signup-container"> - <div class="sign-btn" @click="wechatHandleClick('wechat')"> - <span class="wx-svg-container" - ><svg-icon icon-class="wechat" class="icon" - /></span> - WeChat - </div> - <div class="sign-btn" @click="tencentHandleClick('tencent')"> - <span class="qq-svg-container" - ><svg-icon icon-class="qq" class="icon" - /></span> - QQ - </div> - </div> -</template> - -<script> -// import openWindow from '@/utils/open-window' - -export default { - name: "SocialSignin", - methods: { - wechatHandleClick(thirdpart) { - alert("ok"); - // this.$store.commit('SET_AUTH_TYPE', thirdpart) - // const appid = 'xxxxx' - // const redirect_uri = encodeURIComponent('xxx/redirect?redirect=' + window.location.origin + '/auth-redirect') - // const url = 'https://open.weixin.qq.com/connect/qrconnect?appid=' + appid + '&redirect_uri=' + redirect_uri + '&response_type=code&scope=snsapi_login#wechat_redirect' - // openWindow(url, thirdpart, 540, 540) - }, - tencentHandleClick(thirdpart) { - alert("ok"); - // this.$store.commit('SET_AUTH_TYPE', thirdpart) - // const client_id = 'xxxxx' - // const redirect_uri = encodeURIComponent('xxx/redirect?redirect=' + window.location.origin + '/auth-redirect') - // const url = 'https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=' + client_id + '&redirect_uri=' + redirect_uri - // openWindow(url, thirdpart, 540, 540) - } - } -}; -</script> - -<style lang="scss" scoped> -.social-signup-container { - margin: 20px 0; - .sign-btn { - display: inline-block; - cursor: pointer; - } - .icon { - color: #fff; - font-size: 24px; - margin-top: 8px; - } - .wx-svg-container, - .qq-svg-container { - display: inline-block; - width: 40px; - height: 40px; - line-height: 40px; - text-align: center; - padding-top: 1px; - border-radius: 4px; - margin-bottom: 20px; - margin-right: 5px; - } - .wx-svg-container { - background-color: #24da70; - } - .qq-svg-container { - background-color: #6ba2d6; - margin-left: 50px; - } -} -</style> diff --git a/WebSite/src/views/login/index.vue b/WebSite/src/views/login/index.vue index 967bafc..2477853 100644 --- a/WebSite/src/views/login/index.vue +++ b/WebSite/src/views/login/index.vue @@ -1,38 +1,65 @@ <template> - <div class="login-warp"> - <div class="login-container"> - <el-form - ref="loginForm" - :model="loginForm" - :rules="loginRules" - class="login-form" - autocomplete="on" - label-position="left" - > - <div class="title-container"> - <h3 class="title"> - {{ defaultSettings.title || "Vue Element Admin" }} - </h3> - </div> + <div class="login-container"> + <vue-particles + v-if="dynamicLoginBg" + :color="dynamicBgColor" + :particleOpacity="0.1" + :particlesNumber="15" + shapeType="circle" + :particleSize="100" + :linesColor="dynamicBgColor" + :linesWidth="1" + :lineLinked="true" + :lineOpacity="0.4" + :linesDistance="150" + :moveSpeed="3" + :hoverEffect="true" + hoverMode="grab" + :clickEffect="true" + clickMode="push" + ></vue-particles> + + <div class="login-inner-container"> + <div class="release-info" @click="showSelectUser = !showSelectUser"> + <span>{{ releaseCycle }}</span> + </div> - <div class="el-form-item-container"> - <el-form-item prop="username"> + <transition name="fade-transform-top"> + <el-form + v-show="!showSelectUser" + ref="loginForm" + :model="formData" + :rules="formRules" + class="login-form" + autocomplete="on" + label-position="left" + > + <div class="title-container"> + <h3 class="title"> + <svg-icon + v-if="title === 'Vue Element Next'" + icon-class="001-adwords" + className="logo-icon" + /> + {{ title === 'Vue Element Next' ? title.substring(1) : title }} + </h3> + </div> + + <el-form-item prop="account"> <span class="svg-container"> <svg-icon icon-class="user" /> </span> <el-input - ref="username" - v-model="loginForm.username" - placeholder="Username" - name="username" + ref="account" + v-model="formData.account" + placeholder="account" + name="account" type="text" tabindex="1" autocomplete="on" /> </el-form-item> - </div> - <div class="el-form-item-container"> <el-tooltip v-model="capsTooltip" content="Caps lock is On" @@ -46,299 +73,303 @@ <el-input :key="passwordType" ref="password" - v-model="loginForm.password" + v-model="formData.password" :type="passwordType" placeholder="Password" name="password" tabindex="2" autocomplete="on" - @keyup.native="checkCapslock" + @keyup="checkCapslock" @blur="capsTooltip = false" - @keyup.enter.native="handleLogin" + @keyup.enter="handleLogin" /> - <span class="show-pwd" @click="showPwd"> + <span class="show-pwd" @click="showPassword"> <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /> </span> </el-form-item> </el-tooltip> + + <el-button + :loading="loading" + type="primary" + size="medium" + style="width:100%" + @click.prevent="handleLogin" + >Login</el-button + > + </el-form> + </transition> + + <transition name="fade-transform-bottom"> + <div v-if="showSelectUser" class="login-form"> + <select-user :userList="userList" @handle-confirm="handleSetUser" /> </div> + </transition> - <el-form-item prop="status"> - <jc-range - style="margin-top:30px" - :status.sync="loginForm.status" - :successFun="onMpanelSuccess" - :errorFun="onMpanelError" - @handle-confirm="handleLogin" - ></jc-range> - </el-form-item> - - <!-- <el-button - :loading="loading" - type="primary" - style="width:100%;margin-bottom:30px;margin-top:30px" - @click.native.prevent="handleLogin" - >ç™» 录</el-button - > --> - - <!-- <div style="position:relative"> - <div class="tips"> - <span>Username : admin</span> - <span>Password : any</span> + <!-- <div class="svg-link-container"> + <div class="icon-container"> + <a href="https://v3.vuejs.org/" title="Vue.js" + ><svg-icon icon-class="vue" className="vue-icon" + /></a> </div> - <div class="tips"> - <span style="margin-right:18px;">Username : editor</span> - <span>Password : any</span> + <div class="icon-container"> + <a href="https://element-plus.gitee.io/#/zh-CN" title="Element Plus"> + <svg-icon icon-class="element" className="element-icon" /> + </a> + </div> + <div class="icon-container"> + <a + href="http://git.seaskysh.com.cn:8800/dongjunhua/vue-element-next" + title="GitLab" + > + <svg-icon icon-class="gitlab" className="gitlab-icon" /> + </a> </div> + </div> - <el-button - class="thirdparty-button" - type="primary" - @click="showDialog = true" - > - Or connect with - </el-button> + <div class="info-container"> + <div class="text-container"> + <span style="margin-right:10px" + >Ver. {{ `${version}(${coreVersion})` }} + </span> + <span>Powered by Vue.js v3 {{ '&' }} Element Plus</span> + </div> </div> --> - </el-form> - - <el-dialog title="Or connect with" :visible.sync="showDialog"> - Can not be simulated on local, so please combine you own business - simulation! ! ! - <br /> - <br /> - <br /> - <social-sign /> - </el-dialog> </div> - <select-user - :visible.sync="dialogSelectUser.visible" - :userList="dialogSelectUser.userList" - @handle-confirm="setUser" - /> - <modify-password - :visible.sync="dialogModifyPassword.visible" - :isInitial="true" - @handle-confirm="selectUser" - /> </div> </template> <script> -import { validUsername } from "@/utils/validate"; -import SocialSign from "./components/SocialSignin"; -import SelectUser from "@/components/SelectUser"; -import ModifyPassword from "@/components/ModifyPassword"; -import JcRange from "@/components/JcRange"; +import defaultSettings from '@/settings'; +import { + ref, + onMounted, + reactive, + nextTick, + toRefs, + computed, + watch +} from 'vue'; +import { useStore } from 'vuex'; +import { useRoute } from 'vue-router'; +// import router from '@/router'; +// import { useRouter } from 'vue-router'; +import AuthenticationToken from '@/core/model/AuthenticationToken'; +import SelectUser from './components/SelectUser'; export default { - name: "Login", - components: { SocialSign, SelectUser, JcRange, ModifyPassword }, - data() { - const validateUsername = (rule, value, callback) => { - callback(); - // if (!validUsername(value)) { - // callback(new Error("Please enter the correct user name")); - // } else { - // callback(); - // } - }; - const validatePassword = (rule, value, callback) => { - callback(); - // if (value.length < 6) { - // callback(new Error("The password can not be less than 6 digits")); - // } else { - // callback(); - // } - }; - const checkStatus = (rule, value, callback) => { - if (!value) { - callback(new Error("请拖动滑å—完æˆéªŒè¯")); - } else { - callback(); - } - }; - return { - defaultSettings: require("@/settings.js"), - loginForm: { - username: "admin", - password: "123456", - status: false + name: 'Login', + components: { + SelectUser + }, + setup() { + // important!! this can't be used inside setup + // useStore & useRouter can only be used inside setup + const store = useStore(); + const route = useRoute(); + const loginForm = ref(null); + const account = ref(null); + const password = ref(null); + const data = reactive({ + title: defaultSettings.applicationName, + releaseCycle: defaultSettings.releaseCycle, + version: defaultSettings.version, + coreVersion: defaultSettings.coreVersion, + dynamicLoginBg: defaultSettings.dynamicLoginBg, + formData: { + account: '', + password: '' }, - loginRules: { - username: [ - { required: true, trigger: "blur", validator: validateUsername } + formRules: { + account: [ + { required: true, trigger: 'blur', validator: validateAccount } ], password: [ - { required: true, trigger: "blur", validator: validatePassword } - ], - status: [{ trigger: "change", validator: checkStatus }] + { required: true, trigger: 'blur', validator: validatePassword } + ] }, - passwordType: "password", + passwordType: 'password', capsTooltip: false, - dialogVisible: false, loading: false, showDialog: false, redirect: undefined, - radio: "1", otherQuery: {}, - dialogSelectUser: { - visible: false, - userList: [] - }, - dialogModifyPassword: { - visible: false + userList: [], + showSelectUser: false + }); + + const dynamicBgColor = computed(() => { + if (store.state.app.themes.find(t => t.active).className === 'light') { + return '#aaa'; + } + if (store.state.app.themes.find(t => t.active).className === 'dark') { + return '#ddd'; } + return '#ddd'; + }); + + const validateAccount = (rule, value, callback) => { + // do valid here + // if invalid, callback(new Error()) + callback(); }; - }, - watch: { - $route: { - handler: function(route) { - const query = route.query; - if (query) { - this.redirect = query.redirect; - this.otherQuery = this.getOtherQuery(query); - } - }, - immediate: true - } - }, - created() { - // window.addEventListener('storage', this.afterQRScan) - }, - mounted() { - if (this.loginForm.username === "") { - this.$refs.username.focus(); - } else if (this.loginForm.password === "") { - this.$refs.password.focus(); - } - }, - destroyed() { - // window.removeEventListener('storage', this.afterQRScan) - }, - methods: { - onMpanelSuccess() { - this.$refs.loginForm.validate(_ => {}); - }, - onMpanelError() {}, - submitForm(formName) { - this.$refs[formName].validate(valid => { - if (valid) { - alert("submit!"); - } else { - console.log("error submit!!"); - return false; - } - }); - }, - checkCapslock(e) { + const validatePassword = (rule, value, callback) => { + // do valid here + // if invalid, callback(new Error()) + callback(); + }; + const checkCapslock = e => { const { key } = e; - this.capsTooltip = key && key.length === 1 && key >= "A" && key <= "Z"; - }, - showPwd() { - if (this.passwordType === "password") { - this.passwordType = ""; + data.capsTooltip = key && key.length === 1 && key >= 'A' && key <= 'Z'; + }; + const showPassword = async () => { + if (data.passwordType === 'password') { + data.passwordType = ''; } else { - this.passwordType = "password"; + data.passwordType = 'password'; } - this.$nextTick(() => { - this.$refs.password.focus(); - }); - }, - handleLogin() { - this.$refs.loginForm.validate(async valid => { + await nextTick(); + password.value.focus(); + }; + const handleLogin = () => { + loginForm.value.validate(async valid => { if (valid) { - this.loading = true; - try { - const { isInitial, users } = await this.$store.dispatch( - "user/login", - this.loginForm - ); - this.dialogSelectUser.userList = users; - // 首次登录必须修改密ç - if (isInitial === "YES") { - this.dialogModifyPassword.visible = true; + const token = new AuthenticationToken( + data.formData.account, + data.formData.password + ); + await store.dispatch('subject/login', token); + const userList = store.state.subject.account; + console.log('userList', userList); + if (userList) { + if (userList.length > 1) { + data.userList = userList; + data.showSelectUser = true; } else { - this.selectUser(); + const permitOptions = { authorizationToken: userList[0] }; + await store.dispatch('subject/permit', permitOptions); } - } catch (err) { - this.loading = false; } + } else { + console.log('error submit!!'); + return false; } }); - }, - selectUser() { - // 当å‰è´¦å·åªæœ‰ä¸€ä¸ªå…³è”用户直接登录,å¦åˆ™é€‰æ‹©ç”¨æˆ· - if (this.dialogSelectUser.userList.length === 1) { - this.setUser(this.dialogSelectUser.userList[0].id); - } else { - this.dialogSelectUser.visible = true; - } - }, - async setUser(id) { - try { - await this.$store.dispatch("user/setUser", id); - this.$router.push({ - path: "/" - }); - } catch (err) { - this.loading = false; + }; + const handleSetUser = async userId => { + const permitOptions = { authorizationToken: userId }; + if (data.otherQuery.redirect_uri) { + permitOptions.afterPermitted = token => { + window.location.href = `${data.otherQuery.redirect_uri}?code=${token}`; + }; } - }, - // handleLogin() { - // // this.dialogVisible = true; - // // return; - // this.$refs.loginForm.validate(valid => { - // if (valid) { - // this.loading = true; - // this.$store - // .dispatch("user/login", this.loginForm) - // .then(() => { - // this.$router.push({ - // path: this.redirect || "/", - // query: this.otherQuery - // }); - // this.loading = false; - // }) - // .catch(() => { - // this.loading = false; - // }); - // } else { - // console.log("error submit!!"); - // return false; - // } - // }); - // }, - getOtherQuery(query) { + await store.dispatch('subject/permit', permitOptions); + }; + const getQuery = query => { return Object.keys(query).reduce((acc, cur) => { - if (cur !== "redirect") { + if (cur !== 'redirect') { acc[cur] = query[cur]; } return acc; }, {}); - } - // afterQRScan() { - // if (e.key === 'x-admin-oauth-code') { - // const code = getQueryObject(e.newValue) - // const codeMap = { - // wechat: 'code', - // tencent: 'code' - // } - // const type = codeMap[this.auth_type] - // const codeName = code[type] - // if (codeName) { - // this.$store.dispatch('LoginByThirdparty', codeName).then(() => { - // this.$router.push({ path: this.redirect || '/' }) - // }) - // } else { - // alert('第三方登录失败') - // } - // } - // } + }; + const focus = () => { + if (data.formData.account === '') { + account.value.focus(); + } else if (data.formData.password === '') { + password.value.focus(); + } + }; + + watch( + () => route.path, + () => { + data.otherQuery = getQuery(route.query); + }, + { immediate: true } + ); + + onMounted(() => { + focus(); + }); + + return { + loginForm, + account, + password, + ...toRefs(data), + dynamicBgColor, + checkCapslock, + showPassword, + handleLogin, + handleSetUser + }; } }; </script> +<style lang="scss" scoped> +/* particles */ +#particles-js { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +/* footer */ +.svg-link-container, +.info-container { + position: absolute; + display: flex; + width: 100%; + height: 40px; + justify-content: center; +} + +.svg-link-container { + bottom: 15%; + + .icon-container { + display: flex; + justify-content: center; + align-items: center; + padding: 10px; + + .vue-icon { + width: 1.3em !important; + height: 1.3em !important; + } + .element-icon { + width: 5em !important; + height: 2em !important; + } + .gitlab-icon { + width: 4.8em !important; + height: 2em !important; + } + } +} + +.info-container { + bottom: calc(15% - 50px); + + .text-container { + display: flex; + justify-content: center; + align-items: center; + padding: 10px; + + span { + color: #aaaaaa; + font-size: 14px; + } + } +} +</style> + <style lang="scss"> /* ä¿®å¤input 背景ä¸åè°ƒ å’Œå…‰æ ‡å˜è‰² */ /* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */ @@ -352,6 +383,7 @@ $cursor: #fff; color: $cursor; } } + /* reset element-ui css */ .login-container { .el-input { @@ -365,9 +397,10 @@ $cursor: #fff; -webkit-appearance: none; border-radius: 0px; padding: 12px 5px 12px 15px; - color: $light_gray; + // color: $light_gray; height: 47px; - caret-color: $cursor; + // caret-color: $cursor; + font-size: 16px; &:-webkit-autofill { box-shadow: 0 0 0px 1000px $bg inset !important; @@ -376,38 +409,61 @@ $cursor: #fff; } } - .el-form-item-container { + .el-form-item { border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.1); border-radius: 5px; color: #454545; - margin-bottom: 22px; - - .el-form-item { - margin-bottom: 0px !important; - } } } </style> <style lang="scss" scoped> -$bg: #2d3a4b; +$bg: rgb(41, 39, 50); $dark_gray: #889aa4; $light_gray: #eee; -.login-warp { - min-height: 100%; - width: 100%; - background-color: $bg; - overflow: hidden; -} + .login-container { min-height: 100%; width: 100%; - background-color: $bg; overflow: hidden; + position: relative; + display: flex; + justify-content: center; - .login-form { + .login-inner-container { + min-height: 600px; + width: 100%; + overflow: hidden; position: relative; + display: flex; + justify-content: center; + + .release-info { + width: 100px; + height: 100px; + display: flex; + justify-content: center; + align-items: center; + background-color: #409eff; + position: fixed; + top: -50px; + right: -50px; + transform: rotate(45deg); + cursor: pointer; + + span { + user-select: none; + padding-top: 65px; + font-size: 18px; + font-weight: bold; + color: #eeeeee; + } + } + } + + .login-form { + position: absolute; width: 520px; max-width: 100%; padding: 160px 35px 0; @@ -417,7 +473,7 @@ $light_gray: #eee; .tips { font-size: 14px; - color: #fff; + // color: #fff; margin-bottom: 10px; span { @@ -440,10 +496,19 @@ $light_gray: #eee; .title { font-size: 26px; - color: $light_gray; + // color: $light_gray; margin: 0px auto 40px auto; text-align: center; font-weight: bold; + + .logo-icon { + position: relative; + top: -1px; + left: 7px; + transform: rotate(180deg); + width: 1em !important; + height: 1em !important; + } } } diff --git a/WebSite/src/views/nested/menu1/index.vue b/WebSite/src/views/nested/menu1/index.vue deleted file mode 100644 index 30cb670..0000000 --- a/WebSite/src/views/nested/menu1/index.vue +++ /dev/null @@ -1,7 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1"> - <router-view /> - </el-alert> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-1/index.vue b/WebSite/src/views/nested/menu1/menu1-1/index.vue deleted file mode 100644 index 27e173a..0000000 --- a/WebSite/src/views/nested/menu1/menu1-1/index.vue +++ /dev/null @@ -1,7 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-1" type="success"> - <router-view /> - </el-alert> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-2/index.vue b/WebSite/src/views/nested/menu1/menu1-2/index.vue deleted file mode 100644 index 0c86276..0000000 --- a/WebSite/src/views/nested/menu1/menu1-2/index.vue +++ /dev/null @@ -1,7 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-2" type="success"> - <router-view /> - </el-alert> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue b/WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue deleted file mode 100644 index f87d88f..0000000 --- a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-1/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template functional> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-2-1" type="warning" /> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue b/WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue deleted file mode 100644 index d88789f..0000000 --- a/WebSite/src/views/nested/menu1/menu1-2/menu1-2-2/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template functional> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-2-2" type="warning" /> - </div> -</template> diff --git a/WebSite/src/views/nested/menu1/menu1-3/index.vue b/WebSite/src/views/nested/menu1/menu1-3/index.vue deleted file mode 100644 index f7cd073..0000000 --- a/WebSite/src/views/nested/menu1/menu1-3/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template functional> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 1-3" type="success" /> - </div> -</template> diff --git a/WebSite/src/views/nested/menu2/index.vue b/WebSite/src/views/nested/menu2/index.vue deleted file mode 100644 index 19dd48f..0000000 --- a/WebSite/src/views/nested/menu2/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template> - <div style="padding:30px;"> - <el-alert :closable="false" title="menu 2" /> - </div> -</template> diff --git a/WebSite/src/views/outer/index.vue b/WebSite/src/views/outer/index.vue index 69b91a9..fff765e 100644 --- a/WebSite/src/views/outer/index.vue +++ b/WebSite/src/views/outer/index.vue @@ -2,8 +2,8 @@ * @Description: * @Autor: dong jun hua * @Date: 2020-07-08 16:06:00 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-07-09 10:56:45 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-20 10:05:22 --> <template> @@ -14,10 +14,10 @@ <script> export default { - name: "Outer", + name: 'Outer', data() { return { - url: "" + url: '' }; }, watch: { @@ -37,8 +37,8 @@ export default { }, methods: { setFrameHeight() { - const container = document.querySelector(".frame-container"); - const frame = document.querySelector(".frame"); + const container = document.querySelector('.frame-container'); + const frame = document.querySelector('.frame'); const height = container.offsetHeight; frame.style.height = `${height}px`; } diff --git a/WebSite/src/views/pdf/content.js b/WebSite/src/views/pdf/content.js deleted file mode 100644 index d5bc71d..0000000 --- a/WebSite/src/views/pdf/content.js +++ /dev/null @@ -1,58 +0,0 @@ -const title = "Plans for the Next Iteration of Vue.js"; - -const content = `<p>Last week at<a href="https://vuejs.london/summary" rel="nofollow">Vue.js London</a>I gave a brief sneak peek of what’s coming in the next major version of Vue. This post provides an in-depth overview of the plan.</p> -<p><img class=" wscnph" src="https://wpimg.wallstcn.com/b8a1d7be-0b73-41b8-be8c-7c01c93cab66.png" data-wscntype="image" data-wscnh="742" data-wscnw="692" /></p> -<h3>Why a new majorversion?</h3> -<p>Vue 2.0 was released<a href="https://medium.com/the-vue-point/vue-2-0-is-here-ef1f26acf4b8" rel="nofollow">exactly two years ago</a>(how time flies!). During this period, the core has remained backwards compatible with five minor releases. We’ve accumulated a number of ideas that would bring improvements, but they were held off because they would result in breaking changes. At the same time, the JavaScript ecosystem and the language itself has been evolving rapidly. There are greatly improved tools that could enhance our workflow, and many new language features that could unlock simpler, more complete, and more efficient solutions to the problems Vue is trying to solve. What’s more exciting is that we are seeing ES2015 support becoming a baseline for all major evergreen browsers. Vue 3.0 aims to leverage these new language features to make Vue core smaller, faster, and more powerful.</p> -<p>Vue 3.0 is currently in prototyping phase, and we have already implemented a runtime close to feature-parity with 2.x.<strong>Many of the items listed below are either already implemented, or confirmed to be feasible. Ones that are not yet implemented or still in exploration phase are marked with a *.</strong></p> -<h3>The Details</h3> -<h4>High-Level APIChanges</h4> -<blockquote>TL;DR: Everything except render function API and scoped-slots syntax will either remain the same or can be made 2.x compatible via a compatibility build.</blockquote> -<p>Since it’s a new major, there is going to be some breaking changes. However, we take backwards compatibility seriously, so we want to start communicating these changes as soon as possible. Here’s the currently planned public API changes:</p> -<ul><li>Template syntax will remain 99% the same. There may be small tweaks in scoped slots syntax, but other than that we have no plans to change anything else for templates.</li><li>3.0 will support class-based components natively, with the aim to provide an API that is pleasant to use in native ES2015 without requiring any transpilation or stage-x features. Most current options will have a reasonable mapping in the class-based API. Stage-x features such as class fields and decorators can still be used optionally to enhance the authoring experience. In addition, the API is designed with TypeScript type inference in mind. The 3.x codebase will itself be written in TypeScript, and providing improved TypeScript support. (That said, usage of TypeScript in an application is still entirely optional.)</li><li>The 2.x object-based component format will still be supported by internally transforming the object to a corresponding class.</li><li>Mixins will still be supported.*</li><li>Top level APIs will likely receive an overhaul to avoid globally mutating the Vue runtime when installing plugins. Instead, plugins will be applied and scoped to a component tree. This will make it easier to test components that rely on specific plugins, and also make it possible to mount multiple Vue applications on the same page with different plugins, but using the same Vue runtime.*</li><li>Functional components can finally be plain functions —however, async components will now need to be explicitly created via a helper function.</li><li>The part that will receive the most changes is the Virtual DOM format used in render functions. We are currently collecting feedback from major library authors and will be sharing more details as we are more confident of the changes, but as long as you don’t heavily rely on hand-written (non-JSX) render functions in your app, upgrading should be a reasonably straightforward process.</li></ul> -<h4>Source Code Architecture</h4> -<blockquote>TL;DR: better decoupled internal modules, TypeScript, and a codebase that is easier to contribute to.</blockquote> -<p>We are re-writing 3.0 from the ground up for a cleaner and more maintainable architecture, in particular trying to make it easier to contribute to. We are breaking some internal functionalities into individual packages in order to isolate the scope of complexity. For example, the observer module will become its own package, with its own public API and tests. Note this does not affect framework-level API— you will not have to manually import individual bits from multiple packages in order to use Vue. Instead, the final Vue package is assembled using these internal packages.</p> -<p>The codebase is also now written in TypeScript. Although this will make proficiency in TypeScript a pre-requisite for contributing to the new codebase, we believe the type information and IDE support will actually make it easier for a new contributor to make meaningful contributions.</p> -<p>Decoupling the observer and scheduler into separate packages also allows us to easily experiment with alternative implementations of these parts. For example, we can implement an IE11 compatible observer implementation with the same API, or an alternative scheduler that leverages<code>requestIdleCallback</code>to yield to the browser during long updates.*</p> -<p><img class=" wscnph" src="https://wpimg.wallstcn.com/4d0b5fb2-d7f9-48fd-8f1b-03362b534dd9.png" data-wscntype="image" data-wscnh="716" data-wscnw="460" /></p> -<h4>Observation Mechanism</h4> -<blockquote>TL;DR: more complete, precise, efficient and debuggable reactivity tracking & API for creating observables.</blockquote> -<p>3.0 will ship with a Proxy-based observer implementation that provides reactivity tracking with full language coverage. This eliminates a number of limitations of Vue 2’s current implementation based on<code>Object.defineProperty</code>:</p> -<p>The new observer also features the following:</p> -<p>Easily understand why a component is re-rendering</p> -<p><img class=" wscnph" src="https://wpimg.wallstcn.com/a0c9d811-1ef9-4628-8976-f7c1aaa66da0.png" data-wscntype="image" data-wscnh="540" data-wscnw="789" /></p> -<h4>Other Runtime Improvements</h4> -<blockquote>TL;DR: smaller, faster, tree-shakable features, fragments & portals, custom renderer API.</blockquote> -<h4>Compiler Improvements*</h4> -<blockquote>TL;DR: tree-shaking friendly output, more AOT optimizations, parser with better error info and source map support.</blockquote> -<h4>IE11 Support*</h4> -<blockquote>TL;DR: it will be supported, but in a separate build with the same reactivity limitations of Vue 2.x.</blockquote> -<p>The new codebase currently targets evergreen browsers only and assumes baseline native ES2015 support. But alas, we know a lot of our users still need to support IE11 for the foreseeable future. Most of the ES2015 features used can be transpiled / polyfilled for IE11, with the exception for Proxies. Our plan is to implement an alternative observer with the same API, but using the good old ES5<code>Object.defineProperty</code>API. A separate build of Vue 3.x will be distributed using this observer implementation. However, this build will be subject to the same change detection caveats of Vue 2.x and thus not fully compatible with the “modern†build of 3.x. We are aware that this imposes some inconvenience for library authors as they will need to be aware of compatibility for two different builds, but we will make sure to provide clear guidelines on this when we reach that stage.</p> -<h3>How Do We GetThere</h3> -<p>First of all, although we are announcing it today, we do not have a definitive timeline yet. What we do know at the moment is the steps we will be taking to get there:</p> -<h4>1. Internal Feedback for the Runtime Prototype</h4> -<p>This is the phase we are in right now. Currently, we already have a working runtime prototype that includes the new observer, Virtual DOM and component implementation. We have invited a group of authors of influential community projects to provide feedback for the internal changes, and would like to make sure they are comfortable with the changes before moving forward. We want to ensure that important libraries in the ecosystem will be ready at the same time when we release 3.0, so that users relying on those projects can upgrade easily.</p> -<h4>2. Public Feedback viaRFCs</h4> -<p>Once we gain a certain level of confidence in the new design, for each breaking change we will be opening a dedicated RFC issue which includes:</p> -<p>We will anticipate public feedback from the wider community to help us consolidate these ideas.</p> -<h4>3. Introduce Compatible Features in 2.x &2.x-next</h4> -<p>We are not forgetting about 2.x! In fact, we plan to use 2.x to progressively accustom users to the new changes. We will be gradually introducing confirmed API changes into 2.x via opt-in adaptors, and 2.x-next will allow users to try out the new Proxy-based observer.</p> -<p>The last minor release in 2.x will become LTS and continue to receive bug and security fixes for 18 months when 3.0 is released.</p> -<h4>4. AlphaPhase</h4> -<p>Next, we will finish up the compiler and server-side rendering parts of 3.0 and start making alpha releases. These will mostly be for stability testing purposes in small greenfield apps.</p> -<h4>5. BetaPhase</h4> -<p>During beta phase, our main goal is updating support libraries and tools like Vue Router, Vuex, Vue CLI, Vue DevTools and make sure they work smoothly with the new core. We will also be working with major library authors from the community to help them get ready for 3.0.</p> -<h4>6. RCPhase</h4> -<p>Once we consider the API and codebase stable, we will enter RC phase with API freeze. During this phase we will also work on a “compat buildâ€: a build of 3.0 that includes compatibility layers for 2.x API. This build will also ship with a flag you can turn on to emit deprecation warnings for 2.x API usage in your app. The compat build can be used as a guide to upgrade your app to 3.0.</p> -<h4>7. IE11build</h4> -<p>The last task before the final release will be the IE11 compatibility build as mentioned above.</p> -<h4>8. FinalRelease</h4> -<p>In all honesty, we don’t know when this will happen yet, but likely in 2019. Again, we care more about shipping something that is solid and stable rather than hitting specific dates. There is a lot of work to be done, but we are excited for what’s coming next!</p>`; - -const data = { - title, - content -}; - -export default data; diff --git a/WebSite/src/views/pdf/download.vue b/WebSite/src/views/pdf/download.vue deleted file mode 100644 index 74ba12b..0000000 --- a/WebSite/src/views/pdf/download.vue +++ /dev/null @@ -1,214 +0,0 @@ -<template> - <div - v-loading.fullscreen.lock="fullscreenLoading" - class="main-article" - element-loading-text="Efforts to generate PDF" - > - <div class="article__heading"> - <div class="article__heading__title"> - {{ article.title }} - </div> - </div> - <div style="color: #ccc;"> - This article is from Evan You on - <a - target="_blank" - href="https://medium.com/the-vue-point/plans-for-the-next-iteration-of-vue-js-777ffea6fabf" - >medium</a - > - </div> - <div ref="content" class="node-article-content" v-html="article.content" /> - </div> -</template> - -<script> -export default { - data() { - return { - article: "", - fullscreenLoading: true - }; - }, - mounted() { - this.fetchData(); - }, - methods: { - fetchData() { - import("./content.js").then(data => { - const { title } = data.default; - document.title = title; - this.article = data.default; - setTimeout(() => { - this.fullscreenLoading = false; - this.$nextTick(() => { - window.print(); - }); - }, 3000); - }); - } - } -}; -</script> - -<style lang="scss"> -@mixin clearfix { - &:before { - display: table; - content: ""; - clear: both; - } - - &:after { - display: table; - content: ""; - clear: both; - } -} - -.main-article { - padding: 20px; - margin: 0 auto; - display: block; - width: 740px; - background: #fff; -} - -.article__heading { - position: relative; - padding: 0 0 20px; - overflow: hidden; -} - -.article__heading__title { - display: block; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - line-clamp: 2; - word-wrap: break-word; - overflow-wrap: break-word; - font-size: 32px; - line-height: 48px; - font-weight: 600; - color: #333; - overflow: hidden; -} - -.node-article-content { - margin: 20px 0 0; - @include clearfix; - font-size: 16px; - color: #333; - letter-spacing: 0.5px; - line-height: 28px; - margin-bottom: 30px; - font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", - Times, serif; - - & > :last-child { - margin-bottom: 0; - } - - b, - strong { - font-weight: inherit; - font-weight: bolder; - } - - img { - max-width: 100%; - display: block; - margin: 0 auto; - } - - p { - font-weight: 400; - font-style: normal; - font-size: 21px; - line-height: 1.58; - letter-spacing: -0.003em; - } - - ul { - margin-bottom: 30px; - } - - li { - --x-height-multiplier: 0.375; - --baseline-multiplier: 0.17; - - letter-spacing: 0.01rem; - font-weight: 400; - font-style: normal; - font-size: 21px; - line-height: 1.58; - letter-spacing: -0.003em; - margin-left: 30px; - margin-bottom: 14px; - } - - a { - text-decoration: none; - background-repeat: repeat-x; - background-image: linear-gradient( - to right, - rgba(0, 0, 0, 0.84) 100%, - rgba(0, 0, 0, 0) 0 - ); - background-size: 1px 1px; - background-position: 0 calc(1em + 1px); - padding: 0 6px; - } - - code { - background: rgba(0, 0, 0, 0.05); - padding: 3px 4px; - margin: 0 2px; - font-size: 16px; - display: inline-block; - } - - img { - border: 0; - } - - /* 解决 IE6-7 图片缩放锯齿问题 */ - img { - -ms-interpolation-mode: bicubic; - } - - blockquote { - --x-height-multiplier: 0.375; - --baseline-multiplier: 0.17; - font-family: medium-content-serif-font, Georgia, Cambria, "Times New Roman", - Times, serif; - letter-spacing: 0.01rem; - font-weight: 400; - font-style: italic; - font-size: 21px; - line-height: 1.58; - letter-spacing: -0.003em; - border-left: 3px solid rgba(0, 0, 0, 0.84); - padding-left: 20px; - margin-left: -23px; - padding-bottom: 2px; - } - - a { - text-decoration: none; - } - - h2, - h3, - h4 { - font-size: 34px; - line-height: 1.15; - letter-spacing: -0.015em; - margin: 53px 0 0; - } - - h4 { - font-size: 26px; - } -} -</style> diff --git a/WebSite/src/views/pdf/index.vue b/WebSite/src/views/pdf/index.vue deleted file mode 100644 index 532c964..0000000 --- a/WebSite/src/views/pdf/index.vue +++ /dev/null @@ -1,12 +0,0 @@ -<template> - <div class="app-container"> - <aside style="margin-top:15px;"> - Here we use window.print() to implement the feature of downloading PDF. - </aside> - <router-link target="_blank" to="/pdf/download"> - <el-button type="primary"> - Click to download PDF - </el-button> - </router-link> - </div> -</template> diff --git a/WebSite/src/views/permission/components/SwitchRoles.vue b/WebSite/src/views/permission/components/SwitchRoles.vue deleted file mode 100644 index 743aa9a..0000000 --- a/WebSite/src/views/permission/components/SwitchRoles.vue +++ /dev/null @@ -1,33 +0,0 @@ -<!-- - * @Description: - * @Autor: dong jun hua - * @Date: 2020-06-08 09:28:06 - * @LastEditors: dong jun hua - * @LastEditTime: 2020-06-16 10:06:27 ---> -<template> - <div> - <div style="margin-bottom:15px;">Your roles: {{ roles }}</div> - Switch roles: - <el-radio-group v-model="switchRoles"> - <el-radio-button label="editor" /> - <el-radio-button label="admin" /> - </el-radio-group> - </div> -</template> - -<script> -export default { - computed: { - roles() { - return this.$store.getters.roles; - }, - switchRoles: { - get() { - return this.roles[0]; - }, - set(val) {} - } - } -}; -</script> diff --git a/WebSite/src/views/permission/directive.vue b/WebSite/src/views/permission/directive.vue deleted file mode 100644 index 204b857..0000000 --- a/WebSite/src/views/permission/directive.vue +++ /dev/null @@ -1,131 +0,0 @@ -<template> - <div class="app-container"> - <switch-roles @change="handleRolesChange" /> - <div :key="key" style="margin-top:30px;"> - <div> - <span v-permission="['admin']" class="permission-alert"> - Only - <el-tag class="permission-tag" size="small">admin</el-tag> can see - this - </span> - <el-tag - v-permission="['admin']" - class="permission-sourceCode" - type="info" - > - v-permission="['admin']" - </el-tag> - </div> - - <div> - <span v-permission="['editor']" class="permission-alert"> - Only - <el-tag class="permission-tag" size="small">editor</el-tag> can see - this - </span> - <el-tag - v-permission="['editor']" - class="permission-sourceCode" - type="info" - > - v-permission="['editor']" - </el-tag> - </div> - - <div> - <span v-permission="['admin', 'editor']" class="permission-alert"> - Both - <el-tag class="permission-tag" size="small">admin</el-tag> and - <el-tag class="permission-tag" size="small">editor</el-tag> can see - this - </span> - <el-tag - v-permission="['admin', 'editor']" - class="permission-sourceCode" - type="info" - > - v-permission="['admin','editor']" - </el-tag> - </div> - </div> - - <div :key="'checkPermission' + key" style="margin-top:60px;"> - <aside> - In some cases, using v-permission will have no effect. For example: - Element-UI's Tab component or el-table-column and other scenes that - dynamically render dom. You can only do this with v-if. - <br /> - e.g. - </aside> - - <el-tabs type="border-card" style="width:550px;"> - <el-tab-pane v-if="checkPermission(['admin'])" label="Admin"> - Admin can see this - <el-tag class="permission-sourceCode" type="info"> - v-if="checkPermission(['admin'])" - </el-tag> - </el-tab-pane> - - <el-tab-pane v-if="checkPermission(['editor'])" label="Editor"> - Editor can see this - <el-tag class="permission-sourceCode" type="info"> - v-if="checkPermission(['editor'])" - </el-tag> - </el-tab-pane> - - <el-tab-pane - v-if="checkPermission(['admin', 'editor'])" - label="Admin-OR-Editor" - > - Both admin or editor can see this - <el-tag class="permission-sourceCode" type="info"> - v-if="checkPermission(['admin','editor'])" - </el-tag> - </el-tab-pane> - </el-tabs> - </div> - </div> -</template> - -<script> -import permission from "@/directive/permission/index.js"; // æƒé™åˆ¤æ–指令 -import checkPermission from "@/utils/permission"; // æƒé™åˆ¤æ–函数 -import SwitchRoles from "./components/SwitchRoles"; - -export default { - name: "DirectivePermission", - components: { SwitchRoles }, - directives: { permission }, - data() { - return { - key: 1 // ä¸ºäº†èƒ½æ¯æ¬¡åˆ‡æ¢æƒé™çš„æ—¶å€™é‡æ–°åˆå§‹åŒ–指令 - }; - }, - methods: { - checkPermission, - handleRolesChange() { - this.key++; - } - } -}; -</script> - -<style lang="scss" scoped> -.app-container { - /deep/ .permission-alert { - width: 320px; - margin-top: 15px; - background-color: #f0f9eb; - color: #67c23a; - padding: 8px 16px; - border-radius: 4px; - display: inline-block; - } - /deep/ .permission-sourceCode { - margin-left: 15px; - } - /deep/ .permission-tag { - background-color: #ecf5ff; - } -} -</style> diff --git a/WebSite/src/views/permission/page.vue b/WebSite/src/views/permission/page.vue deleted file mode 100644 index 0727172..0000000 --- a/WebSite/src/views/permission/page.vue +++ /dev/null @@ -1,19 +0,0 @@ -<template> - <div class="app-container"> - <switch-roles @change="handleRolesChange" /> - </div> -</template> - -<script> -import SwitchRoles from "./components/SwitchRoles"; - -export default { - name: "PagePermission", - components: { SwitchRoles }, - methods: { - handleRolesChange() { - this.$router.push({ path: "/permission/index?" + +new Date() }); - } - } -}; -</script> diff --git a/WebSite/src/views/permission/role.vue b/WebSite/src/views/permission/role.vue deleted file mode 100644 index dd0d4fd..0000000 --- a/WebSite/src/views/permission/role.vue +++ /dev/null @@ -1,302 +0,0 @@ -<template> - <div class="app-container"> - <el-button type="primary" @click="handleAddRole">New Role</el-button> - - <el-table :data="rolesList" style="width: 100%;margin-top:30px;" border> - <el-table-column align="center" label="Role Key" width="220"> - <template slot-scope="scope"> - {{ scope.row.key }} - </template> - </el-table-column> - <el-table-column align="center" label="Role Name" width="220"> - <template slot-scope="scope"> - {{ scope.row.name }} - </template> - </el-table-column> - <el-table-column align="header-center" label="Description"> - <template slot-scope="scope"> - {{ scope.row.description }} - </template> - </el-table-column> - <el-table-column align="center" label="Operations"> - <template slot-scope="scope"> - <el-button type="primary" size="small" @click="handleEdit(scope)" - >Edit</el-button - > - <el-button type="danger" size="small" @click="handleDelete(scope)" - >Delete</el-button - > - </template> - </el-table-column> - </el-table> - - <el-dialog - :visible.sync="dialogVisible" - :title="dialogType === 'edit' ? 'Edit Role' : 'New Role'" - > - <el-form :model="role" label-width="80px" label-position="left"> - <el-form-item label="Name"> - <el-input v-model="role.name" placeholder="Role Name" /> - </el-form-item> - <el-form-item label="Desc"> - <el-input - v-model="role.description" - :autosize="{ minRows: 2, maxRows: 4 }" - type="textarea" - placeholder="Role Description" - /> - </el-form-item> - <el-form-item label="Menus"> - <el-tree - ref="tree" - :check-strictly="checkStrictly" - :data="routesData" - :props="defaultProps" - show-checkbox - node-key="path" - class="permission-tree" - /> - </el-form-item> - </el-form> - <div style="text-align:right;"> - <el-button type="danger" @click="dialogVisible = false" - >Cancel</el-button - > - <el-button type="primary" @click="confirmRole">Confirm</el-button> - </div> - </el-dialog> - </div> -</template> - -<script> -import path from "path"; -import { deepClone } from "@/utils"; -import { - getRoutes, - getRoles, - addRole, - deleteRole, - updateRole -} from "@/api/role"; - -const defaultRole = { - key: "", - name: "", - description: "", - routes: [] -}; - -export default { - data() { - return { - role: Object.assign({}, defaultRole), - routes: [], - rolesList: [], - dialogVisible: false, - dialogType: "new", - checkStrictly: false, - defaultProps: { - children: "children", - label: "title" - } - }; - }, - computed: { - routesData() { - return this.routes; - } - }, - created() { - // Mock: get all routes and roles list from server - this.getRoutes(); - this.getRoles(); - }, - methods: { - async getRoutes() { - const res = await getRoutes(); - this.serviceRoutes = res.data; - this.routes = this.generateRoutes(res.data); - }, - async getRoles() { - const res = await getRoles(); - this.rolesList = res.data; - }, - - // Reshape the routes structure so that it looks the same as the sidebar - generateRoutes(routes, basePath = "/") { - const res = []; - - for (let route of routes) { - // skip some route - if (route.hidden) { - continue; - } - - const onlyOneShowingChild = this.onlyOneShowingChild( - route.children, - route - ); - - if (route.children && onlyOneShowingChild && !route.alwaysShow) { - route = onlyOneShowingChild; - } - - const data = { - path: path.resolve(basePath, route.path), - title: route.meta && route.meta.title - }; - - // recursive child routes - if (route.children) { - data.children = this.generateRoutes(route.children, data.path); - } - res.push(data); - } - return res; - }, - generateArr(routes) { - let data = []; - routes.forEach(route => { - data.push(route); - if (route.children) { - const temp = this.generateArr(route.children); - if (temp.length > 0) { - data = [...data, ...temp]; - } - } - }); - return data; - }, - handleAddRole() { - this.role = Object.assign({}, defaultRole); - if (this.$refs.tree) { - this.$refs.tree.setCheckedNodes([]); - } - this.dialogType = "new"; - this.dialogVisible = true; - }, - handleEdit(scope) { - this.dialogType = "edit"; - this.dialogVisible = true; - this.checkStrictly = true; - this.role = deepClone(scope.row); - this.$nextTick(() => { - const routes = this.generateRoutes(this.role.routes); - this.$refs.tree.setCheckedNodes(this.generateArr(routes)); - // set checked state of a node not affects its father and child nodes - this.checkStrictly = false; - }); - }, - handleDelete({ $index, row }) { - this.$confirm("Confirm to remove the role?", "Warning", { - confirmButtonText: "Confirm", - cancelButtonText: "Cancel", - type: "warning" - }) - .then(async () => { - await deleteRole(row.key); - this.rolesList.splice($index, 1); - this.$message({ - type: "success", - message: "Delete succed!" - }); - }) - .catch(err => { - console.error(err); - }); - }, - generateTree(routes, basePath = "/", checkedKeys) { - const res = []; - - for (const route of routes) { - const routePath = path.resolve(basePath, route.path); - - // recursive child routes - if (route.children) { - route.children = this.generateTree( - route.children, - routePath, - checkedKeys - ); - } - - if ( - checkedKeys.includes(routePath) || - (route.children && route.children.length >= 1) - ) { - res.push(route); - } - } - return res; - }, - async confirmRole() { - const isEdit = this.dialogType === "edit"; - - const checkedKeys = this.$refs.tree.getCheckedKeys(); - this.role.routes = this.generateTree( - deepClone(this.serviceRoutes), - "/", - checkedKeys - ); - - if (isEdit) { - await updateRole(this.role.key, this.role); - for (let index = 0; index < this.rolesList.length; index++) { - if (this.rolesList[index].key === this.role.key) { - this.rolesList.splice(index, 1, Object.assign({}, this.role)); - break; - } - } - } else { - const { data } = await addRole(this.role); - this.role.key = data.key; - this.rolesList.push(this.role); - } - - const { description, key, name } = this.role; - this.dialogVisible = false; - this.$notify({ - title: "Success", - dangerouslyUseHTMLString: true, - message: ` - <div>Role Key: ${key}</div> - <div>Role Name: ${name}</div> - <div>Description: ${description}</div> - `, - type: "success" - }); - }, - // reference: src/view/layout/components/Sidebar/SidebarItem.vue - onlyOneShowingChild(children = [], parent) { - let onlyOneChild = null; - const showingChildren = children.filter(item => !item.hidden); - - // When there is only one child route, the child route is displayed by default - if (showingChildren.length === 1) { - onlyOneChild = showingChildren[0]; - onlyOneChild.path = path.resolve(parent.path, onlyOneChild.path); - return onlyOneChild; - } - - // Show parent if there are no child route to display - if (showingChildren.length === 0) { - onlyOneChild = { ...parent, path: "", noShowingChildren: true }; - return onlyOneChild; - } - - return false; - } - } -}; -</script> - -<style lang="scss" scoped> -.app-container { - .roles-table { - margin-top: 30px; - } - .permission-tree { - margin-bottom: 30px; - } -} -</style> diff --git a/WebSite/src/views/profile/components/Account.vue b/WebSite/src/views/profile/components/Account.vue deleted file mode 100644 index 77a7b2b..0000000 --- a/WebSite/src/views/profile/components/Account.vue +++ /dev/null @@ -1,38 +0,0 @@ -<template> - <el-form> - <el-form-item label="Name"> - <el-input v-model.trim="user.name" /> - </el-form-item> - <el-form-item label="Email"> - <el-input v-model.trim="user.email" /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="submit">Update</el-button> - </el-form-item> - </el-form> -</template> - -<script> -export default { - props: { - user: { - type: Object, - default: () => { - return { - name: "", - email: "" - }; - } - } - }, - methods: { - submit() { - this.$message({ - message: "User information has been updated successfully", - type: "success", - duration: 5 * 1000 - }); - } - } -}; -</script> diff --git a/WebSite/src/views/profile/components/Activity.vue b/WebSite/src/views/profile/components/Activity.vue deleted file mode 100644 index 679ae25..0000000 --- a/WebSite/src/views/profile/components/Activity.vue +++ /dev/null @@ -1,202 +0,0 @@ -<template> - <div class="user-activity"> - <div class="post"> - <div class="user-block"> - <img - class="img-circle" - :src=" - 'https://wpimg.wallstcn.com/57ed425a-c71e-4201-9428-68760c0537c4.jpg' + - avatarPrefix - " - /> - <span class="username text-muted">Iron Man</span> - <span class="description">Shared publicly - 7:30 PM today</span> - </div> - <p> - Lorem ipsum represents a long-held tradition for designers, typographers - and the like. Some people hate it and argue for its demise, but others - ignore the hate as they create awesome tools to help create filler text - for everyone from bacon lovers to Charlie Sheen fans. - </p> - <ul class="list-inline"> - <li> - <span class="link-black text-sm"> - <i class="el-icon-share" /> - Share - </span> - </li> - <li> - <span class="link-black text-sm"> - <svg-icon icon-class="like" /> - Like - </span> - </li> - </ul> - </div> - <div class="post"> - <div class="user-block"> - <img - class="img-circle" - :src=" - 'https://wpimg.wallstcn.com/9e2a5d0a-bd5b-457f-ac8e-86554616c87b.jpg' + - avatarPrefix - " - /> - <span class="username text-muted">Captain American</span> - <span class="description">Sent you a message - yesterday</span> - </div> - <p> - Lorem ipsum represents a long-held tradition for designers, typographers - and the like. Some people hate it and argue for its demise, but others - ignore the hate as they create awesome tools to help create filler text - for everyone from bacon lovers to Charlie Sheen fans. - </p> - <ul class="list-inline"> - <li> - <span class="link-black text-sm"> - <i class="el-icon-share" /> - Share - </span> - </li> - <li> - <span class="link-black text-sm"> - <svg-icon icon-class="like" /> - Like - </span> - </li> - </ul> - </div> - <div class="post"> - <div class="user-block"> - <img - class="img-circle" - :src=" - 'https://wpimg.wallstcn.com/fb57f689-e1ab-443c-af12-8d4066e202e2.jpg' + - avatarPrefix - " - /> - <span class="username">Spider Man</span> - <span class="description">Posted 4 photos - 2 days ago</span> - </div> - <div class="user-images"> - <el-carousel :interval="6000" type="card" height="220px"> - <el-carousel-item v-for="item in carouselImages" :key="item"> - <img :src="item + carouselPrefix" class="image" /> - </el-carousel-item> - </el-carousel> - </div> - <ul class="list-inline"> - <li> - <span class="link-black text-sm" - ><i class="el-icon-share" /> Share</span - > - </li> - <li> - <span class="link-black text-sm"> - <svg-icon icon-class="like" /> Like</span - > - </li> - </ul> - </div> - </div> -</template> - -<script> -const avatarPrefix = "?imageView2/1/w/80/h/80"; -const carouselPrefix = "?imageView2/2/h/440"; - -export default { - data() { - return { - carouselImages: [ - "https://wpimg.wallstcn.com/9679ffb0-9e0b-4451-9916-e21992218054.jpg", - "https://wpimg.wallstcn.com/bcce3734-0837-4b9f-9261-351ef384f75a.jpg", - "https://wpimg.wallstcn.com/d1d7b033-d75e-4cd6-ae39-fcd5f1c0a7c5.jpg", - "https://wpimg.wallstcn.com/50530061-851b-4ca5-9dc5-2fead928a939.jpg" - ], - avatarPrefix, - carouselPrefix - }; - } -}; -</script> - -<style lang="scss" scoped> -.user-activity { - .user-block { - .username, - .description { - display: block; - margin-left: 50px; - padding: 2px 0; - } - - .username { - font-size: 16px; - color: #000; - } - - :after { - clear: both; - } - - .img-circle { - border-radius: 50%; - width: 40px; - height: 40px; - float: left; - } - - span { - font-weight: 500; - font-size: 12px; - } - } - - .post { - font-size: 14px; - border-bottom: 1px solid #d2d6de; - margin-bottom: 15px; - padding-bottom: 15px; - color: #666; - - .image { - width: 100%; - height: 100%; - } - - .user-images { - padding-top: 20px; - } - } - - .list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; - - li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; - font-size: 13px; - } - - .link-black { - &:hover, - &:focus { - color: #999; - } - } - } -} - -.box-center { - margin: 0 auto; - display: table; -} - -.text-muted { - color: #777; -} -</style> diff --git a/WebSite/src/views/profile/components/Timeline.vue b/WebSite/src/views/profile/components/Timeline.vue deleted file mode 100644 index b3c2b5d..0000000 --- a/WebSite/src/views/profile/components/Timeline.vue +++ /dev/null @@ -1,48 +0,0 @@ -<template> - <div class="block"> - <el-timeline> - <el-timeline-item - v-for="(item, index) of timeline" - :key="index" - :timestamp="item.timestamp" - placement="top" - > - <el-card> - <h4>{{ item.title }}</h4> - <p>{{ item.content }}</p> - </el-card> - </el-timeline-item> - </el-timeline> - </div> -</template> - -<script> -export default { - data() { - return { - timeline: [ - { - timestamp: "2019/4/20", - title: "Update Github template", - content: "PanJiaChen committed 2019/4/20 20:46" - }, - { - timestamp: "2019/4/21", - title: "Update Github template", - content: "PanJiaChen committed 2019/4/21 20:46" - }, - { - timestamp: "2019/4/22", - title: "Build Template", - content: "PanJiaChen committed 2019/4/22 20:46" - }, - { - timestamp: "2019/4/23", - title: "Release New Version", - content: "PanJiaChen committed 2019/4/23 20:46" - } - ] - }; - } -}; -</script> diff --git a/WebSite/src/views/profile/components/UserCard.vue b/WebSite/src/views/profile/components/UserCard.vue deleted file mode 100644 index 4905588..0000000 --- a/WebSite/src/views/profile/components/UserCard.vue +++ /dev/null @@ -1,145 +0,0 @@ -<template> - <el-card style="margin-bottom:20px;"> - <div slot="header" class="clearfix"> - <span>About me</span> - </div> - - <div class="user-profile"> - <div class="box-center"> - <pan-thumb - :image="user.avatar" - :height="'100px'" - :width="'100px'" - :hoverable="false" - > - <div>Hello</div> - {{ user.role }} - </pan-thumb> - </div> - <div class="box-center"> - <div class="user-name text-center">{{ user.name }}</div> - <div class="user-role text-center text-muted"> - {{ user.role | uppercaseFirst }} - </div> - </div> - </div> - - <div class="user-bio"> - <div class="user-education user-bio-section"> - <div class="user-bio-section-header"> - <svg-icon icon-class="education" /><span>Education</span> - </div> - <div class="user-bio-section-body"> - <div class="text-muted"> - JS in Computer Science from the University of Technology - </div> - </div> - </div> - - <div class="user-skills user-bio-section"> - <div class="user-bio-section-header"> - <svg-icon icon-class="skill" /><span>Skills</span> - </div> - <div class="user-bio-section-body"> - <div class="progress-item"> - <span>Vue</span> - <el-progress :percentage="70" /> - </div> - <div class="progress-item"> - <span>JavaScript</span> - <el-progress :percentage="18" /> - </div> - <div class="progress-item"> - <span>Css</span> - <el-progress :percentage="12" /> - </div> - <div class="progress-item"> - <span>ESLint</span> - <el-progress :percentage="100" status="success" /> - </div> - </div> - </div> - </div> - </el-card> -</template> - -<script> -import PanThumb from "@/components/PanThumb"; - -export default { - components: { PanThumb }, - props: { - user: { - type: Object, - default: () => { - return { - name: "", - email: "", - avatar: "", - roles: "" - }; - } - } - } -}; -</script> - -<style lang="scss" scoped> -.box-center { - margin: 0 auto; - display: table; -} - -.text-muted { - color: #777; -} - -.user-profile { - .user-name { - font-weight: bold; - } - - .box-center { - padding-top: 10px; - } - - .user-role { - padding-top: 10px; - font-weight: 400; - font-size: 14px; - } - - .box-social { - padding-top: 30px; - - .el-table { - border-top: 1px solid #dfe6ec; - } - } - - .user-follow { - padding-top: 20px; - } -} - -.user-bio { - margin-top: 20px; - color: #606266; - - span { - padding-left: 4px; - } - - .user-bio-section { - font-size: 14px; - padding: 15px 0; - - .user-bio-section-header { - border-bottom: 1px solid #dfe6ec; - padding-bottom: 10px; - margin-bottom: 10px; - font-weight: bold; - } - } -} -</style> diff --git a/WebSite/src/views/profile/index.vue b/WebSite/src/views/profile/index.vue deleted file mode 100644 index 326985f..0000000 --- a/WebSite/src/views/profile/index.vue +++ /dev/null @@ -1,62 +0,0 @@ -<template> - <div class="app-container"> - <div v-if="user"> - <el-row :gutter="20"> - <el-col :span="6" :xs="24"> - <user-card :user="user" /> - </el-col> - - <el-col :span="18" :xs="24"> - <el-card> - <el-tabs v-model="activeTab"> - <el-tab-pane label="Activity" name="activity"> - <activity /> - </el-tab-pane> - <el-tab-pane label="Timeline" name="timeline"> - <timeline /> - </el-tab-pane> - <el-tab-pane label="Account" name="account"> - <account :user="user" /> - </el-tab-pane> - </el-tabs> - </el-card> - </el-col> - </el-row> - </div> - </div> -</template> - -<script> -import { mapGetters } from "vuex"; -import UserCard from "./components/UserCard"; -import Activity from "./components/Activity"; -import Timeline from "./components/Timeline"; -import Account from "./components/Account"; - -export default { - name: "Profile", - components: { UserCard, Activity, Timeline, Account }, - data() { - return { - user: {}, - activeTab: "activity" - }; - }, - computed: { - ...mapGetters(["name", "avatar", "roles"]) - }, - created() { - this.getUser(); - }, - methods: { - getUser() { - this.user = { - name: this.name, - role: this.roles.join(" | "), - email: "admin@test.com", - avatar: this.avatar - }; - } - } -}; -</script> diff --git a/WebSite/src/views/qiniu/upload.vue b/WebSite/src/views/qiniu/upload.vue deleted file mode 100644 index 8b195c8..0000000 --- a/WebSite/src/views/qiniu/upload.vue +++ /dev/null @@ -1,47 +0,0 @@ -<template> - <el-upload - :data="dataObj" - :multiple="true" - :before-upload="beforeUpload" - action="https://upload.qbox.me" - drag - > - <i class="el-icon-upload" /> - <div class="el-upload__text">将文件拖到æ¤å¤„,或<em>ç‚¹å‡»ä¸Šä¼ </em></div> - </el-upload> -</template> - -<script> -import { getToken } from "@/api/qiniu"; -// 获å–七牛token åŽç«¯é€šè¿‡Access Key,Secret Key,bucketç‰ç”Ÿæˆtoken -// 七牛官方sdk https://developer.qiniu.com/sdk#official-sdk - -export default { - data() { - return { - dataObj: { token: "", key: "" }, - image_uri: [], - fileList: [] - }; - }, - methods: { - beforeUpload() { - const _self = this; - return new Promise((resolve, reject) => { - getToken() - .then(response => { - const key = response.data.qiniu_key; - const token = response.data.qiniu_token; - _self._data.dataObj.token = token; - _self._data.dataObj.key = key; - resolve(true); - }) - .catch(err => { - console.log(err); - reject(false); - }); - }); - } - } -}; -</script> diff --git a/WebSite/src/views/redirect/index.vue b/WebSite/src/views/redirect/index.vue deleted file mode 100644 index 9357ce2..0000000 --- a/WebSite/src/views/redirect/index.vue +++ /dev/null @@ -1,12 +0,0 @@ -<script> -export default { - created() { - const { params, query } = this.$route; - const { path } = params; - this.$router.replace({ path: "/" + path, query }); - }, - render: function(h) { - return h(); // avoid warning message - } -}; -</script> diff --git a/WebSite/src/views/tab/components/TabPane.vue b/WebSite/src/views/tab/components/TabPane.vue deleted file mode 100644 index 1d61e65..0000000 --- a/WebSite/src/views/tab/components/TabPane.vue +++ /dev/null @@ -1,108 +0,0 @@ -<template> - <el-table :data="list" border fit highlight-current-row style="width: 100%"> - <el-table-column - v-loading="loading" - align="center" - label="ID" - width="65" - element-loading-text="请给我点时间ï¼" - > - <template slot-scope="scope"> - <span>{{ scope.row.id }}</span> - </template> - </el-table-column> - - <el-table-column width="180px" align="center" label="Date"> - <template slot-scope="scope"> - <span>{{ - scope.row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") - }}</span> - </template> - </el-table-column> - - <el-table-column min-width="300px" label="Title"> - <template slot-scope="{ row }"> - <span>{{ row.title }}</span> - <el-tag>{{ row.type }}</el-tag> - </template> - </el-table-column> - - <el-table-column width="110px" align="center" label="Author"> - <template slot-scope="scope"> - <span>{{ scope.row.author }}</span> - </template> - </el-table-column> - - <el-table-column width="120px" label="Importance"> - <template slot-scope="scope"> - <svg-icon - v-for="n in +scope.row.importance" - :key="n" - icon-class="star" - /> - </template> - </el-table-column> - - <el-table-column align="center" label="Readings" width="95"> - <template slot-scope="scope"> - <span>{{ scope.row.pageviews }}</span> - </template> - </el-table-column> - - <el-table-column class-name="status-col" label="Status" width="110"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - </el-table> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - } - }, - props: { - type: { - type: String, - default: "CN" - } - }, - data() { - return { - list: null, - listQuery: { - page: 1, - limit: 5, - type: this.type, - sort: "+id" - }, - loading: false - }; - }, - created() { - this.getList(); - }, - methods: { - getList() { - this.loading = true; - this.$emit("create"); // for test - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.loading = false; - }); - } - } -}; -</script> diff --git a/WebSite/src/views/tab/index.vue b/WebSite/src/views/tab/index.vue deleted file mode 100644 index 7857ab4..0000000 --- a/WebSite/src/views/tab/index.vue +++ /dev/null @@ -1,71 +0,0 @@ -<template> - <div class="tab-container"> - <el-tag>mounted times :{{ createdTimes }}</el-tag> - <el-alert - :closable="false" - style="width:200px;display:inline-block;vertical-align: middle;margin-left:30px;" - title="Tab with keep-alive" - type="success" - /> - <el-tabs v-model="activeName" style="margin-top:15px;" type="border-card"> - <el-tab-pane - v-for="item in tabMapOptions" - :key="item.key" - :label="item.label" - :name="item.key" - > - <keep-alive> - <tab-pane - v-if="activeName == item.key" - :type="item.key" - @create="showCreatedTimes" - /> - </keep-alive> - </el-tab-pane> - </el-tabs> - </div> -</template> - -<script> -import tabPane from "./components/TabPane"; - -export default { - name: "Tab", - components: { tabPane }, - data() { - return { - tabMapOptions: [ - { label: "China", key: "CN" }, - { label: "USA", key: "US" }, - { label: "Japan", key: "JP" }, - { label: "Eurozone", key: "EU" } - ], - activeName: "CN", - createdTimes: 0 - }; - }, - watch: { - activeName(val) { - this.$router.push(`${this.$route.path}?tab=${val}`); - } - }, - created() { - // init the default selected tab - const tab = this.$route.query.tab; - if (tab) { - this.activeName = tab; - } - }, - methods: { - showCreatedTimes() { - this.createdTimes = this.createdTimes + 1; - } - } -}; -</script> - -<style scoped> -.tab-container { - margin: 30px; -} -</style> diff --git a/WebSite/src/views/table/complex-table.vue b/WebSite/src/views/table/complex-table.vue deleted file mode 100644 index 3d4cf90..0000000 --- a/WebSite/src/views/table/complex-table.vue +++ /dev/null @@ -1,567 +0,0 @@ -<template> - <div class="app-container"> - <div class="filter-container"> - <el-input - v-model="listQuery.title" - placeholder="Title" - style="width: 200px;" - class="filter-item" - @keyup.enter.native="handleFilter" - /> - <el-select - v-model="listQuery.importance" - placeholder="Imp" - clearable - style="width: 90px" - class="filter-item" - > - <el-option - v-for="item in importanceOptions" - :key="item" - :label="item" - :value="item" - /> - </el-select> - <el-select - v-model="listQuery.type" - placeholder="Type" - clearable - class="filter-item" - style="width: 130px" - > - <el-option - v-for="item in calendarTypeOptions" - :key="item.key" - :label="item.display_name + '(' + item.key + ')'" - :value="item.key" - /> - </el-select> - <el-select - v-model="listQuery.sort" - style="width: 140px" - class="filter-item" - @change="handleFilter" - > - <el-option - v-for="item in sortOptions" - :key="item.key" - :label="item.label" - :value="item.key" - /> - </el-select> - <el-button - v-waves - class="filter-item" - type="primary" - icon="el-icon-search" - @click="handleFilter" - > - Search - </el-button> - <el-button - class="filter-item" - style="margin-left: 10px;" - type="primary" - icon="el-icon-edit" - @click="handleCreate" - > - Add - </el-button> - <el-button - v-waves - :loading="downloadLoading" - class="filter-item" - type="primary" - icon="el-icon-download" - @click="handleDownload" - > - Export - </el-button> - <el-checkbox - v-model="showReviewer" - class="filter-item" - style="margin-left:15px;" - @change="tableKey = tableKey + 1" - > - reviewer - </el-checkbox> - </div> - - <el-table - :key="tableKey" - v-loading="listLoading" - :data="list" - border - fit - highlight-current-row - style="width: 100%;" - @sort-change="sortChange" - > - <el-table-column - label="ID" - prop="id" - sortable="custom" - align="center" - width="80" - :class-name="getSortClass('id')" - > - <template slot-scope="{ row }"> - <span>{{ row.id }}</span> - </template> - </el-table-column> - <el-table-column label="Date" width="150px" align="center"> - <template slot-scope="{ row }"> - <span>{{ row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") }}</span> - </template> - </el-table-column> - <el-table-column label="Title" min-width="150px"> - <template slot-scope="{ row }"> - <span class="link-type" @click="handleUpdate(row)">{{ - row.title - }}</span> - <el-tag>{{ row.type | typeFilter }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Author" width="110px" align="center"> - <template slot-scope="{ row }"> - <span>{{ row.author }}</span> - </template> - </el-table-column> - <el-table-column - v-if="showReviewer" - label="Reviewer" - width="110px" - align="center" - > - <template slot-scope="{ row }"> - <span style="color:red;">{{ row.reviewer }}</span> - </template> - </el-table-column> - <el-table-column label="Imp" width="80px"> - <template slot-scope="{ row }"> - <svg-icon - v-for="n in +row.importance" - :key="n" - icon-class="star" - class="meta-item__icon" - /> - </template> - </el-table-column> - <el-table-column label="Readings" align="center" width="95"> - <template slot-scope="{ row }"> - <span - v-if="row.pageviews" - class="link-type" - @click="handleFetchPv(row.pageviews)" - >{{ row.pageviews }}</span - > - <span v-else>0</span> - </template> - </el-table-column> - <el-table-column label="Status" class-name="status-col" width="100"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - <el-table-column - label="Actions" - align="center" - width="230" - class-name="small-padding fixed-width" - > - <template slot-scope="{ row, $index }"> - <el-button type="primary" size="mini" @click="handleUpdate(row)"> - Edit - </el-button> - <el-button - v-if="row.status != 'published'" - size="mini" - type="success" - @click="handleModifyStatus(row, 'published')" - > - Publish - </el-button> - <el-button - v-if="row.status != 'draft'" - size="mini" - @click="handleModifyStatus(row, 'draft')" - > - Draft - </el-button> - <el-button - v-if="row.status != 'deleted'" - size="mini" - type="danger" - @click="handleDelete(row, $index)" - > - Delete - </el-button> - </template> - </el-table-column> - </el-table> - - <pagination - v-show="total > 0" - :total="total" - :page.sync="listQuery.page" - :limit.sync="listQuery.limit" - @pagination="getList" - /> - - <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible"> - <el-form - ref="dataForm" - :rules="rules" - :model="temp" - label-position="left" - label-width="70px" - style="width: 400px; margin-left:50px;" - > - <el-form-item label="Type" prop="type"> - <el-select - v-model="temp.type" - class="filter-item" - placeholder="Please select" - > - <el-option - v-for="item in calendarTypeOptions" - :key="item.key" - :label="item.display_name" - :value="item.key" - /> - </el-select> - </el-form-item> - <el-form-item label="Date" prop="timestamp"> - <el-date-picker - v-model="temp.timestamp" - type="datetime" - placeholder="Please pick a date" - /> - </el-form-item> - <el-form-item label="Title" prop="title"> - <el-input v-model="temp.title" /> - </el-form-item> - <el-form-item label="Status"> - <el-select - v-model="temp.status" - class="filter-item" - placeholder="Please select" - > - <el-option - v-for="item in statusOptions" - :key="item" - :label="item" - :value="item" - /> - </el-select> - </el-form-item> - <el-form-item label="Imp"> - <el-rate - v-model="temp.importance" - :colors="['#99A9BF', '#F7BA2A', '#FF9900']" - :max="3" - style="margin-top:8px;" - /> - </el-form-item> - <el-form-item label="Remark"> - <el-input - v-model="temp.remark" - :autosize="{ minRows: 2, maxRows: 4 }" - type="textarea" - placeholder="Please input" - /> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button @click="dialogFormVisible = false"> - Cancel - </el-button> - <el-button - type="primary" - @click="dialogStatus === 'create' ? createData() : updateData()" - > - Confirm - </el-button> - </div> - </el-dialog> - - <el-dialog :visible.sync="dialogPvVisible" title="Reading statistics"> - <el-table - :data="pvData" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column prop="key" label="Channel" /> - <el-table-column prop="pv" label="Pv" /> - </el-table> - <span slot="footer" class="dialog-footer"> - <el-button type="primary" @click="dialogPvVisible = false" - >Confirm</el-button - > - </span> - </el-dialog> - </div> -</template> - -<script> -import { - fetchList, - fetchPv, - createArticle, - updateArticle -} from "@/api/article"; -import waves from "@/directive/waves"; // waves directive -import { parseTime } from "@/utils"; -import Pagination from "@/components/Pagination"; // secondary package based on el-pagination - -const calendarTypeOptions = [ - { key: "CN", display_name: "China" }, - { key: "US", display_name: "USA" }, - { key: "JP", display_name: "Japan" }, - { key: "EU", display_name: "Eurozone" } -]; - -// arr to obj, such as { CN : "China", US : "USA" } -const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => { - acc[cur.key] = cur.display_name; - return acc; -}, {}); - -export default { - name: "ComplexTable", - components: { Pagination }, - directives: { waves }, - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - }, - typeFilter(type) { - return calendarTypeKeyValue[type]; - } - }, - data() { - return { - tableKey: 0, - list: null, - total: 0, - listLoading: true, - listQuery: { - page: 1, - limit: 20, - importance: undefined, - title: undefined, - type: undefined, - sort: "+id" - }, - importanceOptions: [1, 2, 3], - calendarTypeOptions, - sortOptions: [ - { label: "ID Ascending", key: "+id" }, - { label: "ID Descending", key: "-id" } - ], - statusOptions: ["published", "draft", "deleted"], - showReviewer: false, - temp: { - id: undefined, - importance: 1, - remark: "", - timestamp: new Date(), - title: "", - type: "", - status: "published" - }, - dialogFormVisible: false, - dialogStatus: "", - textMap: { - update: "Edit", - create: "Create" - }, - dialogPvVisible: false, - pvData: [], - rules: { - type: [ - { required: true, message: "type is required", trigger: "change" } - ], - timestamp: [ - { - type: "date", - required: true, - message: "timestamp is required", - trigger: "change" - } - ], - title: [ - { required: true, message: "title is required", trigger: "blur" } - ] - }, - downloadLoading: false - }; - }, - created() { - this.getList(); - }, - methods: { - getList() { - this.listLoading = true; - fetchList(this.listQuery).then(response => { - this.list = response.data.items; - this.total = response.data.total; - - // Just to simulate the time of the request - setTimeout(() => { - this.listLoading = false; - }, 1.5 * 1000); - }); - }, - handleFilter() { - this.listQuery.page = 1; - this.getList(); - }, - handleModifyStatus(row, status) { - this.$message({ - message: "æ“作Success", - type: "success" - }); - row.status = status; - }, - sortChange(data) { - const { prop, order } = data; - if (prop === "id") { - this.sortByID(order); - } - }, - sortByID(order) { - if (order === "ascending") { - this.listQuery.sort = "+id"; - } else { - this.listQuery.sort = "-id"; - } - this.handleFilter(); - }, - resetTemp() { - this.temp = { - id: undefined, - importance: 1, - remark: "", - timestamp: new Date(), - title: "", - status: "published", - type: "" - }; - }, - handleCreate() { - this.resetTemp(); - this.dialogStatus = "create"; - this.dialogFormVisible = true; - this.$nextTick(() => { - this.$refs["dataForm"].clearValidate(); - }); - }, - createData() { - this.$refs["dataForm"].validate(valid => { - if (valid) { - this.temp.id = parseInt(Math.random() * 100) + 1024; // mock a id - this.temp.author = "vue-element-admin"; - createArticle(this.temp).then(() => { - this.list.unshift(this.temp); - this.dialogFormVisible = false; - this.$notify({ - title: "Success", - message: "Created Successfully", - type: "success", - duration: 2000 - }); - }); - } - }); - }, - handleUpdate(row) { - this.temp = Object.assign({}, row); // copy obj - this.temp.timestamp = new Date(this.temp.timestamp); - this.dialogStatus = "update"; - this.dialogFormVisible = true; - this.$nextTick(() => { - this.$refs["dataForm"].clearValidate(); - }); - }, - updateData() { - this.$refs["dataForm"].validate(valid => { - if (valid) { - const tempData = Object.assign({}, this.temp); - tempData.timestamp = +new Date(tempData.timestamp); // change Thu Nov 30 2017 16:41:05 GMT+0800 (CST) to 1512031311464 - updateArticle(tempData).then(() => { - const index = this.list.findIndex(v => v.id === this.temp.id); - this.list.splice(index, 1, this.temp); - this.dialogFormVisible = false; - this.$notify({ - title: "Success", - message: "Update Successfully", - type: "success", - duration: 2000 - }); - }); - } - }); - }, - handleDelete(row, index) { - this.$notify({ - title: "Success", - message: "Delete Successfully", - type: "success", - duration: 2000 - }); - this.list.splice(index, 1); - }, - handleFetchPv(pv) { - fetchPv(pv).then(response => { - this.pvData = response.data.pvData; - this.dialogPvVisible = true; - }); - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Excel").then(excel => { - const tHeader = ["timestamp", "title", "type", "importance", "status"]; - const filterVal = [ - "timestamp", - "title", - "type", - "importance", - "status" - ]; - const data = this.formatJson(filterVal); - excel.export_json_to_excel({ - header: tHeader, - data, - filename: "table-list" - }); - this.downloadLoading = false; - }); - }, - formatJson(filterVal) { - return this.list.map(v => - filterVal.map(j => { - if (j === "timestamp") { - return parseTime(v[j]); - } else { - return v[j]; - } - }) - ); - }, - getSortClass: function(key) { - const sort = this.listQuery.sort; - return sort === `+${key}` ? "ascending" : "descending"; - } - } -}; -</script> diff --git a/WebSite/src/views/table/drag-table.vue b/WebSite/src/views/table/drag-table.vue deleted file mode 100644 index 7800568..0000000 --- a/WebSite/src/views/table/drag-table.vue +++ /dev/null @@ -1,167 +0,0 @@ -<template> - <div class="app-container"> - <!-- Note that row-key is necessary to get a correct row order. --> - <el-table - ref="dragTable" - v-loading="listLoading" - :data="list" - row-key="id" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column align="center" label="ID" width="65"> - <template slot-scope="{ row }"> - <span>{{ row.id }}</span> - </template> - </el-table-column> - - <el-table-column width="180px" align="center" label="Date"> - <template slot-scope="{ row }"> - <span>{{ row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") }}</span> - </template> - </el-table-column> - - <el-table-column min-width="300px" label="Title"> - <template slot-scope="{ row }"> - <span>{{ row.title }}</span> - </template> - </el-table-column> - - <el-table-column width="110px" align="center" label="Author"> - <template slot-scope="{ row }"> - <span>{{ row.author }}</span> - </template> - </el-table-column> - - <el-table-column width="100px" label="Importance"> - <template slot-scope="{ row }"> - <svg-icon - v-for="n in +row.importance" - :key="n" - icon-class="star" - class="icon-star" - /> - </template> - </el-table-column> - - <el-table-column align="center" label="Readings" width="95"> - <template slot-scope="{ row }"> - <span>{{ row.pageviews }}</span> - </template> - </el-table-column> - - <el-table-column class-name="status-col" label="Status" width="110"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - - <el-table-column align="center" label="Drag" width="80"> - <template slot-scope="{}"> - <svg-icon class="drag-handler" icon-class="drag" /> - </template> - </el-table-column> - </el-table> - <div class="show-d"><el-tag>The default order :</el-tag> {{ oldList }}</div> - <div class="show-d"> - <el-tag>The after dragging order :</el-tag> {{ newList }} - </div> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; -import Sortable from "sortablejs"; - -export default { - name: "DragTable", - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - } - }, - data() { - return { - list: null, - total: null, - listLoading: true, - listQuery: { - page: 1, - limit: 10 - }, - sortable: null, - oldList: [], - newList: [] - }; - }, - created() { - this.getList(); - }, - methods: { - async getList() { - this.listLoading = true; - const { data } = await fetchList(this.listQuery); - this.list = data.items; - this.total = data.total; - this.listLoading = false; - this.oldList = this.list.map(v => v.id); - this.newList = this.oldList.slice(); - this.$nextTick(() => { - this.setSort(); - }); - }, - setSort() { - const el = this.$refs.dragTable.$el.querySelectorAll( - ".el-table__body-wrapper > table > tbody" - )[0]; - this.sortable = Sortable.create(el, { - ghostClass: "sortable-ghost", // Class name for the drop placeholder, - setData: function(dataTransfer) { - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - dataTransfer.setData("Text", ""); - }, - onEnd: evt => { - const targetRow = this.list.splice(evt.oldIndex, 1)[0]; - this.list.splice(evt.newIndex, 0, targetRow); - - // for show the changes, you can delete in you code - const tempIndex = this.newList.splice(evt.oldIndex, 1)[0]; - this.newList.splice(evt.newIndex, 0, tempIndex); - } - }); - } - } -}; -</script> - -<style> -.sortable-ghost { - opacity: 0.8; - color: #fff !important; - background: #42b983 !important; -} -</style> - -<style scoped> -.icon-star { - margin-right: 2px; -} -.drag-handler { - width: 20px; - height: 20px; - cursor: pointer; -} -.show-d { - margin-top: 15px; -} -</style> diff --git a/WebSite/src/views/table/dynamic-table/components/FixedThead.vue b/WebSite/src/views/table/dynamic-table/components/FixedThead.vue deleted file mode 100644 index 1bfa5d5..0000000 --- a/WebSite/src/views/table/dynamic-table/components/FixedThead.vue +++ /dev/null @@ -1,70 +0,0 @@ -<template> - <div class="app-container"> - <div class="filter-container"> - <el-checkbox-group v-model="checkboxVal"> - <el-checkbox label="apple"> - apple - </el-checkbox> - <el-checkbox label="banana"> - banana - </el-checkbox> - <el-checkbox label="orange"> - orange - </el-checkbox> - </el-checkbox-group> - </div> - - <el-table - :key="key" - :data="tableData" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column prop="name" label="fruitName" width="180" /> - <el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit"> - <template slot-scope="scope"> - {{ scope.row[fruit] }} - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -const defaultFormThead = ["apple", "banana"]; - -export default { - data() { - return { - tableData: [ - { - name: "fruit-1", - apple: "apple-10", - banana: "banana-10", - orange: "orange-10" - }, - { - name: "fruit-2", - apple: "apple-20", - banana: "banana-20", - orange: "orange-20" - } - ], - key: 1, // table key - formTheadOptions: ["apple", "banana", "orange"], - checkboxVal: defaultFormThead, // checkboxVal - formThead: defaultFormThead // 默认表头 Default header - }; - }, - watch: { - checkboxVal(valArr) { - this.formThead = this.formTheadOptions.filter( - i => valArr.indexOf(i) >= 0 - ); - this.key = this.key + 1; // 为了ä¿è¯table æ¯æ¬¡éƒ½ä¼šé‡æ¸² In order to ensure the table will be re-rendered each time - } - } -}; -</script> diff --git a/WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue b/WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue deleted file mode 100644 index 8b28c23..0000000 --- a/WebSite/src/views/table/dynamic-table/components/UnfixedThead.vue +++ /dev/null @@ -1,56 +0,0 @@ -<template> - <div class="app-container"> - <div class="filter-container"> - <el-checkbox-group v-model="formThead"> - <el-checkbox label="apple"> - apple - </el-checkbox> - <el-checkbox label="banana"> - banana - </el-checkbox> - <el-checkbox label="orange"> - orange - </el-checkbox> - </el-checkbox-group> - </div> - - <el-table - :data="tableData" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column prop="name" label="fruitName" width="180" /> - <el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit"> - <template slot-scope="scope"> - {{ scope.row[fruit] }} - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -export default { - data() { - return { - tableData: [ - { - name: "fruit-1", - apple: "apple-10", - banana: "banana-10", - orange: "orange-10" - }, - { - name: "fruit-2", - apple: "apple-20", - banana: "banana-20", - orange: "orange-20" - } - ], - formThead: ["apple", "banana"] - }; - } -}; -</script> diff --git a/WebSite/src/views/table/dynamic-table/index.vue b/WebSite/src/views/table/dynamic-table/index.vue deleted file mode 100644 index 503784c..0000000 --- a/WebSite/src/views/table/dynamic-table/index.vue +++ /dev/null @@ -1,23 +0,0 @@ -<template> - <div class="app-container"> - <div style="margin:0 0 5px 20px"> - Fixed header, sorted by header order, - </div> - <fixed-thead /> - - <div style="margin:30px 0 5px 20px"> - Not fixed header, sorted by click order - </div> - <unfixed-thead /> - </div> -</template> - -<script> -import FixedThead from "./components/FixedThead"; -import UnfixedThead from "./components/UnfixedThead"; - -export default { - name: "DynamicTable", - components: { FixedThead, UnfixedThead } -}; -</script> diff --git a/WebSite/src/views/table/inline-edit-table.vue b/WebSite/src/views/table/inline-edit-table.vue deleted file mode 100644 index 4b12095..0000000 --- a/WebSite/src/views/table/inline-edit-table.vue +++ /dev/null @@ -1,161 +0,0 @@ -<template> - <div class="app-container"> - <el-table - v-loading="listLoading" - :data="list" - border - fit - highlight-current-row - style="width: 100%" - > - <el-table-column align="center" label="ID" width="80"> - <template slot-scope="{ row }"> - <span>{{ row.id }}</span> - </template> - </el-table-column> - - <el-table-column width="180px" align="center" label="Date"> - <template slot-scope="{ row }"> - <span>{{ row.timestamp | parseTime("{y}-{m}-{d} {h}:{i}") }}</span> - </template> - </el-table-column> - - <el-table-column width="120px" align="center" label="Author"> - <template slot-scope="{ row }"> - <span>{{ row.author }}</span> - </template> - </el-table-column> - - <el-table-column width="100px" label="Importance"> - <template slot-scope="{ row }"> - <svg-icon - v-for="n in +row.importance" - :key="n" - icon-class="star" - class="meta-item__icon" - /> - </template> - </el-table-column> - - <el-table-column class-name="status-col" label="Status" width="110"> - <template slot-scope="{ row }"> - <el-tag :type="row.status | statusFilter"> - {{ row.status }} - </el-tag> - </template> - </el-table-column> - - <el-table-column min-width="300px" label="Title"> - <template slot-scope="{ row }"> - <template v-if="row.edit"> - <el-input v-model="row.title" class="edit-input" size="small" /> - <el-button - class="cancel-btn" - size="small" - icon="el-icon-refresh" - type="warning" - @click="cancelEdit(row)" - > - cancel - </el-button> - </template> - <span v-else>{{ row.title }}</span> - </template> - </el-table-column> - - <el-table-column align="center" label="Actions" width="120"> - <template slot-scope="{ row }"> - <el-button - v-if="row.edit" - type="success" - size="small" - icon="el-icon-circle-check-outline" - @click="confirmEdit(row)" - > - Ok - </el-button> - <el-button - v-else - type="primary" - size="small" - icon="el-icon-edit" - @click="row.edit = !row.edit" - > - Edit - </el-button> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - name: "InlineEditTable", - filters: { - statusFilter(status) { - const statusMap = { - published: "success", - draft: "info", - deleted: "danger" - }; - return statusMap[status]; - } - }, - data() { - return { - list: null, - listLoading: true, - listQuery: { - page: 1, - limit: 10 - } - }; - }, - created() { - this.getList(); - }, - methods: { - async getList() { - this.listLoading = true; - const { data } = await fetchList(this.listQuery); - const items = data.items; - this.list = items.map(v => { - this.$set(v, "edit", false); // https://vuejs.org/v2/guide/reactivity.html - v.originalTitle = v.title; // will be used when user click the cancel botton - return v; - }); - this.listLoading = false; - }, - cancelEdit(row) { - row.title = row.originalTitle; - row.edit = false; - this.$message({ - message: "The title has been restored to the original value", - type: "warning" - }); - }, - confirmEdit(row) { - row.edit = false; - row.originalTitle = row.title; - this.$message({ - message: "The title has been edited", - type: "success" - }); - } - } -}; -</script> - -<style scoped> -.edit-input { - padding-right: 100px; -} -.cancel-btn { - position: absolute; - right: 15px; - top: 10px; -} -</style> diff --git a/WebSite/src/views/theme/index.vue b/WebSite/src/views/theme/index.vue deleted file mode 100644 index 7435174..0000000 --- a/WebSite/src/views/theme/index.vue +++ /dev/null @@ -1,131 +0,0 @@ -<template> - <div class="app-container"> - <el-card class="box-card"> - <div slot="header"> - <a - class="link-type link-title" - target="_blank" - href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/theme.html" - > - Theme documentation - </a> - </div> - <div class="box-item"> - <span class="field-label">Change Theme : </span> - <el-switch v-model="theme" /> - <aside style="margin-top:15px;"> - Tips: It is different from the theme-pick on the navbar is two - different skinning methods, each with different application scenarios. - Refer to the documentation for details. - </aside> - </div> - </el-card> - - <div class="block"> - <el-button type="primary"> - Primary - </el-button> - <el-button type="success"> - Success - </el-button> - <el-button type="info"> - Info - </el-button> - <el-button type="warning"> - Warning - </el-button> - <el-button type="danger"> - Danger - </el-button> - </div> - - <div class="block"> - <el-button type="primary" icon="el-icon-edit" /> - <el-button type="primary" icon="el-icon-share" /> - <el-button type="primary" icon="el-icon-delete" /> - <el-button type="primary" icon="el-icon-search"> - Search - </el-button> - <el-button type="primary"> - Upload - <i class="el-icon-upload el-icon-right" /> - </el-button> - </div> - - <div class="block"> - <el-tag - v-for="tag in tags" - :key="tag.type" - :type="tag.type" - class="tag-item" - > - {{ tag.name }} - </el-tag> - </div> - - <div class="block"> - <el-radio-group v-model="radio"> - <el-radio :label="3"> - Option A - </el-radio> - <el-radio :label="6"> - Option B - </el-radio> - <el-radio :label="9"> - Option C - </el-radio> - </el-radio-group> - </div> - - <div class="block"> - <el-slider v-model="slideValue" /> - </div> - </div> -</template> - -<script> -import { toggleClass } from "@/utils"; -import "@/assets/custom-theme/index.css"; // the theme changed version element-ui css - -export default { - name: "Theme", - data() { - return { - theme: false, - tags: [ - { name: "Tag One", type: "" }, - { name: "Tag Two", type: "info" }, - { name: "Tag Three", type: "success" }, - { name: "Tag Four", type: "warning" }, - { name: "Tag Five", type: "danger" } - ], - slideValue: 50, - radio: 3 - }; - }, - watch: { - theme() { - toggleClass(document.body, "custom-theme"); - } - } -}; -</script> - -<style scoped> -.field-label { - vertical-align: middle; -} -.box-card { - width: 400px; - max-width: 100%; - margin: 20px auto; -} - -.block { - padding: 30px 24px; -} - -.tag-item { - margin-right: 15px; -} -</style> diff --git a/WebSite/src/views/zip/index.vue b/WebSite/src/views/zip/index.vue deleted file mode 100644 index 6bacc58..0000000 --- a/WebSite/src/views/zip/index.vue +++ /dev/null @@ -1,101 +0,0 @@ -<template> - <div class="app-container"> - <el-input - v-model="filename" - placeholder="Please enter the file name (default file)" - style="width:300px;" - prefix-icon="el-icon-document" - /> - <el-button - :loading="downloadLoading" - style="margin-bottom:20px;" - type="primary" - icon="el-icon-document" - @click="handleDownload" - > - Export Zip - </el-button> - <el-table - v-loading="listLoading" - :data="list" - element-loading-text="æ‹¼å‘½åŠ è½½ä¸" - border - fit - highlight-current-row - > - <el-table-column align="center" label="ID" width="95"> - <template slot-scope="scope"> - {{ scope.$index }} - </template> - </el-table-column> - <el-table-column label="Title"> - <template slot-scope="scope"> - {{ scope.row.title }} - </template> - </el-table-column> - <el-table-column label="Author" width="95" align="center"> - <template slot-scope="scope"> - <el-tag>{{ scope.row.author }}</el-tag> - </template> - </el-table-column> - <el-table-column label="Readings" width="115" align="center"> - <template slot-scope="scope"> - {{ scope.row.pageviews }} - </template> - </el-table-column> - <el-table-column align="center" label="Date" width="220"> - <template slot-scope="scope"> - <i class="el-icon-time" /> - <span>{{ scope.row.display_time }}</span> - </template> - </el-table-column> - </el-table> - </div> -</template> - -<script> -import { fetchList } from "@/api/article"; - -export default { - name: "ExportZip", - data() { - return { - list: null, - listLoading: true, - downloadLoading: false, - filename: "" - }; - }, - created() { - this.fetchData(); - }, - methods: { - async fetchData() { - this.listLoading = true; - const { data } = await fetchList(); - this.list = data.items; - this.listLoading = false; - }, - handleDownload() { - this.downloadLoading = true; - import("@/vendor/Export2Zip").then(zip => { - const tHeader = ["Id", "Title", "Author", "Readings", "Date"]; - const filterVal = [ - "id", - "title", - "author", - "pageviews", - "display_time" - ]; - const list = this.list; - const data = this.formatJson(filterVal, list); - zip.export_txt_to_zip(tHeader, data, this.filename, this.filename); - this.downloadLoading = false; - }); - }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => filterVal.map(j => v[j])); - } - } -}; -</script> diff --git a/WebSite/tests/unit/.eslintrc.js b/WebSite/tests/unit/.eslintrc.js deleted file mode 100644 index 958d51b..0000000 --- a/WebSite/tests/unit/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - env: { - jest: true - } -} diff --git a/WebSite/tests/unit/components/Hamburger.spec.js b/WebSite/tests/unit/components/Hamburger.spec.js deleted file mode 100644 index 01ea303..0000000 --- a/WebSite/tests/unit/components/Hamburger.spec.js +++ /dev/null @@ -1,18 +0,0 @@ -import { shallowMount } from '@vue/test-utils' -import Hamburger from '@/components/Hamburger/index.vue' -describe('Hamburger.vue', () => { - it('toggle click', () => { - const wrapper = shallowMount(Hamburger) - const mockFn = jest.fn() - wrapper.vm.$on('toggleClick', mockFn) - wrapper.find('.hamburger').trigger('click') - expect(mockFn).toBeCalled() - }) - it('prop isActive', () => { - const wrapper = shallowMount(Hamburger) - wrapper.setProps({ isActive: true }) - expect(wrapper.contains('.is-active')).toBe(true) - wrapper.setProps({ isActive: false }) - expect(wrapper.contains('.is-active')).toBe(false) - }) -}) diff --git a/WebSite/tests/unit/components/SvgIcon.spec.js b/WebSite/tests/unit/components/SvgIcon.spec.js deleted file mode 100644 index 31467a9..0000000 --- a/WebSite/tests/unit/components/SvgIcon.spec.js +++ /dev/null @@ -1,22 +0,0 @@ -import { shallowMount } from '@vue/test-utils' -import SvgIcon from '@/components/SvgIcon/index.vue' -describe('SvgIcon.vue', () => { - it('iconClass', () => { - const wrapper = shallowMount(SvgIcon, { - propsData: { - iconClass: 'test' - } - }) - expect(wrapper.find('use').attributes().href).toBe('#icon-test') - }) - it('className', () => { - const wrapper = shallowMount(SvgIcon, { - propsData: { - iconClass: 'test' - } - }) - expect(wrapper.classes().length).toBe(1) - wrapper.setProps({ className: 'test' }) - expect(wrapper.classes().includes('test')).toBe(true) - }) -}) diff --git a/WebSite/tests/unit/utils/formatTime.spec.js b/WebSite/tests/unit/utils/formatTime.spec.js deleted file mode 100644 index d07e414..0000000 --- a/WebSite/tests/unit/utils/formatTime.spec.js +++ /dev/null @@ -1,29 +0,0 @@ -import { formatTime } from '@/utils/index.js' -describe('Utils:formatTime', () => { - const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" - const retrofit = 5 * 1000 - - it('ten digits timestamp', () => { - expect(formatTime((d / 1000).toFixed(0))).toBe('7月13æ—¥17æ—¶54分') - }) - it('test now', () => { - expect(formatTime(+new Date() - 1)).toBe('刚刚') - }) - it('less two minute', () => { - expect(formatTime(+new Date() - 60 * 2 * 1000 + retrofit)).toBe('2分钟å‰') - }) - it('less two hour', () => { - expect(formatTime(+new Date() - 60 * 60 * 2 * 1000 + retrofit)).toBe('2å°æ—¶å‰') - }) - it('less one day', () => { - expect(formatTime(+new Date() - 60 * 60 * 24 * 1 * 1000)).toBe('1天å‰') - }) - it('more than one day', () => { - expect(formatTime(d)).toBe('7月13æ—¥17æ—¶54分') - }) - it('format', () => { - expect(formatTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') - expect(formatTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') - expect(formatTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') - }) -}) diff --git a/WebSite/tests/unit/utils/parseTime.spec.js b/WebSite/tests/unit/utils/parseTime.spec.js deleted file mode 100644 index 77ecb9d..0000000 --- a/WebSite/tests/unit/utils/parseTime.spec.js +++ /dev/null @@ -1,27 +0,0 @@ -import { parseTime } from '@/utils/index.js' -describe('Utils:parseTime', () => { - const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01" - it('timestamp', () => { - expect(parseTime(d)).toBe('2018-07-13 17:54:01') - }) - it('ten digits timestamp', () => { - expect(parseTime((d / 1000).toFixed(0))).toBe('2018-07-13 17:54:01') - }) - it('new Date', () => { - expect(parseTime(new Date(d))).toBe('2018-07-13 17:54:01') - }) - it('format', () => { - expect(parseTime(d, '{y}-{m}-{d} {h}:{i}')).toBe('2018-07-13 17:54') - expect(parseTime(d, '{y}-{m}-{d}')).toBe('2018-07-13') - expect(parseTime(d, '{y}/{m}/{d} {h}-{i}')).toBe('2018/07/13 17-54') - }) - it('get the day of the week', () => { - expect(parseTime(d, '{a}')).toBe('五') // 星期五 - }) - it('get the day of the week', () => { - expect(parseTime(+d + 1000 * 60 * 60 * 24 * 2, '{a}')).toBe('æ—¥') // 星期日 - }) - it('empty argument', () => { - expect(parseTime()).toBeNull() - }) -}) diff --git a/WebSite/tests/unit/utils/validate.spec.js b/WebSite/tests/unit/utils/validate.spec.js deleted file mode 100644 index ef2efe6..0000000 --- a/WebSite/tests/unit/utils/validate.spec.js +++ /dev/null @@ -1,28 +0,0 @@ -import { validUsername, validURL, validLowerCase, validUpperCase, validAlphabets } from '@/utils/validate.js' -describe('Utils:validate', () => { - it('validUsername', () => { - expect(validUsername('admin')).toBe(true) - expect(validUsername('editor')).toBe(true) - expect(validUsername('xxxx')).toBe(false) - }) - it('validURL', () => { - expect(validURL('https://github.com/PanJiaChen/vue-element-admin')).toBe(true) - expect(validURL('http://github.com/PanJiaChen/vue-element-admin')).toBe(true) - expect(validURL('github.com/PanJiaChen/vue-element-admin')).toBe(false) - }) - it('validLowerCase', () => { - expect(validLowerCase('abc')).toBe(true) - expect(validLowerCase('Abc')).toBe(false) - expect(validLowerCase('123abc')).toBe(false) - }) - it('validUpperCase', () => { - expect(validUpperCase('ABC')).toBe(true) - expect(validUpperCase('Abc')).toBe(false) - expect(validUpperCase('123ABC')).toBe(false) - }) - it('validAlphabets', () => { - expect(validAlphabets('ABC')).toBe(true) - expect(validAlphabets('Abc')).toBe(true) - expect(validAlphabets('123aBC')).toBe(false) - }) -}) diff --git a/WebSite/vue.config.js b/WebSite/vue.config.js index 5b7c28a..fb34eb7 100644 --- a/WebSite/vue.config.js +++ b/WebSite/vue.config.js @@ -1,166 +1,79 @@ -"use strict"; -const path = require("path"); -const defaultSettings = require("./src/settings.js"); +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2020-12-17 12:52:35 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-29 13:49:00 + */ +'use strict'; + +const path = require('path'); +const defaultSettings = require('./src/settings'); function resolve(dir) { return path.join(__dirname, dir); } -const name = defaultSettings.title || "Vue Element Admin"; // page title - -// If your port is set to 80, -// use administrator privileges to execute the command line. -// For example, Mac: sudo npm run -// You can change the port by the following method: -// port = 9527 npm run dev OR npm run dev --port = 9527 -const port = process.env.port || process.env.npm_config_port || 9529; // dev port - -// get npm config argv -const configArgv = JSON.parse(process.env.npm_config_argv); -const original = configArgv.original.slice(1); -const stage = original[1] ? original[1].replace(/-/g, "") : ""; - +// devServer const devServer = { - port: port, - open: false, + port: 3000, + open: true, overlay: { warnings: false, errors: true } }; -const proxy = { - // detail: https://cli.vuejs.org/config/#devserver-proxy - [process.env.VUE_APP_BASE_API]: { - // target: `http://127.0.0.1:${port}`, - target: "http://47.110.127.118:8001", - changeOrigin: true, - pathRewrite: { - ["^" + process.env.VUE_APP_BASE_API]: "" - } - } -}; -const mockServer = require("./mock/mock-server.js"); -if (stage === "mock") { - devServer.before = mockServer; + +if (process.env.NODE_ENV === 'mock') { + devServer.before = require('./mock/mock-server.js'); } else { - devServer.proxy = proxy; + devServer.proxy = { + // detail: https://cli.vuejs.org/config/#devserver-proxy + [process.env.VUE_APP_BASE_API]: { + target: 'http://localhost:8999', + changeOrigin: true, + pathRewrite: { + ['^' + process.env.VUE_APP_BASE_API]: '' + } + } + }; } -// All configuration item explanations can be find in https://cli.vuejs.org/config/ module.exports = { - /** - * You will need to set publicPath if you plan to deploy your site under a sub path, - * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/, - * then publicPath should be set to "/bar/". - * In most cases please use '/' !!! - * Detail: https://cli.vuejs.org/config/#publicpath - */ - publicPath: "./", - outputDir: "dist", - assetsDir: "static", - lintOnSave: process.env.NODE_ENV === "development", - productionSourceMap: false, + publicPath: './', + outputDir: 'dist', + assetsDir: 'static', + lintOnSave: false, devServer, configureWebpack: { // provide the app's title in webpack's name field, so that // it can be accessed in index.html to inject the correct title. - name: name, + name: defaultSettings.applicationName, resolve: { alias: { - "@": resolve("src") + '@': resolve('src') } } }, chainWebpack(config) { - // copy config file to dist - config.plugin("copy").tap(args => { - let configName = - process.env.ENV && - process.env.ENV !== "development" && - process.env.ENV !== "production" - ? process.env.ENV - : "default"; - args[0].push({ - from: path.resolve( - __dirname, - `./src/assets/configs/${configName}.json` - ), - to: path.resolve(__dirname, "./dist/config.json") - }); - return args; - }); - config.plugins.delete("preload"); // TODO: need test - config.plugins.delete("prefetch"); // TODO: need test + // when there are many pages, it will cause too many meaningless requests + config.plugins.delete('prefetch'); // set svg-sprite-loader config.module - .rule("svg") - .exclude.add(resolve("src/icons")) + .rule('svg') + .exclude.add(resolve('src/icons')) .end(); config.module - .rule("icons") + .rule('icons') .test(/\.svg$/) - .include.add(resolve("src/icons")) + .include.add(resolve('src/icons')) .end() - .use("svg-sprite-loader") - .loader("svg-sprite-loader") + .use('svg-sprite-loader') + .loader('svg-sprite-loader') .options({ - symbolId: "icon-[name]" - }) - .end(); - - // set preserveWhitespace - config.module - .rule("vue") - .use("vue-loader") - .loader("vue-loader") - .tap(options => { - options.compilerOptions.preserveWhitespace = true; - return options; + symbolId: 'icon-[name]' }) .end(); - - config - // https://webpack.js.org/configuration/devtool/#development - .when(process.env.NODE_ENV === "development", config => - config.devtool("cheap-source-map") - ); - - config.when(process.env.NODE_ENV !== "development", config => { - config - .plugin("ScriptExtHtmlWebpackPlugin") - .after("html") - .use("script-ext-html-webpack-plugin", [ - { - // `runtime` must same as runtimeChunk name. default is `runtime` - inline: /runtime\..*\.js$/ - } - ]) - .end(); - config.optimization.splitChunks({ - chunks: "all", - cacheGroups: { - libs: { - name: "chunk-libs", - test: /[\\/]node_modules[\\/]/, - priority: 10, - chunks: "initial" // only package third parties that are initially dependent - }, - elementUI: { - name: "chunk-elementUI", // split elementUI into a single package - priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app - test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm - }, - commons: { - name: "chunk-commons", - test: resolve("src/components"), // can customize your rules - minChunks: 3, // minimum common number - priority: 5, - reuseExistingChunk: true - } - } - }); - config.optimization.runtimeChunk("single"); - }); } }; -- GitLab