From ff1c03700e9001aa68857f69f39a131d932341fc Mon Sep 17 00:00:00 2001 From: Hinse Date: Fri, 30 Apr 2021 14:52:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9E=83=E5=9C=BE=E5=88=86=E7=B1=BB=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 12 + .vs/Waste/DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 211244 bytes .vs/Waste/config/applicationhost.config | 1024 ++ .vs/Waste/v16/.suo | Bin 0 -> 97792 bytes Waste.Application/AccountAppService.cs | 29 + .../AccountInfo/AccountService.cs | 17 + .../AccountInfo/Dtos/AccountDto.cs | 27 + .../AccountInfo/IAccountService.cs | 13 + Waste.Application/LogExceptionHandler.cs | 26 + Waste.Application/Waste.Application.csproj | 16 + Waste.Application/Waste.Application.xml | 45 + Waste.Core/Startup.cs | 38 + Waste.Core/Waste.Core.csproj | 20 + Waste.Core/Waste.Core.xml | 8 + Waste.Doc/Waste.Doc.csproj | 7 + Waste.Doc/Waste.pdb | 2789 ++++ Waste.Doc/Waste.pdm | 2789 ++++ Waste.Domain/Waste.Domain.csproj | 12 + Waste.Web.Core/Handlers/JwtHandler.cs | 17 + .../Handlers/RESTfulResultProvider.cs | 128 + Waste.Web.Core/Startup.cs | 46 + Waste.Web.Core/Waste.Web.Core.csproj | 16 + Waste.Web.Core/Waste.Web.Core.xml | 46 + Waste.Web/Program.cs | 83 + Waste.Web/Properties/launchSettings.json | 31 + Waste.Web/Startup.cs | 28 + Waste.Web/Waste.Web.csproj | 11 + Waste.Web/appsettings.Development.json | 9 + Waste.Web/appsettings.json | 25 + Waste.WebApi/App/Page/.browserslistrc | 3 + Waste.WebApi/App/Page/.editorconfig | 39 + Waste.WebApi/App/Page/.env | 3 + Waste.WebApi/App/Page/.env.development | 3 + Waste.WebApi/App/Page/.env.preview | 3 + Waste.WebApi/App/Page/.eslintrc.js | 75 + Waste.WebApi/App/Page/.gitattributes | 1 + Waste.WebApi/App/Page/.gitignore | 22 + Waste.WebApi/App/Page/.prettierrc | 5 + Waste.WebApi/App/Page/.travis.yml | 7 + Waste.WebApi/App/Page/LICENSE | 21 + Waste.WebApi/App/Page/README.md | 101 + Waste.WebApi/App/Page/README.zh-CN.md | 109 + Waste.WebApi/App/Page/babel.config.js | 28 + Waste.WebApi/App/Page/config/plugin.config.js | 49 + .../App/Page/config/themePluginConfig.js | 115 + .../App/Page/docs/add-page-loading-animate.md | 31 + .../App/Page/docs/webpack-bundle-analyzer.md | 40 + Waste.WebApi/App/Page/jest.config.js | 23 + Waste.WebApi/App/Page/jsconfig.json | 11 + Waste.WebApi/App/Page/package.json | 64 + Waste.WebApi/App/Page/postcss.config.js | 5 + Waste.WebApi/App/Page/public/avatar2.jpg | Bin 0 -> 80189 bytes Waste.WebApi/App/Page/public/favicon.ico | Bin 0 -> 9662 bytes Waste.WebApi/App/Page/public/index.html | 35 + Waste.WebApi/App/Page/public/logo.png | Bin 0 -> 14523 bytes Waste.WebApi/App/Page/src/App.vue | 83 + Waste.WebApi/App/Page/src/api/login.js | 37 + Waste.WebApi/App/Page/src/api/manage.js | 70 + .../App/Page/src/assets/background.svg | 69 + .../App/Page/src/assets/css/common.css | 257 + .../App/Page/src/assets/icons/bx-analyse.svg | 1 + .../App/Page/src/assets/img/0shwnvo1.ubg.jpg | Bin 0 -> 23802 bytes Waste.WebApi/App/Page/src/assets/img/1.png | Bin 0 -> 27967 bytes Waste.WebApi/App/Page/src/assets/img/7.jpg | Bin 0 -> 169926 bytes Waste.WebApi/App/Page/src/assets/img/logo.png | Bin 0 -> 14523 bytes .../App/Page/src/assets/img/logo2.png | Bin 0 -> 7837 bytes Waste.WebApi/App/Page/src/assets/logo.svg | 29 + .../ArticleListContent/ArticleListContent.vue | 89 + .../components/ArticleListContent/index.js | 3 + .../Page/src/components/AvatarList/Item.jsx | 24 + .../Page/src/components/AvatarList/List.jsx | 72 + .../Page/src/components/AvatarList/index.js | 9 + .../Page/src/components/AvatarList/index.less | 60 + .../Page/src/components/AvatarList/index.md | 64 + .../App/Page/src/components/Charts/Bar.vue | 59 + .../Page/src/components/Charts/ChartCard.vue | 120 + .../App/Page/src/components/Charts/Liquid.vue | 67 + .../Page/src/components/Charts/MiniArea.vue | 56 + .../Page/src/components/Charts/MiniBar.vue | 57 + .../src/components/Charts/MiniProgress.vue | 75 + .../src/components/Charts/MiniSmoothArea.vue | 40 + .../App/Page/src/components/Charts/Radar.vue | 68 + .../Page/src/components/Charts/RankList.vue | 77 + .../Page/src/components/Charts/TagCloud.vue | 113 + .../src/components/Charts/TransferBar.vue | 64 + .../App/Page/src/components/Charts/Trend.vue | 82 + .../App/Page/src/components/Charts/chart.less | 13 + .../src/components/Charts/smooth.area.less | 14 + .../App/Page/src/components/Dialog.js | 113 + .../src/components/Editor/QuillEditor.vue | 83 + .../Page/src/components/Editor/WangEditor.vue | 57 + .../Page/src/components/Ellipsis/Ellipsis.vue | 64 + .../App/Page/src/components/Ellipsis/index.js | 3 + .../App/Page/src/components/Ellipsis/index.md | 38 + .../FooterToolbar/FooterToolBar.vue | 47 + .../src/components/FooterToolbar/index.js | 4 + .../src/components/FooterToolbar/index.less | 23 + .../src/components/FooterToolbar/index.md | 48 + .../src/components/GlobalFooter/index.vue | 24 + .../GlobalHeader/AvatarDropdown.vue | 121 + .../components/GlobalHeader/RightContent.vue | 53 + .../components/IconSelector/IconSelector.vue | 86 + .../src/components/IconSelector/README.md | 48 + .../Page/src/components/IconSelector/icons.js | 36 + .../Page/src/components/IconSelector/index.js | 2 + .../Page/src/components/MultiTab/MultiTab.vue | 162 + .../Page/src/components/MultiTab/events.js | 2 + .../App/Page/src/components/MultiTab/index.js | 40 + .../Page/src/components/MultiTab/index.less | 25 + .../src/components/NProgress/nprogress.less | 76 + .../src/components/NoticeIcon/NoticeIcon.vue | 90 + .../Page/src/components/NoticeIcon/index.js | 2 + .../src/components/NumberInfo/NumberInfo.vue | 54 + .../Page/src/components/NumberInfo/index.js | 3 + .../Page/src/components/NumberInfo/index.less | 55 + .../Page/src/components/NumberInfo/index.md | 43 + .../Page/src/components/Other/CarbonAds.vue | 114 + .../Page/src/components/PageLoading/index.jsx | 106 + .../Page/src/components/SelectLang/index.jsx | 58 + .../Page/src/components/SelectLang/index.less | 31 + .../SettingDrawer/SettingDrawer.vue | 343 + .../components/SettingDrawer/SettingItem.vue | 38 + .../src/components/SettingDrawer/index.js | 2 + .../components/SettingDrawer/settingConfig.js | 48 + .../components/SettingDrawer/themeColor.js | 24 + .../App/Page/src/components/_util/util.js | 46 + .../Page/src/components/device/Statistics.vue | 65 + .../App/Page/src/components/device/device.vue | 65 + Waste.WebApi/App/Page/src/components/index.js | 63 + .../App/Page/src/components/index.less | 6 + .../src/components/tools/TwoStepCaptcha.vue | 89 + .../App/Page/src/config/defaultSettings.js | 30 + .../App/Page/src/config/router.config.js | 399 + Waste.WebApi/App/Page/src/core/bootstrap.js | 31 + .../App/Page/src/core/directives/action.js | 34 + Waste.WebApi/App/Page/src/core/icons.js | 11 + Waste.WebApi/App/Page/src/core/lazy_use.js | 124 + Waste.WebApi/App/Page/src/core/use.js | 27 + Waste.WebApi/App/Page/src/global.less | 94 + .../App/Page/src/layouts/BasicLayout.less | 36 + .../App/Page/src/layouts/BasicLayout.vue | 182 + .../App/Page/src/layouts/BlankLayout.vue | 16 + .../App/Page/src/layouts/PageView.vue | 12 + .../App/Page/src/layouts/RouteView.vue | 32 + .../App/Page/src/layouts/UserLayout.vue | 109 + Waste.WebApi/App/Page/src/layouts/index.js | 6 + Waste.WebApi/App/Page/src/locales/index.js | 59 + .../App/Page/src/locales/lang/en-US.js | 45 + .../App/Page/src/locales/lang/zh-CN.js | 22 + Waste.WebApi/App/Page/src/main.js | 42 + Waste.WebApi/App/Page/src/mock/index.js | 23 + .../App/Page/src/mock/services/article.js | 89 + .../App/Page/src/mock/services/auth.js | 50 + .../App/Page/src/mock/services/manage.js | 252 + .../App/Page/src/mock/services/other.js | 973 ++ .../App/Page/src/mock/services/tagCloud.js | 9 + .../App/Page/src/mock/services/user.js | 760 + Waste.WebApi/App/Page/src/mock/util.js | 38 + Waste.WebApi/App/Page/src/permission.js | 76 + Waste.WebApi/App/Page/src/router/README.md | 134 + .../App/Page/src/router/generator-routers.js | 229 + Waste.WebApi/App/Page/src/router/index.js | 17 + Waste.WebApi/App/Page/src/static/data.json | 617 + Waste.WebApi/App/Page/src/static/tag.json | 49 + Waste.WebApi/App/Page/src/store/app-mixin.js | 32 + .../App/Page/src/store/device-mixin.js | 11 + Waste.WebApi/App/Page/src/store/getters.js | 16 + Waste.WebApi/App/Page/src/store/i18n-mixin.js | 16 + Waste.WebApi/App/Page/src/store/index.js | 32 + .../App/Page/src/store/modules/app.js | 99 + .../Page/src/store/modules/async-router.js | 30 + .../App/Page/src/store/modules/permission.js | 76 + .../Page/src/store/modules/user - 副本.js | 133 + .../App/Page/src/store/modules/user.js | 530 + .../App/Page/src/store/mutation-types.js | 24 + Waste.WebApi/App/Page/src/utils/axios.js | 35 + Waste.WebApi/App/Page/src/utils/domUtil.js | 21 + Waste.WebApi/App/Page/src/utils/filter.js | 20 + .../App/Page/src/utils/helper/permission.js | 51 + .../App/Page/src/utils/permissions.js | 8 + Waste.WebApi/App/Page/src/utils/request.js | 122 + .../App/Page/src/utils/routeConvert.js | 30 + Waste.WebApi/App/Page/src/utils/screenLog.js | 5 + Waste.WebApi/App/Page/src/utils/tool.js | 20 + Waste.WebApi/App/Page/src/utils/util.js | 67 + Waste.WebApi/App/Page/src/utils/utils.less | 50 + .../views/business/components/CreateForm.vue | 95 + .../App/Page/src/views/business/index.vue | 208 + .../Page/src/views/components/CreateTable.vue | 126 + .../App/Page/src/views/device/Bindcount.vue | 243 + .../views/device/components/CreateForm.vue | 94 + .../views/device/components/ServiceTable.vue | 149 + .../App/Page/src/views/device/list.vue | 414 + .../App/Page/src/views/device/result.vue | 423 + .../App/Page/src/views/exception/404.vue | 20 + .../App/Page/src/views/home/index.vue | 329 + .../views/market/components/CreateForm.vue | 160 + .../App/Page/src/views/market/message.vue | 83 + .../App/Page/src/views/market/tag.vue | 259 + .../App/Page/src/views/official/List.vue | 283 + .../views/official/components/CreateTable.vue | 126 + .../src/views/official/components/Step1.vue | 109 + .../src/views/official/components/Step2.vue | 170 + .../src/views/official/components/Step3.vue | 65 + .../src/views/official/components/addList.vue | 149 + .../Page/src/views/official/deviceList.vue | 336 + .../App/Page/src/views/official/empower.vue | 210 + .../App/Page/src/views/official/template.vue | 197 + .../App/Page/src/views/reguser/bind.vue | 270 + .../views/reguser/components/CreateForm.vue | 90 + .../views/reguser/components/CreateTable.vue | 126 + .../Page/src/views/reguser/components/tag.vue | 86 + .../App/Page/src/views/reguser/list.vue | 242 + .../App/Page/src/views/reguser/resultlist.vue | 104 + .../views/report/components/CreateTable.vue | 122 + .../App/Page/src/views/report/health.vue | 107 + .../App/Page/src/views/report/measure.vue | 202 + .../App/Page/src/views/report/tag.vue | 107 + .../App/Page/src/views/report/user.vue | 186 + .../App/Page/src/views/user/Login.vue | 198 + Waste.WebApi/App/Page/src/views/user/base.vue | 0 Waste.WebApi/App/Page/src/views/user/chat.vue | 0 .../App/Page/src/views/user/password.vue | 64 + Waste.WebApi/App/Page/tests/unit/.eslintrc.js | 5 + Waste.WebApi/App/Page/vue.config.js | 130 + Waste.WebApi/App/Page/webstorm.config.js | 3 + Waste.WebApi/App/Page/yarn.lock | 11474 ++++++++++++++++ Waste.sln | 67 + 228 files changed, 36263 insertions(+) create mode 100644 .gitignore create mode 100644 .vs/Waste/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/Waste/config/applicationhost.config create mode 100644 .vs/Waste/v16/.suo create mode 100644 Waste.Application/AccountAppService.cs create mode 100644 Waste.Application/AccountInfo/AccountService.cs create mode 100644 Waste.Application/AccountInfo/Dtos/AccountDto.cs create mode 100644 Waste.Application/AccountInfo/IAccountService.cs create mode 100644 Waste.Application/LogExceptionHandler.cs create mode 100644 Waste.Application/Waste.Application.csproj create mode 100644 Waste.Application/Waste.Application.xml create mode 100644 Waste.Core/Startup.cs create mode 100644 Waste.Core/Waste.Core.csproj create mode 100644 Waste.Core/Waste.Core.xml create mode 100644 Waste.Doc/Waste.Doc.csproj create mode 100644 Waste.Doc/Waste.pdb create mode 100644 Waste.Doc/Waste.pdm create mode 100644 Waste.Domain/Waste.Domain.csproj create mode 100644 Waste.Web.Core/Handlers/JwtHandler.cs create mode 100644 Waste.Web.Core/Handlers/RESTfulResultProvider.cs create mode 100644 Waste.Web.Core/Startup.cs create mode 100644 Waste.Web.Core/Waste.Web.Core.csproj create mode 100644 Waste.Web.Core/Waste.Web.Core.xml create mode 100644 Waste.Web/Program.cs create mode 100644 Waste.Web/Properties/launchSettings.json create mode 100644 Waste.Web/Startup.cs create mode 100644 Waste.Web/Waste.Web.csproj create mode 100644 Waste.Web/appsettings.Development.json create mode 100644 Waste.Web/appsettings.json create mode 100644 Waste.WebApi/App/Page/.browserslistrc create mode 100644 Waste.WebApi/App/Page/.editorconfig create mode 100644 Waste.WebApi/App/Page/.env create mode 100644 Waste.WebApi/App/Page/.env.development create mode 100644 Waste.WebApi/App/Page/.env.preview create mode 100644 Waste.WebApi/App/Page/.eslintrc.js create mode 100644 Waste.WebApi/App/Page/.gitattributes create mode 100644 Waste.WebApi/App/Page/.gitignore create mode 100644 Waste.WebApi/App/Page/.prettierrc create mode 100644 Waste.WebApi/App/Page/.travis.yml create mode 100644 Waste.WebApi/App/Page/LICENSE create mode 100644 Waste.WebApi/App/Page/README.md create mode 100644 Waste.WebApi/App/Page/README.zh-CN.md create mode 100644 Waste.WebApi/App/Page/babel.config.js create mode 100644 Waste.WebApi/App/Page/config/plugin.config.js create mode 100644 Waste.WebApi/App/Page/config/themePluginConfig.js create mode 100644 Waste.WebApi/App/Page/docs/add-page-loading-animate.md create mode 100644 Waste.WebApi/App/Page/docs/webpack-bundle-analyzer.md create mode 100644 Waste.WebApi/App/Page/jest.config.js create mode 100644 Waste.WebApi/App/Page/jsconfig.json create mode 100644 Waste.WebApi/App/Page/package.json create mode 100644 Waste.WebApi/App/Page/postcss.config.js create mode 100644 Waste.WebApi/App/Page/public/avatar2.jpg create mode 100644 Waste.WebApi/App/Page/public/favicon.ico create mode 100644 Waste.WebApi/App/Page/public/index.html create mode 100644 Waste.WebApi/App/Page/public/logo.png create mode 100644 Waste.WebApi/App/Page/src/App.vue create mode 100644 Waste.WebApi/App/Page/src/api/login.js create mode 100644 Waste.WebApi/App/Page/src/api/manage.js create mode 100644 Waste.WebApi/App/Page/src/assets/background.svg create mode 100644 Waste.WebApi/App/Page/src/assets/css/common.css create mode 100644 Waste.WebApi/App/Page/src/assets/icons/bx-analyse.svg create mode 100644 Waste.WebApi/App/Page/src/assets/img/0shwnvo1.ubg.jpg create mode 100644 Waste.WebApi/App/Page/src/assets/img/1.png create mode 100644 Waste.WebApi/App/Page/src/assets/img/7.jpg create mode 100644 Waste.WebApi/App/Page/src/assets/img/logo.png create mode 100644 Waste.WebApi/App/Page/src/assets/img/logo2.png create mode 100644 Waste.WebApi/App/Page/src/assets/logo.svg create mode 100644 Waste.WebApi/App/Page/src/components/ArticleListContent/ArticleListContent.vue create mode 100644 Waste.WebApi/App/Page/src/components/ArticleListContent/index.js create mode 100644 Waste.WebApi/App/Page/src/components/AvatarList/Item.jsx create mode 100644 Waste.WebApi/App/Page/src/components/AvatarList/List.jsx create mode 100644 Waste.WebApi/App/Page/src/components/AvatarList/index.js create mode 100644 Waste.WebApi/App/Page/src/components/AvatarList/index.less create mode 100644 Waste.WebApi/App/Page/src/components/AvatarList/index.md create mode 100644 Waste.WebApi/App/Page/src/components/Charts/Bar.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/ChartCard.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/Liquid.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/MiniArea.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/MiniBar.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/MiniProgress.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/MiniSmoothArea.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/Radar.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/RankList.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/TagCloud.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/TransferBar.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/Trend.vue create mode 100644 Waste.WebApi/App/Page/src/components/Charts/chart.less create mode 100644 Waste.WebApi/App/Page/src/components/Charts/smooth.area.less create mode 100644 Waste.WebApi/App/Page/src/components/Dialog.js create mode 100644 Waste.WebApi/App/Page/src/components/Editor/QuillEditor.vue create mode 100644 Waste.WebApi/App/Page/src/components/Editor/WangEditor.vue create mode 100644 Waste.WebApi/App/Page/src/components/Ellipsis/Ellipsis.vue create mode 100644 Waste.WebApi/App/Page/src/components/Ellipsis/index.js create mode 100644 Waste.WebApi/App/Page/src/components/Ellipsis/index.md create mode 100644 Waste.WebApi/App/Page/src/components/FooterToolbar/FooterToolBar.vue create mode 100644 Waste.WebApi/App/Page/src/components/FooterToolbar/index.js create mode 100644 Waste.WebApi/App/Page/src/components/FooterToolbar/index.less create mode 100644 Waste.WebApi/App/Page/src/components/FooterToolbar/index.md create mode 100644 Waste.WebApi/App/Page/src/components/GlobalFooter/index.vue create mode 100644 Waste.WebApi/App/Page/src/components/GlobalHeader/AvatarDropdown.vue create mode 100644 Waste.WebApi/App/Page/src/components/GlobalHeader/RightContent.vue create mode 100644 Waste.WebApi/App/Page/src/components/IconSelector/IconSelector.vue create mode 100644 Waste.WebApi/App/Page/src/components/IconSelector/README.md create mode 100644 Waste.WebApi/App/Page/src/components/IconSelector/icons.js create mode 100644 Waste.WebApi/App/Page/src/components/IconSelector/index.js create mode 100644 Waste.WebApi/App/Page/src/components/MultiTab/MultiTab.vue create mode 100644 Waste.WebApi/App/Page/src/components/MultiTab/events.js create mode 100644 Waste.WebApi/App/Page/src/components/MultiTab/index.js create mode 100644 Waste.WebApi/App/Page/src/components/MultiTab/index.less create mode 100644 Waste.WebApi/App/Page/src/components/NProgress/nprogress.less create mode 100644 Waste.WebApi/App/Page/src/components/NoticeIcon/NoticeIcon.vue create mode 100644 Waste.WebApi/App/Page/src/components/NoticeIcon/index.js create mode 100644 Waste.WebApi/App/Page/src/components/NumberInfo/NumberInfo.vue create mode 100644 Waste.WebApi/App/Page/src/components/NumberInfo/index.js create mode 100644 Waste.WebApi/App/Page/src/components/NumberInfo/index.less create mode 100644 Waste.WebApi/App/Page/src/components/NumberInfo/index.md create mode 100644 Waste.WebApi/App/Page/src/components/Other/CarbonAds.vue create mode 100644 Waste.WebApi/App/Page/src/components/PageLoading/index.jsx create mode 100644 Waste.WebApi/App/Page/src/components/SelectLang/index.jsx create mode 100644 Waste.WebApi/App/Page/src/components/SelectLang/index.less create mode 100644 Waste.WebApi/App/Page/src/components/SettingDrawer/SettingDrawer.vue create mode 100644 Waste.WebApi/App/Page/src/components/SettingDrawer/SettingItem.vue create mode 100644 Waste.WebApi/App/Page/src/components/SettingDrawer/index.js create mode 100644 Waste.WebApi/App/Page/src/components/SettingDrawer/settingConfig.js create mode 100644 Waste.WebApi/App/Page/src/components/SettingDrawer/themeColor.js create mode 100644 Waste.WebApi/App/Page/src/components/_util/util.js create mode 100644 Waste.WebApi/App/Page/src/components/device/Statistics.vue create mode 100644 Waste.WebApi/App/Page/src/components/device/device.vue create mode 100644 Waste.WebApi/App/Page/src/components/index.js create mode 100644 Waste.WebApi/App/Page/src/components/index.less create mode 100644 Waste.WebApi/App/Page/src/components/tools/TwoStepCaptcha.vue create mode 100644 Waste.WebApi/App/Page/src/config/defaultSettings.js create mode 100644 Waste.WebApi/App/Page/src/config/router.config.js create mode 100644 Waste.WebApi/App/Page/src/core/bootstrap.js create mode 100644 Waste.WebApi/App/Page/src/core/directives/action.js create mode 100644 Waste.WebApi/App/Page/src/core/icons.js create mode 100644 Waste.WebApi/App/Page/src/core/lazy_use.js create mode 100644 Waste.WebApi/App/Page/src/core/use.js create mode 100644 Waste.WebApi/App/Page/src/global.less create mode 100644 Waste.WebApi/App/Page/src/layouts/BasicLayout.less create mode 100644 Waste.WebApi/App/Page/src/layouts/BasicLayout.vue create mode 100644 Waste.WebApi/App/Page/src/layouts/BlankLayout.vue create mode 100644 Waste.WebApi/App/Page/src/layouts/PageView.vue create mode 100644 Waste.WebApi/App/Page/src/layouts/RouteView.vue create mode 100644 Waste.WebApi/App/Page/src/layouts/UserLayout.vue create mode 100644 Waste.WebApi/App/Page/src/layouts/index.js create mode 100644 Waste.WebApi/App/Page/src/locales/index.js create mode 100644 Waste.WebApi/App/Page/src/locales/lang/en-US.js create mode 100644 Waste.WebApi/App/Page/src/locales/lang/zh-CN.js create mode 100644 Waste.WebApi/App/Page/src/main.js create mode 100644 Waste.WebApi/App/Page/src/mock/index.js create mode 100644 Waste.WebApi/App/Page/src/mock/services/article.js create mode 100644 Waste.WebApi/App/Page/src/mock/services/auth.js create mode 100644 Waste.WebApi/App/Page/src/mock/services/manage.js create mode 100644 Waste.WebApi/App/Page/src/mock/services/other.js create mode 100644 Waste.WebApi/App/Page/src/mock/services/tagCloud.js create mode 100644 Waste.WebApi/App/Page/src/mock/services/user.js create mode 100644 Waste.WebApi/App/Page/src/mock/util.js create mode 100644 Waste.WebApi/App/Page/src/permission.js create mode 100644 Waste.WebApi/App/Page/src/router/README.md create mode 100644 Waste.WebApi/App/Page/src/router/generator-routers.js create mode 100644 Waste.WebApi/App/Page/src/router/index.js create mode 100644 Waste.WebApi/App/Page/src/static/data.json create mode 100644 Waste.WebApi/App/Page/src/static/tag.json create mode 100644 Waste.WebApi/App/Page/src/store/app-mixin.js create mode 100644 Waste.WebApi/App/Page/src/store/device-mixin.js create mode 100644 Waste.WebApi/App/Page/src/store/getters.js create mode 100644 Waste.WebApi/App/Page/src/store/i18n-mixin.js create mode 100644 Waste.WebApi/App/Page/src/store/index.js create mode 100644 Waste.WebApi/App/Page/src/store/modules/app.js create mode 100644 Waste.WebApi/App/Page/src/store/modules/async-router.js create mode 100644 Waste.WebApi/App/Page/src/store/modules/permission.js create mode 100644 Waste.WebApi/App/Page/src/store/modules/user - 副本.js create mode 100644 Waste.WebApi/App/Page/src/store/modules/user.js create mode 100644 Waste.WebApi/App/Page/src/store/mutation-types.js create mode 100644 Waste.WebApi/App/Page/src/utils/axios.js create mode 100644 Waste.WebApi/App/Page/src/utils/domUtil.js create mode 100644 Waste.WebApi/App/Page/src/utils/filter.js create mode 100644 Waste.WebApi/App/Page/src/utils/helper/permission.js create mode 100644 Waste.WebApi/App/Page/src/utils/permissions.js create mode 100644 Waste.WebApi/App/Page/src/utils/request.js create mode 100644 Waste.WebApi/App/Page/src/utils/routeConvert.js create mode 100644 Waste.WebApi/App/Page/src/utils/screenLog.js create mode 100644 Waste.WebApi/App/Page/src/utils/tool.js create mode 100644 Waste.WebApi/App/Page/src/utils/util.js create mode 100644 Waste.WebApi/App/Page/src/utils/utils.less create mode 100644 Waste.WebApi/App/Page/src/views/business/components/CreateForm.vue create mode 100644 Waste.WebApi/App/Page/src/views/business/index.vue create mode 100644 Waste.WebApi/App/Page/src/views/components/CreateTable.vue create mode 100644 Waste.WebApi/App/Page/src/views/device/Bindcount.vue create mode 100644 Waste.WebApi/App/Page/src/views/device/components/CreateForm.vue create mode 100644 Waste.WebApi/App/Page/src/views/device/components/ServiceTable.vue create mode 100644 Waste.WebApi/App/Page/src/views/device/list.vue create mode 100644 Waste.WebApi/App/Page/src/views/device/result.vue create mode 100644 Waste.WebApi/App/Page/src/views/exception/404.vue create mode 100644 Waste.WebApi/App/Page/src/views/home/index.vue create mode 100644 Waste.WebApi/App/Page/src/views/market/components/CreateForm.vue create mode 100644 Waste.WebApi/App/Page/src/views/market/message.vue create mode 100644 Waste.WebApi/App/Page/src/views/market/tag.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/List.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/components/CreateTable.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/components/Step1.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/components/Step2.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/components/Step3.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/components/addList.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/deviceList.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/empower.vue create mode 100644 Waste.WebApi/App/Page/src/views/official/template.vue create mode 100644 Waste.WebApi/App/Page/src/views/reguser/bind.vue create mode 100644 Waste.WebApi/App/Page/src/views/reguser/components/CreateForm.vue create mode 100644 Waste.WebApi/App/Page/src/views/reguser/components/CreateTable.vue create mode 100644 Waste.WebApi/App/Page/src/views/reguser/components/tag.vue create mode 100644 Waste.WebApi/App/Page/src/views/reguser/list.vue create mode 100644 Waste.WebApi/App/Page/src/views/reguser/resultlist.vue create mode 100644 Waste.WebApi/App/Page/src/views/report/components/CreateTable.vue create mode 100644 Waste.WebApi/App/Page/src/views/report/health.vue create mode 100644 Waste.WebApi/App/Page/src/views/report/measure.vue create mode 100644 Waste.WebApi/App/Page/src/views/report/tag.vue create mode 100644 Waste.WebApi/App/Page/src/views/report/user.vue create mode 100644 Waste.WebApi/App/Page/src/views/user/Login.vue create mode 100644 Waste.WebApi/App/Page/src/views/user/base.vue create mode 100644 Waste.WebApi/App/Page/src/views/user/chat.vue create mode 100644 Waste.WebApi/App/Page/src/views/user/password.vue create mode 100644 Waste.WebApi/App/Page/tests/unit/.eslintrc.js create mode 100644 Waste.WebApi/App/Page/vue.config.js create mode 100644 Waste.WebApi/App/Page/webstorm.config.js create mode 100644 Waste.WebApi/App/Page/yarn.lock create mode 100644 Waste.sln diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6817e42 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +/Waste.Application/bin +/Waste.Application/obj +/Waste.Core/obj +/Waste.Core/bin +/Waste.Doc/obj +/Waste.Doc/bin +/Waste.Domain/bin +/Waste.Domain/obj +/Waste.Web/bin +/Waste.Web/obj +/Waste.Web.Core/bin +/Waste.Web.Core/obj diff --git a/.vs/Waste/DesignTimeBuild/.dtbcache.v2 b/.vs/Waste/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..5edf91227d6210dccee43e541f0fb84be1910f61 GIT binary patch literal 211244 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 + + + + + +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.vs/Waste/v16/.suo b/.vs/Waste/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..1bacaccba1014bdfa5628a5c421cdda8418286b6 GIT binary patch literal 97792 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 BVJQFr literal 0 HcmV?d00001 diff --git a/Waste.Application/AccountAppService.cs b/Waste.Application/AccountAppService.cs new file mode 100644 index 0000000..98186c9 --- /dev/null +++ b/Waste.Application/AccountAppService.cs @@ -0,0 +1,29 @@ +using Furion.DynamicApiController; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Waste.Application +{ + /// + /// 账户接口 + /// + public class AccountAppService: IDynamicApiController + { + private readonly IAccountService _accountService; + + public AccountAppService(IAccountService accountService) + { + _accountService = accountService; + } + /// + /// 测试接口 + /// + public async Task GetTest() + { + return await _accountService.LoginAsync(null); + } + } +} diff --git a/Waste.Application/AccountInfo/AccountService.cs b/Waste.Application/AccountInfo/AccountService.cs new file mode 100644 index 0000000..5247fd8 --- /dev/null +++ b/Waste.Application/AccountInfo/AccountService.cs @@ -0,0 +1,17 @@ +using Furion.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Waste.Application +{ + public class AccountService : IAccountService, ITransient + { + public Task LoginAsync(LoginModel model) + { + throw new NotImplementedException(); + } + } +} diff --git a/Waste.Application/AccountInfo/Dtos/AccountDto.cs b/Waste.Application/AccountInfo/Dtos/AccountDto.cs new file mode 100644 index 0000000..f3ae2b9 --- /dev/null +++ b/Waste.Application/AccountInfo/Dtos/AccountDto.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Waste.Application +{ + /// + /// 用户登录 + /// + public class LoginModel + { + /// + /// 用户名 + /// + public string username { get; set; } + /// + /// 密码 + /// + public string pwd { get; set; } + /// + /// 验证码 + /// + public string code { get; set; } = ""; + } +} diff --git a/Waste.Application/AccountInfo/IAccountService.cs b/Waste.Application/AccountInfo/IAccountService.cs new file mode 100644 index 0000000..0259ed8 --- /dev/null +++ b/Waste.Application/AccountInfo/IAccountService.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Waste.Application +{ + public interface IAccountService + { + Task LoginAsync(LoginModel model); + } +} diff --git a/Waste.Application/LogExceptionHandler.cs b/Waste.Application/LogExceptionHandler.cs new file mode 100644 index 0000000..5ce5192 --- /dev/null +++ b/Waste.Application/LogExceptionHandler.cs @@ -0,0 +1,26 @@ +using Furion.DependencyInjection; +using Furion.FriendlyException; +using Microsoft.AspNetCore.Mvc.Filters; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Waste.Application +{ + public class LogExceptionHandler : IGlobalExceptionHandler, ISingleton + { + /// + /// 全局异常处理提供器 + /// + /// + /// + public Task OnExceptionAsync(ExceptionContext context) + { + // 写日志 + + return Task.CompletedTask; + } + } +} diff --git a/Waste.Application/Waste.Application.csproj b/Waste.Application/Waste.Application.csproj new file mode 100644 index 0000000..f1d2d91 --- /dev/null +++ b/Waste.Application/Waste.Application.csproj @@ -0,0 +1,16 @@ + + + + net5.0 + + + + Waste.Application.xml + 1701;1702;1591 + + + + + + + diff --git a/Waste.Application/Waste.Application.xml b/Waste.Application/Waste.Application.xml new file mode 100644 index 0000000..4308b70 --- /dev/null +++ b/Waste.Application/Waste.Application.xml @@ -0,0 +1,45 @@ + + + + Waste.Application + + + + + 账户接口 + + + + + 测试接口 + + + + + 用户登录 + + + + + 用户名 + + + + + 密码 + + + + + 验证码 + + + + + 全局异常处理提供器 + + + + + + diff --git a/Waste.Core/Startup.cs b/Waste.Core/Startup.cs new file mode 100644 index 0000000..48f15a7 --- /dev/null +++ b/Waste.Core/Startup.cs @@ -0,0 +1,38 @@ +using Furion; +using Microsoft.Extensions.DependencyInjection; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Waste.Core +{ + public class Startup : AppStartup + { + public void ConfigureServices(IServiceCollection services) + { + services.AddSqlSugar(new ConnectionConfig + { + ConnectionString = App.Configuration["NirvanaConnection"],//连接字符串 + DbType = DbType.SqlServer, + IsAutoCloseConnection = true, + InitKeyType = InitKeyType.Attribute //从特性读取主键自增信息 + }, + db => + { + //处理日志事务 + db.Aop.OnLogExecuting = (sql, pars) => + { + //App.PrintToMiniProfiler("SqlSugar", "Info", sql + "\r\n" + string.Join(",", pars?.Select(it => it.ParameterName + ":" + it.Value))); + App.PrintToMiniProfiler("SqlSugar", "Info", SqlProfiler.ParameterFormat(sql, pars)); + Console.WriteLine(sql); + Console.WriteLine(string.Join(",", pars?.Select(it => it.ParameterName + ":" + it.Value))); + Console.WriteLine(); + }; + } + ); + } + } +} diff --git a/Waste.Core/Waste.Core.csproj b/Waste.Core/Waste.Core.csproj new file mode 100644 index 0000000..f9c0279 --- /dev/null +++ b/Waste.Core/Waste.Core.csproj @@ -0,0 +1,20 @@ + + + + net5.0 + + + + Waste.Core.xml + 1701;1702;1591 + + + + + + + + + + + diff --git a/Waste.Core/Waste.Core.xml b/Waste.Core/Waste.Core.xml new file mode 100644 index 0000000..d844f3b --- /dev/null +++ b/Waste.Core/Waste.Core.xml @@ -0,0 +1,8 @@ + + + + Waste.Core + + + + diff --git a/Waste.Doc/Waste.Doc.csproj b/Waste.Doc/Waste.Doc.csproj new file mode 100644 index 0000000..f208d30 --- /dev/null +++ b/Waste.Doc/Waste.Doc.csproj @@ -0,0 +1,7 @@ + + + + net5.0 + + + diff --git a/Waste.Doc/Waste.pdb b/Waste.Doc/Waste.pdb new file mode 100644 index 0000000..1a80956 --- /dev/null +++ b/Waste.Doc/Waste.pdb @@ -0,0 +1,2789 @@ + + + + + + + + + +CE6E2FA3-BA82-4FC8-BCDD-8C9830EF68CF +Waste +Waste +1619681546 +Administrator +1619690628 +Administrator +[FolderOptions] + +[FolderOptions\Physical Objects] +GenerationCheckModel=Yes +GenerationPath= +GenerationOptions= +GenerationTasks= +GenerationTargets= +GenerationSelections= +RevPkey=Yes +RevFkey=Yes +RevAkey=Yes +RevCheck=Yes +RevIndx=Yes +RevOpts=Yes +RevViewAsTabl=No +RevViewOpts=Yes +RevSystAsTabl=Yes +RevTablPerm=No +RevViewPerm=No +RevProcPerm=No +RevDbpkPerm=No +RevSqncPerm=No +RevAdtPerm=No +RevUserPriv=No +RevUserOpts=No +RevGrpePriv=No +RevRolePriv=No +RevDtbsOpts=Yes +RevDtbsPerm=No +RevViewIndx=Yes +RevJidxOpts=Yes +RevStats=No +RevTspcPerm=No +RevCaseSensitive=No +GenTrgrStdMsg=Yes +GenTrgrMsgTab= +GenTrgrMsgNo= +GenTrgrMsgTxt= +TrgrPreserve=No +TrgrIns=Yes +TrgrUpd=Yes +TrgrDel=Yes +TrgrC2Ins=Yes +TrgrC2Upd=Yes +TrgrC3=Yes +TrgrC4=Yes +TrgrC5=Yes +TrgrC6=Yes +TrgrC7=Yes +TrgrC8=Yes +TrgrC9=Yes +TrgrC10=Yes +TrgrC11=Yes +TrgrC1=Yes +TrgrC12Ins=Yes +TrgrC12Upd=Yes +TrgrC13=Yes +UpdateTableStatistics=Yes +UpdateColumnStatistics=Yes + +[FolderOptions\Physical Objects\Database Generation] +GenScriptName=ybdevice.sql +GenScriptName0=ybdevice.sql +GenScriptName1=crebas.sql +GenScriptName2=crebas +GenScriptName3= +GenScriptName4= +GenScriptName5= +GenScriptName6= +GenScriptName7= +GenScriptName8= +GenScriptName9= +GenPathName=F:\liuzl_ybhdmob\YBDevice\YBDevice.Doc\ +GenSingleFile=Yes +GenODBC=No +GenCheckModel=Yes +GenScriptPrev=Yes +GenArchiveModel=No +GenUseSync=No +GenSyncChoice=0 +GenSyncArch= +GenSyncRmg=0 + +[FolderOptions\Physical Objects\Database Generation\Format] +GenScriptTitle=Yes +GenScriptNamLabl=No +GenScriptQDtbs=No +GenScriptQOwnr=Yes +GenScriptCase=0 +GenScriptEncoding=ANSI +GenScriptNAcct=No +IdentifierDelimiter=" + +[FolderOptions\Physical Objects\Database Generation\Database] +Create=Yes +Open=Yes +Close=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Database\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Tablespace] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Storage] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\User] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\User\Create] +Physical Options=No + +[FolderOptions\Physical Objects\Database Generation\Group] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\Role] +Create=Yes +Drop=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] +Default value=Yes +Check=Yes + +[FolderOptions\Physical Objects\Database Generation\AbstractDataType] +Create=Yes +Header=Yes +Footer=Yes +Drop=Yes +Comment=Yes +Install JAVA class=Yes +Remove JAVA class=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Rule] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Default] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Sequence] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] +Check=Yes +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] +User datatype=Yes +Default value=Yes +Check=Yes +Physical Options=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] +Constraint declaration=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] +Constraint declaration=Yes +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] +Primary key=Yes +Foreign key=Yes +Alternate key=Yes +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\View] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\View\Create] +Force Column list=No +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] +Table=Yes +View=Yes +Proc=Yes +Synonym=Yes +Database Package=Yes +Sequence=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Procedure] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Procedure\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\DatabasePackage] +Create=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\WebService] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Dimension] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synchronization] +GenBackupTabl=1 +GenKeepBackTabl=1 +GenTmpTablDrop=No +GenKeepTablOpts=No + +[FolderOptions\Physical Objects\Test Data] +GenDataPathName= +GenDataSinglefile=Yes +GenDataScriptName=testdata +GenDataScriptName0= +GenDataScriptName1= +GenDataScriptName2= +GenDataScriptName3= +GenDataScriptName4= +GenDataScriptName5= +GenDataScriptName6= +GenDataScriptName7= +GenDataScriptName8= +GenDataScriptName9= +GenDataOdbc=0 +GenDataDelOld=No +GenDataTitle=No +GenDataDefNumRows=20 +GenDataCommit=0 +GenDataPacket=0 +GenDataOwner=No +GenDataProfNumb= +GenDataProfChar= +GenDataProfDate= +GenDataCSVSeparator=, +GenDataFileFormat=CSV +GenDataUseWizard=No + +[FolderOptions\Pdm] +IndxIQName=%COLUMN%_%INDEXTYPE% +IndxPK=Yes +IndxFK=Yes +IndxAK=Yes +IndxPKName=%TABLE%_PK +IndxFKName=%REFR%_FK +IndxAKName=%AKEY%_AK +IndxPreserve=No +IndxThreshold=0 +IndxStats=No +RefrPreserve=No +JidxPreserve=No +RbldMultiFact=Yes +RbldMultiDim=Yes +RbldMultiJidx=Yes +CubePreserve=No +TablStProcPreserve=No +ProcDepPreserve=Yes +TrgrDepPreserve=Yes +CubeScriptPath= +CubeScriptCase=0 +CubeScriptEncoding=ANSI +CubeScriptNacct=No +CubeScriptHeader=No +CubeScriptExt=csv +CubeScriptExt0=txt +CubeScriptExt1= +CubeScriptExt2= +CubeScriptSep=, +CubeScriptDeli=" +EstimationYears=0 +DfltDomnName=D_%.U:VALUE% +DfltColnName=D_%.U:VALUE% +DfltReuse=Yes +DfltDrop=Yes +[ModelOptions] + +[ModelOptions\Physical Objects] +CaseSensitive=No +DisplayName=Yes +EnableTrans=No +UseTerm=No +EnableRequirements=No +EnableFullShortcut=Yes +DefaultDttp= +IgnoreOwner=No +RebuildTrigger=Yes +RefrUnique=No +RefrAutoMigrate=Yes +RefrMigrateReuse=Yes +RefrMigrateDomain=Yes +RefrMigrateCheck=Yes +RefrMigrateRule=Yes +RefrMigrateExtd=No +RefrMigrDefaultLink=No +RefrDfltImpl=D +RefrPrgtColn=No +RefrMigrateToEnd=No +RebuildTriggerDep=No +ColnFKName=%.3:PARENT%_%COLUMN% +ColnFKNameUse=No +DomnCopyDttp=Yes +DomnCopyChck=No +DomnCopyRule=No +DomnCopyMand=No +DomnCopyExtd=No +DomnCopyProf=No +Notation=0 +DomnDefaultMandatory=No +ColnDefaultMandatory=No +TablDefaultOwner= +ViewDefaultOwner= +TrgrDefaultOwnerTabl= +TrgrDefaultOwnerView= +IdxDefaultOwnerTabl= +IdxDefaultOwnerView= +JdxDefaultOwner= +DBPackDefaultOwner= +SeqDefaultOwner= +ProcDefaultOwner= +DBMSTrgrDefaultOwner= +Currency=USD +RefrDeleteConstraint=0 +RefrUpdateConstraint=0 +RefrParentMandatory=No +RefrParentChangeAllow=Yes +RefrCheckOnCommit=No + +[ModelOptions\Physical Objects\NamingOptionsTemplates] + +[ModelOptions\Physical Objects\ClssNamingOptions] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL] + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN] + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX] + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR] + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF] + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT] + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO] + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Connection] + +[ModelOptions\Pdm] + +[ModelOptions\Generate] + +[ModelOptions\Generate\Xsm] +GenRootElement=Yes +GenComplexType=No +GenAttribute=Yes +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=No + +[ModelOptions\Generate\Pdm] +RRMapping=No + +[ModelOptions\Generate\Cdm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No +Notation=2 + +[ModelOptions\Generate\Oom] +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=Yes +ClassPrefix= + +[ModelOptions\Generate\Ldm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No + +[ModelOptions\Default Opts] + +[ModelOptions\Default Opts\TABL] +PhysOpts= + +[ModelOptions\Default Opts\COLN] +PhysOpts= + +[ModelOptions\Default Opts\INDX] +PhysOpts= + +[ModelOptions\Default Opts\AKEY] +PhysOpts= + +[ModelOptions\Default Opts\PKEY] +PhysOpts= + +[ModelOptions\Default Opts\STOR] +PhysOpts= + +[ModelOptions\Default Opts\TSPC] +PhysOpts= + +[ModelOptions\Default Opts\SQNC] +PhysOpts= + +[ModelOptions\Default Opts\DTBS] +PhysOpts= + +[ModelOptions\Default Opts\USER] +PhysOpts= + +[ModelOptions\Default Opts\JIDX] +PhysOpts= + +[ModelOptions\Default Opts\FRMEOBJ<<ResourcePool>>] +PhysOpts= + +[ModelOptions\Default Opts\FRMEOBJ<<WorkloadGroup>>] +PhysOpts= + +[ModelOptions\Default Opts\FRMESOB<<ResourcePool>>] +PhysOpts= + +[ModelOptions\Default Opts\FRMESOB<<WorkloadGroup>>] +PhysOpts= + + +81DF376C-B385-4A6D-B0D7-204E274B7668 +Microsoft SQL Server 2012 +MSSQLSRV2012 +1619681545 +Administrator +1619681545 +Administrator + +11D14009-FEF7-43A3-BC76-BE5B34F11D08 +4BA9F647-DAB1-11D1-9944-006097355D9B + + + + +96352808-C158-48E7-83AF-73F640C3A468 +PhysicalDiagram_1 +PhysicalDiagram_1 +1619681546 +Administrator +1619690628 +Administrator +[DisplayPreferences] + +[DisplayPreferences\PDM] + +[DisplayPreferences\General] +Adjust to text=Yes +Snap Grid=No +Constrain Labels=Yes +Display Grid=No +Show Page Delimiter=Yes +Show Links intersections=Yes +Activate automatic link routing=Yes +Grid size=0 +Graphic unit=2 +Window color=255, 255, 255 +Background image= +Background mode=8 +Watermark image= +Watermark mode=8 +Show watermark on screen=No +Gradient mode=0 +Gradient end color=255, 255, 255 +Show Swimlane=No +SwimlaneVert=Yes +TreeVert=No +CompDark=0 + +[DisplayPreferences\Object] +Show Icon=No +Mode=2 +Trunc Length=40 +Word Length=40 +Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ +Shortcut IntIcon=Yes +Shortcut IntLoct=Yes +Shortcut IntFullPath=No +Shortcut IntLastPackage=Yes +Shortcut ExtIcon=Yes +Shortcut ExtLoct=No +Shortcut ExtFullPath=No +Shortcut ExtLastPackage=Yes +Shortcut ExtIncludeModl=Yes +EObjShowStrn=Yes +ExtendedObject.Comment=No +ExtendedObject.IconPicture=No +ExtendedObject.TextStyle=No +ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +ELnkShowStrn=Yes +ELnkShowName=Yes +ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> +FileObject.Stereotype=No +FileObject.DisplayName=Yes +FileObject.LocationOrName=No +FileObject.IconPicture=No +FileObject.TextStyle=No +FileObject.IconMode=Yes +FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Package.Stereotype=Yes +Package.Comment=No +Package.IconPicture=No +Package.TextStyle=No +Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Display Model Version=Yes +Table.Stereotype=Yes +Table.DisplayName=Yes +Table.OwnerDisplayName=No +Table.Columns=Yes +Table.Columns._Filter="All Columns" PDMCOLNALL +Table.Columns._Columns=Stereotype DataType KeyIndicator +Table.Columns._Limit=-5 +Table.Keys=No +Table.Keys._Columns=Stereotype Indicator +Table.Indexes=No +Table.Indexes._Columns=Stereotype +Table.Triggers=No +Table.Triggers._Columns=Stereotype +Table.Comment=No +Table.IconPicture=No +Table.TextStyle=No +Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +View.Stereotype=Yes +View.DisplayName=Yes +View.OwnerDisplayName=No +View.Columns=Yes +View.Columns._Columns=DisplayName +View.Columns._Limit=-5 +View.TemporaryVTables=Yes +View.Indexes=No +View.Comment=No +View.IconPicture=No +View.TextStyle=No +View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Procedure.Stereotype=No +Procedure.DisplayName=Yes +Procedure.OwnerDisplayName=No +Procedure.Comment=No +Procedure.IconPicture=No +Procedure.TextStyle=No +Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Reference.Cardinality=No +Reference.ImplementationType=No +Reference.ChildRole=Yes +Reference.Stereotype=Yes +Reference.DisplayName=No +Reference.ForeignKeyConstraintName=No +Reference.JoinExpression=No +Reference.Integrity=No +Reference.ParentRole=Yes +Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +ViewReference.ChildRole=Yes +ViewReference.Stereotype=Yes +ViewReference.DisplayName=No +ViewReference.JoinExpression=No +ViewReference.ParentRole=Yes +ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> + +[DisplayPreferences\Symbol] + +[DisplayPreferences\Symbol\FRMEOBJ] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=6000 +Height=2000 +Brush color=255 255 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=64 +Brush gradient color=192 192 192 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 255 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMELNK] +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FILO] +OBJSTRNFont=新宋体,8,N +OBJSTRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LCNMFont=新宋体,8,N +LCNMFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=3600 +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PDMPCKG] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 178 178 178 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\TABL] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +KeysFont=新宋体,8,N +KeysFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +TriggersFont=新宋体,8,N +TriggersFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=178 214 252 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VIEW] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +TemporaryVTablesFont=新宋体,8,N +TemporaryVTablesFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=208 208 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PROC] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4000 +Height=1000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 108 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\REFR] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VREF] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\USRDEPD] +OBJXSTRFont=新宋体,8,N +OBJXSTRFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=2 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\Free Symbol] +Free TextFont=新宋体,8,N +Free TextFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 +(8268, 11693) +((315,354), (433,354)) +1 +7 + + +1619689000 +1619689638 +-1 +((-20495,10617), (-7261,21939)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619689655 +1619689661 +-1 +((-5719,12919), (7513,19443)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1619689821 +1619689823 +-1 +((10779,8496), (24012,20642)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619689847 +1619690246 +-1 +((-20924,-6562), (-6532,9710)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619690248 +1619690516 +-1 +((-3790,-883), (10988,7965)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619690618 +1619690628 +-1 +((-7006,-17983), (7000,-9135)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + + + + + + + + +2417C9DD-37FC-422F-A7D5-5E49D1C5E2C7 +W_Business +W_Business +1619689000 +Administrator +1619689806 +Administrator +商户表 + + + +EAE094A3-4F9B-4A34-B7B5-36CE2CA069FD +Id +Id +1619689015 +Administrator +1619689024 +Administrator +uniqueidentifier +1 + + +D5B117B2-4204-4A8F-B614-935FFCBC1F7B +Code +Code +1619689434 +Administrator +1619689457 +Administrator +商户编号 +varchar(100) +100 +1 + + +6FEE4EA8-49B0-4F2E-95F0-C5295126D8EA +ParentId +ParentId +1619689450 +Administrator +1619689479 +Administrator +上级ID +uniqueidentifier +1 + + +1524845B-187C-4A6D-8862-959DC2467C16 +Name +Name +1619689024 +Administrator +1619689189 +Administrator +昵称 +nvarchar(100) +100 +1 + + +60CF7AD1-F2BC-4B24-90F8-574BE65EDD81 +Phone +Phone +1619689184 +Administrator +1619689204 +Administrator +手机号 +varchar(20) +20 +1 + + +EDA6D2EA-56EC-4145-B770-08D0393CE960 +Status +Status +1619689199 +Administrator +1619689383 +Administrator +状态,0-禁用,1-启用 +int +1 + + +176F8BE8-5551-433B-AA9C-6DC37589F341 +Remark +Remark +1619689673 +Administrator +1619689693 +Administrator +商户简介 +nvarchar(200) +200 +1 + + +C7152CE9-62A3-4BDD-8C58-A519FA71EBFD +Province +Province +1619689695 +Administrator +1619689767 +Administrator +省份 +varchar(50) +50 +1 + + +E33C31D6-D772-4B4A-A785-66C13DE1560D +City +City +1619689745 +Administrator +1619689772 +Administrator +城市 +varchar(50) +50 +1 + + +EC4648B7-3E69-409D-A1E9-462378402C75 +Area +Area +1619689754 +Administrator +1619689780 +Administrator +区县 +varchar(50) +50 +1 + + +54F2A6F1-F286-4FC3-A890-36BA8C809A12 +Address +Address +1619689761 +Administrator +1619689802 +Administrator +详细地址 +nvarchar(200) +200 +1 + + +7C861AC8-B0F4-4DFF-A76C-C18A3D98244C +CreateTime +CreateTime +1619689374 +Administrator +1619689399 +Administrator +注册时间 +datetime +1 + + + + +8955CDA4-BC70-4380-8471-90D07B1679A4 +Key_1 +Key_1 +1619689015 +Administrator +1619689024 +Administrator + + + + + + + + + + + + + +95F00A78-41A3-4708-83EB-6259F1FDE6E9 +W_WasteType +W_WasteType +1619689505 +Administrator +1619689619 +Administrator +垃圾物品分类 + + + +424BBCBB-AB98-4D40-8C4B-9C6E2BAAC8EC +Id +Id +1619689521 +Administrator +1619689530 +Administrator +uniqueidentifier +1 + + +563DED82-6310-48BB-89A0-2BCC0D913DC7 +Code +Code +1619689530 +Administrator +1619689548 +Administrator +物品编码 +varchar(20) +20 +1 + + +5E598A6D-D287-4287-B84A-2ABEAA0FB757 +Name +Name +1619689541 +Administrator +1619689566 +Administrator +物品名称 +nvarchar(100) +100 +1 + + +2A460ABF-C0F2-4417-BC0E-1DE96969D82A +Status +Status +1619689580 +Administrator +1619689618 +Administrator +状态,0-禁用,1-启用 +int +1 + + +3EA6B67A-E4EF-47DC-B3BD-6965087009A1 +CreateTime +CreateTime +1619689559 +Administrator +1619689586 +Administrator +添加时间 +datetime +1 + + + + +E307D2AA-E2D4-4B31-9EB1-E07448FD7768 +Key_1 +Key_1 +1619689521 +Administrator +1619689530 +Administrator + + + + + + + + + + + + + +83C49957-DEB1-4F76-BA84-DF48182A5BAD +W_Account +W_Account +1616655241 +Administrator +1619689828 +Administrator +账户表 + + + +FCD48089-A5E1-4673-AF4F-161A922C02BA +Id +Id +1616655263 +Administrator +1619689815 +Administrator +int +1 +1 + + +346D03BE-04E6-4003-BFA3-21938540E730 +UserName +UserName +1617842364 +Administrator +1619689815 +Administrator +账户 +varchar(50) +50 +1 + + +0EA1F5AF-BDD7-4850-BD58-968B00862BAD +RealName +RealName +1617844672 +Administrator +1619689815 +Administrator +昵称 +nvarchar(100) +100 +1 + + +32FE8F30-F637-48EC-87FA-68E43CAF9809 +Phone +Phone +1617844691 +Administrator +1619689815 +Administrator +手机号 +varchar(50) +50 +1 + + +6EAD6C7C-EA78-4E17-B845-69E05FA43B08 +Password +Password +1617844703 +Administrator +1619689815 +Administrator +密码 +varchar(50) +50 +1 + + +B5268828-D74F-42E1-A686-AF8C55CC99CD +Secret +Secret +1617844835 +Administrator +1619689815 +Administrator +密钥 +varchar(50) +50 +1 + + +498C89F8-A2D2-42C7-B686-501445872CEA +RoleId +RoleId +1617844853 +Administrator +1619689815 +Administrator +角色ID +int +1 + + +F1F92641-E582-4980-86B8-AD903D3EE1E6 +AccountType +AccountType +1617844869 +Administrator +1619689815 +Administrator +账户类型 +int +1 + + +32559E84-B606-4298-9C1F-C8032F4496DF +BusinessId +BusinessId +1617844884 +Administrator +1619689815 +Administrator +客户ID +int +1 + + +1550F6CE-E9C7-4C68-86B6-00286E66931B +Status +Status +1617844900 +Administrator +1619689815 +Administrator +状态,0-禁用,1-启用 +int +1 + + +EF047C05-A619-4069-91E5-80202742C406 +LastVisitIP +LastVisitIP +1617844913 +Administrator +1619689815 +Administrator +最近访问IP +varchar(50) +50 +1 + + +2E81436B-2536-4A3C-A274-EC134EB41DC3 +LastVisitTime +LastVisitTime +1617844935 +Administrator +1619689815 +Administrator +最近访问时间 +datetime + + +5DC1C9D1-1BC4-48D1-BEE3-5FC64BE73278 +CreateTime +CreateTime +1617844962 +Administrator +1619689815 +Administrator +注册时间 +datetime +1 + + + + +99E90195-B1DF-4429-837B-86314217FAD1 +Key_1 +Key_1 +1616655263 +Administrator +1619689815 +Administrator + + + + + + + + + + + + + +D2235153-3A19-45E0-8622-997C5C1EDF22 +W_Device +W_Device +1619689847 +Administrator +1619690576 +Administrator +设备表 + + + +A2E88279-AFB8-49CB-A10D-75C855636FEA +Id +Id +1619689855 +Administrator +1619689861 +Administrator +uniqueidentifier +1 + + +EFECEDDC-FAB5-4166-99FF-020BCF4C55E3 +FacEcode +FacEcode +1619689862 +Administrator +1619689975 +Administrator +设备编号 +varchar(50) +50 +1 + + +B94CCF4A-19F3-4D0C-BBFD-184E1963BA75 +Ecode +Ecode +1619689968 +Administrator +1619689989 +Administrator +设备机器码 +varchar(50) +50 +1 + + +24E5CE1E-F678-4448-BACE-7928351B6941 +Name +Name +1619689983 +Administrator +1619690006 +Administrator +设备名称 +nvarchar(100) +100 +1 + + +BB5F5BC4-A871-425F-8573-933CDEAA5098 +Businessid +Businessid +1619690001 +Administrator +1619690025 +Administrator +所属商户 +uniqueidentifier +1 + + +E18DE320-7060-4CB3-A162-70D78DEE2143 +NetType +NetType +1619690020 +Administrator +1619690100 +Administrator +联网方式,1-4G,2-Wifi +int +1 + + +661D7181-8EE5-48EF-A04B-6F431C6AC354 +Status +Status +1619690082 +Administrator +1619690131 +Administrator +设备状态,0-未激活,1-在线,2-离线,3-已停止 +int +1 + + +FBEBE964-8288-4EDE-980B-A5F225CBC03B +LastHeartTime +LastHeartTime +1619690110 +Administrator +1619690156 +Administrator +最近使用时间 +datetime +1 + + +5F07CD79-4B84-4CFC-977E-67EA31DA63D5 +ICCID +ICCID +1619690149 +Administrator +1619690175 +Administrator +ICCID +varchar(50) +50 +1 + + +47494419-61F5-4603-B46B-EE6EB6187BD1 +IMEI +IMEI +1619690170 +Administrator +1619690193 +Administrator +IMEI +varchar(50) +50 +1 + + +8E337024-A315-47F1-ACF1-4EFC0CF06A28 +Province +Province +1619690186 +Administrator +1619690209 +Administrator +varchar(50) +50 +1 + + +DD1BBE78-B55E-458B-ACAE-93477212E255 +City +City +1619689745 +Administrator +1619690222 +Administrator +城市 +varchar(50) +50 +1 + + +6300F722-C4E8-4CFC-B4F8-998A228D740A +Area +Area +1619689754 +Administrator +1619690222 +Administrator +区县 +varchar(50) +50 +1 + + +DC5077A8-E9EA-421C-8DEC-7BFC6E376D3F +Address +Address +1619689761 +Administrator +1619690222 +Administrator +详细地址 +nvarchar(200) +200 +1 + + +7D506E33-4C24-4966-A23E-464932B94D84 +Remark +Remark +1619690222 +Administrator +1619690242 +Administrator +备注 +nvarchar(200) +200 +1 + + +63CFA8C2-B2CD-4984-AEF6-ABEABE64B54D +Longitude +Longitude +1619690517 +Administrator +1619690548 +Administrator +经度 +varchar(50) +50 +1 + + +EEEE9C88-887D-4110-B4A2-702C2267D567 +Latitude +Latitude +1619690543 +Administrator +1619690574 +Administrator +纬度 +varchar(50) +50 +1 + + +1B090CD6-977C-4900-871F-12FE9A1FB31F +CreateTime +CreateTime +1619689374 +Administrator +1619690222 +Administrator +注册时间 +datetime +1 + + + + +55DDE656-5768-400E-9C78-E53B6E97AA29 +Key_1 +Key_1 +1619689855 +Administrator +1619689861 +Administrator + + + + + + + + + + + + + +53C01988-4AC6-4860-BD0A-6592288B5A95 +W_DeviceRealData +W_DeviceRealData +1619690248 +Administrator +1619691046 +Administrator +设备实时数据 + + + +5B773A68-ABEE-4039-8BA3-B60DE4149F44 +Id +Id +1619690261 +Administrator +1619690280 +Administrator +uniqueidentifier +1 + + +D11BD4F4-95C1-4E0E-BCB1-E39513B4E949 +DeviceId +DeviceId +1619690280 +Administrator +1619690292 +Administrator +设备ID +uniqueidentifier +1 + + +69CB7474-1CF3-4092-AEE7-BBEE2B242A84 +BusinessId +BusinessId +1619690287 +Administrator +1619690372 +Administrator +商户ID +uniqueidentifier +1 + + +0F4BE5EC-E6F1-4EB0-84E0-4546D00C9843 +LastReportTime +LastReportTime +1619690372 +Administrator +1619690407 +Administrator +最近上报时间 +datetime + + +52D76605-9756-4EE0-963B-AE9FDFCCE87B +LastStartTime +LastStartTime +1619690398 +Administrator +1619690438 +Administrator +最近开机时间 +datetime + + +D983C066-50DD-410E-976E-3D451C240A2B +TodayCount +TodayCount +1619690978 +Administrator +1619691026 +Administrator +今日次数 +int +1 + + +3666B978-6B39-459F-B5AB-107076C7D61E +TotalCount +TotalCount +1619691027 +Administrator +1619691044 +Administrator +累计次数 +int +1 + + +CE352F39-4DD1-45E2-88F6-0EFAAB2C8133 +TodayWeigth +TodayWeigth +1619690430 +Administrator +1619690460 +Administrator +今日重量 +decimal(18,2) +18 +2 +1 + + +8814639B-19B7-4600-BFCA-105CF914A2E1 +TotalWeight +TotalWeight +1619690455 +Administrator +1619690477 +Administrator +累计投放重量 +decimal(18,2) +18 +2 +1 + + + + +B079AD1A-1735-449A-899A-707D93543F01 +Key_1 +Key_1 +1619690261 +Administrator +1619690280 +Administrator + + + + + + + + + + + + + +40D7C888-9EC2-4DAB-9EDB-67B0382202E7 +W_Result +W_Result +1619690618 +Administrator +1619690965 +Administrator +投放记录 + + + +DE6E3C24-546A-41C0-87E2-AA733BF1F3B4 +Id +Id +1619690628 +Administrator +1619690638 +Administrator +uniqueidentifier +1 + + +077B62FA-4F62-40AD-BF51-9DAF77067F76 +DeviceId +DeviceId +1619690638 +Administrator +1619690656 +Administrator +设备ID +uniqueidentifier +1 + + +ACC88E34-5937-4D1D-A856-A03068F4A036 +BusinessId +BusinessId +1619690651 +Administrator +1619690676 +Administrator +设备所属商户 +uniqueidentifier +1 + + +32048D6F-D2A7-4C30-A5F2-E230C235A237 +WasteType +WasteType +1619690670 +Administrator +1619690793 +Administrator +物品分类 +varchar(50) +50 +1 + + +A2B218C4-D530-4513-8188-83DD26B7719C +Tare +Tare +1619690818 +Administrator +1619690867 +Administrator +皮重,单位KG +decimal(18,2) +18 +2 +1 + + +33AF4358-257C-4FDE-8409-7D7F98324D94 +GrossWeight +GrossWeight +1619690859 +Administrator +1619690913 +Administrator +毛重 +decimal(18,2) +18 +2 +1 + + +DA09CD95-1452-474D-9DD3-DE78C93C1BF9 +NetWeight +NetWeight +1619690914 +Administrator +1619690937 +Administrator +净重 +decimal(18,2) +18 +2 +1 + + +E984E1AB-BEA7-499F-A5A6-5CB5325FC09E +Registration +Registration +1619690939 +Administrator +1619690964 +Administrator +车牌号 +nvarchar(200) +200 +1 + + +1F9FA8EF-C1FB-4479-AF47-90E8FA430C47 +CreateTime +CreateTime +1619690787 +Administrator +1619690828 +Administrator +上报时间 +datetime +1 + + + + +ACEDCDE3-0940-4C78-AE4C-848894183D1F +Key_1 +Key_1 +1619690628 +Administrator +1619690638 +Administrator + + + + + + + + + + + + + + + +5728945A-1970-4CD5-B0BB-972845F49F99 +PUBLIC +PUBLIC +1619681545 +Administrator +1619681545 +Administrator + + + + +1FC152BA-25A4-4408-A3C4-4E73CB309440 +Microsoft SQL Server 2012 +MSSQLSRV2012 +1619681545 +Administrator +1619681545 +Administrator +file:///%_DBMS%/sqlsv2012.xdb +11D14009-FEF7-43A3-BC76-BE5B34F11D08 +4BA9F647-DAB1-11D1-9944-006097355D9B +1341932191 + + + + + + + + + + \ No newline at end of file diff --git a/Waste.Doc/Waste.pdm b/Waste.Doc/Waste.pdm new file mode 100644 index 0000000..1a80956 --- /dev/null +++ b/Waste.Doc/Waste.pdm @@ -0,0 +1,2789 @@ + + + + + + + + + +CE6E2FA3-BA82-4FC8-BCDD-8C9830EF68CF +Waste +Waste +1619681546 +Administrator +1619690628 +Administrator +[FolderOptions] + +[FolderOptions\Physical Objects] +GenerationCheckModel=Yes +GenerationPath= +GenerationOptions= +GenerationTasks= +GenerationTargets= +GenerationSelections= +RevPkey=Yes +RevFkey=Yes +RevAkey=Yes +RevCheck=Yes +RevIndx=Yes +RevOpts=Yes +RevViewAsTabl=No +RevViewOpts=Yes +RevSystAsTabl=Yes +RevTablPerm=No +RevViewPerm=No +RevProcPerm=No +RevDbpkPerm=No +RevSqncPerm=No +RevAdtPerm=No +RevUserPriv=No +RevUserOpts=No +RevGrpePriv=No +RevRolePriv=No +RevDtbsOpts=Yes +RevDtbsPerm=No +RevViewIndx=Yes +RevJidxOpts=Yes +RevStats=No +RevTspcPerm=No +RevCaseSensitive=No +GenTrgrStdMsg=Yes +GenTrgrMsgTab= +GenTrgrMsgNo= +GenTrgrMsgTxt= +TrgrPreserve=No +TrgrIns=Yes +TrgrUpd=Yes +TrgrDel=Yes +TrgrC2Ins=Yes +TrgrC2Upd=Yes +TrgrC3=Yes +TrgrC4=Yes +TrgrC5=Yes +TrgrC6=Yes +TrgrC7=Yes +TrgrC8=Yes +TrgrC9=Yes +TrgrC10=Yes +TrgrC11=Yes +TrgrC1=Yes +TrgrC12Ins=Yes +TrgrC12Upd=Yes +TrgrC13=Yes +UpdateTableStatistics=Yes +UpdateColumnStatistics=Yes + +[FolderOptions\Physical Objects\Database Generation] +GenScriptName=ybdevice.sql +GenScriptName0=ybdevice.sql +GenScriptName1=crebas.sql +GenScriptName2=crebas +GenScriptName3= +GenScriptName4= +GenScriptName5= +GenScriptName6= +GenScriptName7= +GenScriptName8= +GenScriptName9= +GenPathName=F:\liuzl_ybhdmob\YBDevice\YBDevice.Doc\ +GenSingleFile=Yes +GenODBC=No +GenCheckModel=Yes +GenScriptPrev=Yes +GenArchiveModel=No +GenUseSync=No +GenSyncChoice=0 +GenSyncArch= +GenSyncRmg=0 + +[FolderOptions\Physical Objects\Database Generation\Format] +GenScriptTitle=Yes +GenScriptNamLabl=No +GenScriptQDtbs=No +GenScriptQOwnr=Yes +GenScriptCase=0 +GenScriptEncoding=ANSI +GenScriptNAcct=No +IdentifierDelimiter=" + +[FolderOptions\Physical Objects\Database Generation\Database] +Create=Yes +Open=Yes +Close=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Database\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Tablespace] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Storage] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\User] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\User\Create] +Physical Options=No + +[FolderOptions\Physical Objects\Database Generation\Group] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\Role] +Create=Yes +Drop=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] +Default value=Yes +Check=Yes + +[FolderOptions\Physical Objects\Database Generation\AbstractDataType] +Create=Yes +Header=Yes +Footer=Yes +Drop=Yes +Comment=Yes +Install JAVA class=Yes +Remove JAVA class=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Rule] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Default] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Sequence] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] +Check=Yes +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] +User datatype=Yes +Default value=Yes +Check=Yes +Physical Options=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] +Constraint declaration=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] +Constraint declaration=Yes +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] +Primary key=Yes +Foreign key=Yes +Alternate key=Yes +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\View] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\View\Create] +Force Column list=No +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] +Table=Yes +View=Yes +Proc=Yes +Synonym=Yes +Database Package=Yes +Sequence=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Procedure] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Procedure\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\DatabasePackage] +Create=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\WebService] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Dimension] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synchronization] +GenBackupTabl=1 +GenKeepBackTabl=1 +GenTmpTablDrop=No +GenKeepTablOpts=No + +[FolderOptions\Physical Objects\Test Data] +GenDataPathName= +GenDataSinglefile=Yes +GenDataScriptName=testdata +GenDataScriptName0= +GenDataScriptName1= +GenDataScriptName2= +GenDataScriptName3= +GenDataScriptName4= +GenDataScriptName5= +GenDataScriptName6= +GenDataScriptName7= +GenDataScriptName8= +GenDataScriptName9= +GenDataOdbc=0 +GenDataDelOld=No +GenDataTitle=No +GenDataDefNumRows=20 +GenDataCommit=0 +GenDataPacket=0 +GenDataOwner=No +GenDataProfNumb= +GenDataProfChar= +GenDataProfDate= +GenDataCSVSeparator=, +GenDataFileFormat=CSV +GenDataUseWizard=No + +[FolderOptions\Pdm] +IndxIQName=%COLUMN%_%INDEXTYPE% +IndxPK=Yes +IndxFK=Yes +IndxAK=Yes +IndxPKName=%TABLE%_PK +IndxFKName=%REFR%_FK +IndxAKName=%AKEY%_AK +IndxPreserve=No +IndxThreshold=0 +IndxStats=No +RefrPreserve=No +JidxPreserve=No +RbldMultiFact=Yes +RbldMultiDim=Yes +RbldMultiJidx=Yes +CubePreserve=No +TablStProcPreserve=No +ProcDepPreserve=Yes +TrgrDepPreserve=Yes +CubeScriptPath= +CubeScriptCase=0 +CubeScriptEncoding=ANSI +CubeScriptNacct=No +CubeScriptHeader=No +CubeScriptExt=csv +CubeScriptExt0=txt +CubeScriptExt1= +CubeScriptExt2= +CubeScriptSep=, +CubeScriptDeli=" +EstimationYears=0 +DfltDomnName=D_%.U:VALUE% +DfltColnName=D_%.U:VALUE% +DfltReuse=Yes +DfltDrop=Yes +[ModelOptions] + +[ModelOptions\Physical Objects] +CaseSensitive=No +DisplayName=Yes +EnableTrans=No +UseTerm=No +EnableRequirements=No +EnableFullShortcut=Yes +DefaultDttp= +IgnoreOwner=No +RebuildTrigger=Yes +RefrUnique=No +RefrAutoMigrate=Yes +RefrMigrateReuse=Yes +RefrMigrateDomain=Yes +RefrMigrateCheck=Yes +RefrMigrateRule=Yes +RefrMigrateExtd=No +RefrMigrDefaultLink=No +RefrDfltImpl=D +RefrPrgtColn=No +RefrMigrateToEnd=No +RebuildTriggerDep=No +ColnFKName=%.3:PARENT%_%COLUMN% +ColnFKNameUse=No +DomnCopyDttp=Yes +DomnCopyChck=No +DomnCopyRule=No +DomnCopyMand=No +DomnCopyExtd=No +DomnCopyProf=No +Notation=0 +DomnDefaultMandatory=No +ColnDefaultMandatory=No +TablDefaultOwner= +ViewDefaultOwner= +TrgrDefaultOwnerTabl= +TrgrDefaultOwnerView= +IdxDefaultOwnerTabl= +IdxDefaultOwnerView= +JdxDefaultOwner= +DBPackDefaultOwner= +SeqDefaultOwner= +ProcDefaultOwner= +DBMSTrgrDefaultOwner= +Currency=USD +RefrDeleteConstraint=0 +RefrUpdateConstraint=0 +RefrParentMandatory=No +RefrParentChangeAllow=Yes +RefrCheckOnCommit=No + +[ModelOptions\Physical Objects\NamingOptionsTemplates] + +[ModelOptions\Physical Objects\ClssNamingOptions] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL] + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN] + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX] + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR] + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF] + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] +Template= +MaxLen=128 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT] + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO] + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Connection] + +[ModelOptions\Pdm] + +[ModelOptions\Generate] + +[ModelOptions\Generate\Xsm] +GenRootElement=Yes +GenComplexType=No +GenAttribute=Yes +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=No + +[ModelOptions\Generate\Pdm] +RRMapping=No + +[ModelOptions\Generate\Cdm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No +Notation=2 + +[ModelOptions\Generate\Oom] +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=Yes +ClassPrefix= + +[ModelOptions\Generate\Ldm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No + +[ModelOptions\Default Opts] + +[ModelOptions\Default Opts\TABL] +PhysOpts= + +[ModelOptions\Default Opts\COLN] +PhysOpts= + +[ModelOptions\Default Opts\INDX] +PhysOpts= + +[ModelOptions\Default Opts\AKEY] +PhysOpts= + +[ModelOptions\Default Opts\PKEY] +PhysOpts= + +[ModelOptions\Default Opts\STOR] +PhysOpts= + +[ModelOptions\Default Opts\TSPC] +PhysOpts= + +[ModelOptions\Default Opts\SQNC] +PhysOpts= + +[ModelOptions\Default Opts\DTBS] +PhysOpts= + +[ModelOptions\Default Opts\USER] +PhysOpts= + +[ModelOptions\Default Opts\JIDX] +PhysOpts= + +[ModelOptions\Default Opts\FRMEOBJ<<ResourcePool>>] +PhysOpts= + +[ModelOptions\Default Opts\FRMEOBJ<<WorkloadGroup>>] +PhysOpts= + +[ModelOptions\Default Opts\FRMESOB<<ResourcePool>>] +PhysOpts= + +[ModelOptions\Default Opts\FRMESOB<<WorkloadGroup>>] +PhysOpts= + + +81DF376C-B385-4A6D-B0D7-204E274B7668 +Microsoft SQL Server 2012 +MSSQLSRV2012 +1619681545 +Administrator +1619681545 +Administrator + +11D14009-FEF7-43A3-BC76-BE5B34F11D08 +4BA9F647-DAB1-11D1-9944-006097355D9B + + + + +96352808-C158-48E7-83AF-73F640C3A468 +PhysicalDiagram_1 +PhysicalDiagram_1 +1619681546 +Administrator +1619690628 +Administrator +[DisplayPreferences] + +[DisplayPreferences\PDM] + +[DisplayPreferences\General] +Adjust to text=Yes +Snap Grid=No +Constrain Labels=Yes +Display Grid=No +Show Page Delimiter=Yes +Show Links intersections=Yes +Activate automatic link routing=Yes +Grid size=0 +Graphic unit=2 +Window color=255, 255, 255 +Background image= +Background mode=8 +Watermark image= +Watermark mode=8 +Show watermark on screen=No +Gradient mode=0 +Gradient end color=255, 255, 255 +Show Swimlane=No +SwimlaneVert=Yes +TreeVert=No +CompDark=0 + +[DisplayPreferences\Object] +Show Icon=No +Mode=2 +Trunc Length=40 +Word Length=40 +Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ +Shortcut IntIcon=Yes +Shortcut IntLoct=Yes +Shortcut IntFullPath=No +Shortcut IntLastPackage=Yes +Shortcut ExtIcon=Yes +Shortcut ExtLoct=No +Shortcut ExtFullPath=No +Shortcut ExtLastPackage=Yes +Shortcut ExtIncludeModl=Yes +EObjShowStrn=Yes +ExtendedObject.Comment=No +ExtendedObject.IconPicture=No +ExtendedObject.TextStyle=No +ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +ELnkShowStrn=Yes +ELnkShowName=Yes +ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> +FileObject.Stereotype=No +FileObject.DisplayName=Yes +FileObject.LocationOrName=No +FileObject.IconPicture=No +FileObject.TextStyle=No +FileObject.IconMode=Yes +FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Package.Stereotype=Yes +Package.Comment=No +Package.IconPicture=No +Package.TextStyle=No +Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Display Model Version=Yes +Table.Stereotype=Yes +Table.DisplayName=Yes +Table.OwnerDisplayName=No +Table.Columns=Yes +Table.Columns._Filter="All Columns" PDMCOLNALL +Table.Columns._Columns=Stereotype DataType KeyIndicator +Table.Columns._Limit=-5 +Table.Keys=No +Table.Keys._Columns=Stereotype Indicator +Table.Indexes=No +Table.Indexes._Columns=Stereotype +Table.Triggers=No +Table.Triggers._Columns=Stereotype +Table.Comment=No +Table.IconPicture=No +Table.TextStyle=No +Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +View.Stereotype=Yes +View.DisplayName=Yes +View.OwnerDisplayName=No +View.Columns=Yes +View.Columns._Columns=DisplayName +View.Columns._Limit=-5 +View.TemporaryVTables=Yes +View.Indexes=No +View.Comment=No +View.IconPicture=No +View.TextStyle=No +View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Procedure.Stereotype=No +Procedure.DisplayName=Yes +Procedure.OwnerDisplayName=No +Procedure.Comment=No +Procedure.IconPicture=No +Procedure.TextStyle=No +Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Reference.Cardinality=No +Reference.ImplementationType=No +Reference.ChildRole=Yes +Reference.Stereotype=Yes +Reference.DisplayName=No +Reference.ForeignKeyConstraintName=No +Reference.JoinExpression=No +Reference.Integrity=No +Reference.ParentRole=Yes +Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +ViewReference.ChildRole=Yes +ViewReference.Stereotype=Yes +ViewReference.DisplayName=No +ViewReference.JoinExpression=No +ViewReference.ParentRole=Yes +ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> + +[DisplayPreferences\Symbol] + +[DisplayPreferences\Symbol\FRMEOBJ] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=6000 +Height=2000 +Brush color=255 255 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=64 +Brush gradient color=192 192 192 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 255 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMELNK] +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FILO] +OBJSTRNFont=新宋体,8,N +OBJSTRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LCNMFont=新宋体,8,N +LCNMFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=3600 +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PDMPCKG] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 178 178 178 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\TABL] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +KeysFont=新宋体,8,N +KeysFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +TriggersFont=新宋体,8,N +TriggersFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=178 214 252 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VIEW] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +TemporaryVTablesFont=新宋体,8,N +TemporaryVTablesFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=208 208 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PROC] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4000 +Height=1000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 108 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\REFR] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VREF] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\USRDEPD] +OBJXSTRFont=新宋体,8,N +OBJXSTRFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=2 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\Free Symbol] +Free TextFont=新宋体,8,N +Free TextFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 +(8268, 11693) +((315,354), (433,354)) +1 +7 + + +1619689000 +1619689638 +-1 +((-20495,10617), (-7261,21939)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619689655 +1619689661 +-1 +((-5719,12919), (7513,19443)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1619689821 +1619689823 +-1 +((10779,8496), (24012,20642)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619689847 +1619690246 +-1 +((-20924,-6562), (-6532,9710)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619690248 +1619690516 +-1 +((-3790,-883), (10988,7965)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1619690618 +1619690628 +-1 +((-7006,-17983), (7000,-9135)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + + + + + + + + +2417C9DD-37FC-422F-A7D5-5E49D1C5E2C7 +W_Business +W_Business +1619689000 +Administrator +1619689806 +Administrator +商户表 + + + +EAE094A3-4F9B-4A34-B7B5-36CE2CA069FD +Id +Id +1619689015 +Administrator +1619689024 +Administrator +uniqueidentifier +1 + + +D5B117B2-4204-4A8F-B614-935FFCBC1F7B +Code +Code +1619689434 +Administrator +1619689457 +Administrator +商户编号 +varchar(100) +100 +1 + + +6FEE4EA8-49B0-4F2E-95F0-C5295126D8EA +ParentId +ParentId +1619689450 +Administrator +1619689479 +Administrator +上级ID +uniqueidentifier +1 + + +1524845B-187C-4A6D-8862-959DC2467C16 +Name +Name +1619689024 +Administrator +1619689189 +Administrator +昵称 +nvarchar(100) +100 +1 + + +60CF7AD1-F2BC-4B24-90F8-574BE65EDD81 +Phone +Phone +1619689184 +Administrator +1619689204 +Administrator +手机号 +varchar(20) +20 +1 + + +EDA6D2EA-56EC-4145-B770-08D0393CE960 +Status +Status +1619689199 +Administrator +1619689383 +Administrator +状态,0-禁用,1-启用 +int +1 + + +176F8BE8-5551-433B-AA9C-6DC37589F341 +Remark +Remark +1619689673 +Administrator +1619689693 +Administrator +商户简介 +nvarchar(200) +200 +1 + + +C7152CE9-62A3-4BDD-8C58-A519FA71EBFD +Province +Province +1619689695 +Administrator +1619689767 +Administrator +省份 +varchar(50) +50 +1 + + +E33C31D6-D772-4B4A-A785-66C13DE1560D +City +City +1619689745 +Administrator +1619689772 +Administrator +城市 +varchar(50) +50 +1 + + +EC4648B7-3E69-409D-A1E9-462378402C75 +Area +Area +1619689754 +Administrator +1619689780 +Administrator +区县 +varchar(50) +50 +1 + + +54F2A6F1-F286-4FC3-A890-36BA8C809A12 +Address +Address +1619689761 +Administrator +1619689802 +Administrator +详细地址 +nvarchar(200) +200 +1 + + +7C861AC8-B0F4-4DFF-A76C-C18A3D98244C +CreateTime +CreateTime +1619689374 +Administrator +1619689399 +Administrator +注册时间 +datetime +1 + + + + +8955CDA4-BC70-4380-8471-90D07B1679A4 +Key_1 +Key_1 +1619689015 +Administrator +1619689024 +Administrator + + + + + + + + + + + + + +95F00A78-41A3-4708-83EB-6259F1FDE6E9 +W_WasteType +W_WasteType +1619689505 +Administrator +1619689619 +Administrator +垃圾物品分类 + + + +424BBCBB-AB98-4D40-8C4B-9C6E2BAAC8EC +Id +Id +1619689521 +Administrator +1619689530 +Administrator +uniqueidentifier +1 + + +563DED82-6310-48BB-89A0-2BCC0D913DC7 +Code +Code +1619689530 +Administrator +1619689548 +Administrator +物品编码 +varchar(20) +20 +1 + + +5E598A6D-D287-4287-B84A-2ABEAA0FB757 +Name +Name +1619689541 +Administrator +1619689566 +Administrator +物品名称 +nvarchar(100) +100 +1 + + +2A460ABF-C0F2-4417-BC0E-1DE96969D82A +Status +Status +1619689580 +Administrator +1619689618 +Administrator +状态,0-禁用,1-启用 +int +1 + + +3EA6B67A-E4EF-47DC-B3BD-6965087009A1 +CreateTime +CreateTime +1619689559 +Administrator +1619689586 +Administrator +添加时间 +datetime +1 + + + + +E307D2AA-E2D4-4B31-9EB1-E07448FD7768 +Key_1 +Key_1 +1619689521 +Administrator +1619689530 +Administrator + + + + + + + + + + + + + +83C49957-DEB1-4F76-BA84-DF48182A5BAD +W_Account +W_Account +1616655241 +Administrator +1619689828 +Administrator +账户表 + + + +FCD48089-A5E1-4673-AF4F-161A922C02BA +Id +Id +1616655263 +Administrator +1619689815 +Administrator +int +1 +1 + + +346D03BE-04E6-4003-BFA3-21938540E730 +UserName +UserName +1617842364 +Administrator +1619689815 +Administrator +账户 +varchar(50) +50 +1 + + +0EA1F5AF-BDD7-4850-BD58-968B00862BAD +RealName +RealName +1617844672 +Administrator +1619689815 +Administrator +昵称 +nvarchar(100) +100 +1 + + +32FE8F30-F637-48EC-87FA-68E43CAF9809 +Phone +Phone +1617844691 +Administrator +1619689815 +Administrator +手机号 +varchar(50) +50 +1 + + +6EAD6C7C-EA78-4E17-B845-69E05FA43B08 +Password +Password +1617844703 +Administrator +1619689815 +Administrator +密码 +varchar(50) +50 +1 + + +B5268828-D74F-42E1-A686-AF8C55CC99CD +Secret +Secret +1617844835 +Administrator +1619689815 +Administrator +密钥 +varchar(50) +50 +1 + + +498C89F8-A2D2-42C7-B686-501445872CEA +RoleId +RoleId +1617844853 +Administrator +1619689815 +Administrator +角色ID +int +1 + + +F1F92641-E582-4980-86B8-AD903D3EE1E6 +AccountType +AccountType +1617844869 +Administrator +1619689815 +Administrator +账户类型 +int +1 + + +32559E84-B606-4298-9C1F-C8032F4496DF +BusinessId +BusinessId +1617844884 +Administrator +1619689815 +Administrator +客户ID +int +1 + + +1550F6CE-E9C7-4C68-86B6-00286E66931B +Status +Status +1617844900 +Administrator +1619689815 +Administrator +状态,0-禁用,1-启用 +int +1 + + +EF047C05-A619-4069-91E5-80202742C406 +LastVisitIP +LastVisitIP +1617844913 +Administrator +1619689815 +Administrator +最近访问IP +varchar(50) +50 +1 + + +2E81436B-2536-4A3C-A274-EC134EB41DC3 +LastVisitTime +LastVisitTime +1617844935 +Administrator +1619689815 +Administrator +最近访问时间 +datetime + + +5DC1C9D1-1BC4-48D1-BEE3-5FC64BE73278 +CreateTime +CreateTime +1617844962 +Administrator +1619689815 +Administrator +注册时间 +datetime +1 + + + + +99E90195-B1DF-4429-837B-86314217FAD1 +Key_1 +Key_1 +1616655263 +Administrator +1619689815 +Administrator + + + + + + + + + + + + + +D2235153-3A19-45E0-8622-997C5C1EDF22 +W_Device +W_Device +1619689847 +Administrator +1619690576 +Administrator +设备表 + + + +A2E88279-AFB8-49CB-A10D-75C855636FEA +Id +Id +1619689855 +Administrator +1619689861 +Administrator +uniqueidentifier +1 + + +EFECEDDC-FAB5-4166-99FF-020BCF4C55E3 +FacEcode +FacEcode +1619689862 +Administrator +1619689975 +Administrator +设备编号 +varchar(50) +50 +1 + + +B94CCF4A-19F3-4D0C-BBFD-184E1963BA75 +Ecode +Ecode +1619689968 +Administrator +1619689989 +Administrator +设备机器码 +varchar(50) +50 +1 + + +24E5CE1E-F678-4448-BACE-7928351B6941 +Name +Name +1619689983 +Administrator +1619690006 +Administrator +设备名称 +nvarchar(100) +100 +1 + + +BB5F5BC4-A871-425F-8573-933CDEAA5098 +Businessid +Businessid +1619690001 +Administrator +1619690025 +Administrator +所属商户 +uniqueidentifier +1 + + +E18DE320-7060-4CB3-A162-70D78DEE2143 +NetType +NetType +1619690020 +Administrator +1619690100 +Administrator +联网方式,1-4G,2-Wifi +int +1 + + +661D7181-8EE5-48EF-A04B-6F431C6AC354 +Status +Status +1619690082 +Administrator +1619690131 +Administrator +设备状态,0-未激活,1-在线,2-离线,3-已停止 +int +1 + + +FBEBE964-8288-4EDE-980B-A5F225CBC03B +LastHeartTime +LastHeartTime +1619690110 +Administrator +1619690156 +Administrator +最近使用时间 +datetime +1 + + +5F07CD79-4B84-4CFC-977E-67EA31DA63D5 +ICCID +ICCID +1619690149 +Administrator +1619690175 +Administrator +ICCID +varchar(50) +50 +1 + + +47494419-61F5-4603-B46B-EE6EB6187BD1 +IMEI +IMEI +1619690170 +Administrator +1619690193 +Administrator +IMEI +varchar(50) +50 +1 + + +8E337024-A315-47F1-ACF1-4EFC0CF06A28 +Province +Province +1619690186 +Administrator +1619690209 +Administrator +varchar(50) +50 +1 + + +DD1BBE78-B55E-458B-ACAE-93477212E255 +City +City +1619689745 +Administrator +1619690222 +Administrator +城市 +varchar(50) +50 +1 + + +6300F722-C4E8-4CFC-B4F8-998A228D740A +Area +Area +1619689754 +Administrator +1619690222 +Administrator +区县 +varchar(50) +50 +1 + + +DC5077A8-E9EA-421C-8DEC-7BFC6E376D3F +Address +Address +1619689761 +Administrator +1619690222 +Administrator +详细地址 +nvarchar(200) +200 +1 + + +7D506E33-4C24-4966-A23E-464932B94D84 +Remark +Remark +1619690222 +Administrator +1619690242 +Administrator +备注 +nvarchar(200) +200 +1 + + +63CFA8C2-B2CD-4984-AEF6-ABEABE64B54D +Longitude +Longitude +1619690517 +Administrator +1619690548 +Administrator +经度 +varchar(50) +50 +1 + + +EEEE9C88-887D-4110-B4A2-702C2267D567 +Latitude +Latitude +1619690543 +Administrator +1619690574 +Administrator +纬度 +varchar(50) +50 +1 + + +1B090CD6-977C-4900-871F-12FE9A1FB31F +CreateTime +CreateTime +1619689374 +Administrator +1619690222 +Administrator +注册时间 +datetime +1 + + + + +55DDE656-5768-400E-9C78-E53B6E97AA29 +Key_1 +Key_1 +1619689855 +Administrator +1619689861 +Administrator + + + + + + + + + + + + + +53C01988-4AC6-4860-BD0A-6592288B5A95 +W_DeviceRealData +W_DeviceRealData +1619690248 +Administrator +1619691046 +Administrator +设备实时数据 + + + +5B773A68-ABEE-4039-8BA3-B60DE4149F44 +Id +Id +1619690261 +Administrator +1619690280 +Administrator +uniqueidentifier +1 + + +D11BD4F4-95C1-4E0E-BCB1-E39513B4E949 +DeviceId +DeviceId +1619690280 +Administrator +1619690292 +Administrator +设备ID +uniqueidentifier +1 + + +69CB7474-1CF3-4092-AEE7-BBEE2B242A84 +BusinessId +BusinessId +1619690287 +Administrator +1619690372 +Administrator +商户ID +uniqueidentifier +1 + + +0F4BE5EC-E6F1-4EB0-84E0-4546D00C9843 +LastReportTime +LastReportTime +1619690372 +Administrator +1619690407 +Administrator +最近上报时间 +datetime + + +52D76605-9756-4EE0-963B-AE9FDFCCE87B +LastStartTime +LastStartTime +1619690398 +Administrator +1619690438 +Administrator +最近开机时间 +datetime + + +D983C066-50DD-410E-976E-3D451C240A2B +TodayCount +TodayCount +1619690978 +Administrator +1619691026 +Administrator +今日次数 +int +1 + + +3666B978-6B39-459F-B5AB-107076C7D61E +TotalCount +TotalCount +1619691027 +Administrator +1619691044 +Administrator +累计次数 +int +1 + + +CE352F39-4DD1-45E2-88F6-0EFAAB2C8133 +TodayWeigth +TodayWeigth +1619690430 +Administrator +1619690460 +Administrator +今日重量 +decimal(18,2) +18 +2 +1 + + +8814639B-19B7-4600-BFCA-105CF914A2E1 +TotalWeight +TotalWeight +1619690455 +Administrator +1619690477 +Administrator +累计投放重量 +decimal(18,2) +18 +2 +1 + + + + +B079AD1A-1735-449A-899A-707D93543F01 +Key_1 +Key_1 +1619690261 +Administrator +1619690280 +Administrator + + + + + + + + + + + + + +40D7C888-9EC2-4DAB-9EDB-67B0382202E7 +W_Result +W_Result +1619690618 +Administrator +1619690965 +Administrator +投放记录 + + + +DE6E3C24-546A-41C0-87E2-AA733BF1F3B4 +Id +Id +1619690628 +Administrator +1619690638 +Administrator +uniqueidentifier +1 + + +077B62FA-4F62-40AD-BF51-9DAF77067F76 +DeviceId +DeviceId +1619690638 +Administrator +1619690656 +Administrator +设备ID +uniqueidentifier +1 + + +ACC88E34-5937-4D1D-A856-A03068F4A036 +BusinessId +BusinessId +1619690651 +Administrator +1619690676 +Administrator +设备所属商户 +uniqueidentifier +1 + + +32048D6F-D2A7-4C30-A5F2-E230C235A237 +WasteType +WasteType +1619690670 +Administrator +1619690793 +Administrator +物品分类 +varchar(50) +50 +1 + + +A2B218C4-D530-4513-8188-83DD26B7719C +Tare +Tare +1619690818 +Administrator +1619690867 +Administrator +皮重,单位KG +decimal(18,2) +18 +2 +1 + + +33AF4358-257C-4FDE-8409-7D7F98324D94 +GrossWeight +GrossWeight +1619690859 +Administrator +1619690913 +Administrator +毛重 +decimal(18,2) +18 +2 +1 + + +DA09CD95-1452-474D-9DD3-DE78C93C1BF9 +NetWeight +NetWeight +1619690914 +Administrator +1619690937 +Administrator +净重 +decimal(18,2) +18 +2 +1 + + +E984E1AB-BEA7-499F-A5A6-5CB5325FC09E +Registration +Registration +1619690939 +Administrator +1619690964 +Administrator +车牌号 +nvarchar(200) +200 +1 + + +1F9FA8EF-C1FB-4479-AF47-90E8FA430C47 +CreateTime +CreateTime +1619690787 +Administrator +1619690828 +Administrator +上报时间 +datetime +1 + + + + +ACEDCDE3-0940-4C78-AE4C-848894183D1F +Key_1 +Key_1 +1619690628 +Administrator +1619690638 +Administrator + + + + + + + + + + + + + + + +5728945A-1970-4CD5-B0BB-972845F49F99 +PUBLIC +PUBLIC +1619681545 +Administrator +1619681545 +Administrator + + + + +1FC152BA-25A4-4408-A3C4-4E73CB309440 +Microsoft SQL Server 2012 +MSSQLSRV2012 +1619681545 +Administrator +1619681545 +Administrator +file:///%_DBMS%/sqlsv2012.xdb +11D14009-FEF7-43A3-BC76-BE5B34F11D08 +4BA9F647-DAB1-11D1-9944-006097355D9B +1341932191 + + + + + + + + + + \ No newline at end of file diff --git a/Waste.Domain/Waste.Domain.csproj b/Waste.Domain/Waste.Domain.csproj new file mode 100644 index 0000000..5a5d986 --- /dev/null +++ b/Waste.Domain/Waste.Domain.csproj @@ -0,0 +1,12 @@ + + + + net5.0 + + + + + + + + diff --git a/Waste.Web.Core/Handlers/JwtHandler.cs b/Waste.Web.Core/Handlers/JwtHandler.cs new file mode 100644 index 0000000..c676ea9 --- /dev/null +++ b/Waste.Web.Core/Handlers/JwtHandler.cs @@ -0,0 +1,17 @@ +using Furion.Authorization; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using System.Threading.Tasks; + +namespace Waste.Web.Core +{ + public class JwtHandler : AppAuthorizeHandler + { + public override Task PipelineAsync(AuthorizationHandlerContext context, DefaultHttpContext httpContext) + { + // 这里写您的授权判断逻辑,授权通过返回 true,否则返回 false + + return Task.FromResult(true); + } + } +} \ No newline at end of file diff --git a/Waste.Web.Core/Handlers/RESTfulResultProvider.cs b/Waste.Web.Core/Handlers/RESTfulResultProvider.cs new file mode 100644 index 0000000..55b8ebb --- /dev/null +++ b/Waste.Web.Core/Handlers/RESTfulResultProvider.cs @@ -0,0 +1,128 @@ +using Furion.DataValidation; +using Furion.DependencyInjection; +using Furion.UnifyResult; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.AspNetCore.Mvc.ModelBinding; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Waste.Web.Core +{ + /// + /// RESTFUL 风格返回值 + /// + [SkipScan, UnifyModel(typeof(RESTfulResult<>))] + public class RESTfulResultProvider : IUnifyResultProvider + { + /// + /// 异常返回值 + /// + /// + /// + public IActionResult OnException(ExceptionContext context) + { + //解析异常信息 + var (StatusCode, ErrorCode, Errors) = UnifyContext.GetExceptionMetadata(context); + return new JsonResult(new RESTfulResult + { + StatusCode = StatusCode, + Succeeded = false, + Data = null, + Errors = Errors, + Extras = UnifyContext.Take(), + Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() + }); + } + /// + /// 处理输出状态码 + /// + /// + /// + /// + /// + public async Task OnResponseStatusCodes(HttpContext context, int statusCode, UnifyResultStatusCodesOptions options = null) + { + switch (statusCode) + { + // 处理 401 状态码 + case StatusCodes.Status401Unauthorized: + await context.Response.WriteAsJsonAsync(new RESTfulResult + { + StatusCode = StatusCodes.Status401Unauthorized, + Succeeded = false, + Data = null, + Errors = "401 Unauthorized", + Extras = UnifyContext.Take(), + Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() + }); + break; + // 处理 403 状态码 + case StatusCodes.Status403Forbidden: + await context.Response.WriteAsJsonAsync(new RESTfulResult + { + StatusCode = StatusCodes.Status403Forbidden, + Succeeded = false, + Data = null, + Errors = "403 Forbidden", + Extras = UnifyContext.Take(), + Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() + }); + break; + + default: + break; + } + } + + /// + /// 成功返回值 + /// + /// + /// + public IActionResult OnSucceeded(ActionExecutedContext context) + { + object data; + // 处理内容结果 + if (context.Result is ContentResult contentResult) data = contentResult.Content; + // 处理对象结果 + else if (context.Result is ObjectResult objectResult) data = objectResult.Value; + else if (context.Result is EmptyResult) data = null; + else return null; + + return new JsonResult(new RESTfulResult + { + StatusCode = context.Result is EmptyResult ? StatusCodes.Status204NoContent : StatusCodes.Status200OK, // 处理没有返回值情况 204 + Succeeded = true, + Data = data, + Errors = null, + Extras = UnifyContext.Take(), + Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() + }); + } + /// + /// 验证失败返回值 + /// + /// + /// + /// + /// + /// + public IActionResult OnValidateFailed(ActionExecutingContext context, ModelStateDictionary modelStates, IEnumerable validationResults, string validateFailedMessage) + { + return new JsonResult(new RESTfulResult + { + StatusCode = StatusCodes.Status400BadRequest, + Succeeded = false, + Data = null, + Errors = validationResults, + Extras = UnifyContext.Take(), + Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() + }); + } + } +} diff --git a/Waste.Web.Core/Startup.cs b/Waste.Web.Core/Startup.cs new file mode 100644 index 0000000..ef7b225 --- /dev/null +++ b/Waste.Web.Core/Startup.cs @@ -0,0 +1,46 @@ +using Furion; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Serilog; + +namespace Waste.Web.Core +{ + public class Startup : AppStartup + { + public void ConfigureServices(IServiceCollection services) + { + services.AddJwt(); + + services.AddCorsAccessor(); + + services.AddControllers() + .AddInjectWithUnifyResult(); + } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseHttpsRedirection(); + app.UseSerilogRequestLogging(); //记录请求日志,必须在 UseStaticFiles 和 UseRouting 之间 + app.UseRouting(); + + app.UseCorsAccessor(); + + app.UseAuthentication(); + app.UseAuthorization(); + + app.UseInject(string.Empty); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + } + } +} diff --git a/Waste.Web.Core/Waste.Web.Core.csproj b/Waste.Web.Core/Waste.Web.Core.csproj new file mode 100644 index 0000000..197a20b --- /dev/null +++ b/Waste.Web.Core/Waste.Web.Core.csproj @@ -0,0 +1,16 @@ + + + + net5.0 + + + + Waste.Web.Core.xml + 1701;1702;1591 + + + + + + + diff --git a/Waste.Web.Core/Waste.Web.Core.xml b/Waste.Web.Core/Waste.Web.Core.xml new file mode 100644 index 0000000..f6bdc6b --- /dev/null +++ b/Waste.Web.Core/Waste.Web.Core.xml @@ -0,0 +1,46 @@ + + + + Waste.Web.Core + + + + + RESTFUL 风格返回值 + + + + + 异常返回值 + + + + + + + 处理输出状态码 + + + + + + + + + 成功返回值 + + + + + + + 验证失败返回值 + + + + + + + + + diff --git a/Waste.Web/Program.cs b/Waste.Web/Program.cs new file mode 100644 index 0000000..1dfa097 --- /dev/null +++ b/Waste.Web/Program.cs @@ -0,0 +1,83 @@ +using Furion; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; +using Serilog; +using Serilog.Events; +using System; +using System.Text; + +namespace Waste.Web +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.Inject() + .UseStartup() + .UseSerilogDefault(config => + { + var filepath = App.Configuration["logfile"]; + string date = DateTime.Now.ToString("yyyy-MM-dd");//ʱ䴴ļ + string outputTemplate = "{NewLine}{Level:u3}{Timestamp:yyyy-MM-dd HH:mm:ss.fff}" + + "{NewLine}#Msg#{Message:lj}" + + "{NewLine}#Pro #{Properties:j}" + + "{NewLine}#Exc#{Exception}" + + new string('-', 50);//ģ + ///1.restrictedToMinimumLevelLogEventLevel + config + //.MinimumLevel.Debug() // SinkС¼ + //.MinimumLevel.Override("Microsoft", LogEventLevel.Fatal) + //.Enrich.FromLogContext() + .WriteTo.Console(outputTemplate: outputTemplate) + + //2.1 LogEventLevel.Debug + .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Debug)//ɸѡ + .WriteTo.File($"{filepath}/{date}/{LogEventLevel.Debug}.log", + outputTemplate: outputTemplate, + rollingInterval: RollingInterval.Day,//־ձ棬ļƺԶں׺ + encoding: Encoding.UTF8 // ļַ + ) + ) + + //2.2 LogEventLevel.Error + .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Error)//ɸѡ + .WriteTo.File($"{filepath}/{date}/{LogEventLevel.Error}.log", + outputTemplate: outputTemplate, + rollingInterval: RollingInterval.Day,//־ձ棬ļƺԶں׺ + encoding: Encoding.UTF8 // ļַ + ) + ) + .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Information)//ɸѡ + .WriteTo.File($"{filepath}/{date}/{LogEventLevel.Information}.log", + outputTemplate: outputTemplate, + rollingInterval: RollingInterval.Day,//־ձ棬ļƺԶں׺ + encoding: Encoding.UTF8 // ļַ + ) + ) + .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Fatal)//ɸѡ + .WriteTo.File($"{filepath}/{date}/{LogEventLevel.Fatal}.log", + outputTemplate: outputTemplate, + rollingInterval: RollingInterval.Day,//־ձ棬ļƺԶں׺ + encoding: Encoding.UTF8 // ļַ + ) + ) + .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Warning)//ɸѡ + .WriteTo.File($"{filepath}/{date}/{LogEventLevel.Warning}.log", + outputTemplate: outputTemplate, + rollingInterval: RollingInterval.Day,//־ձ棬ļƺԶں׺ + encoding: Encoding.UTF8 // ļַ + ) + ) + ; + }) + ; + }); + } +} diff --git a/Waste.Web/Properties/launchSettings.json b/Waste.Web/Properties/launchSettings.json new file mode 100644 index 0000000..0e1534e --- /dev/null +++ b/Waste.Web/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:52219", + "sslPort": 44378 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Waste.Web": { + "commandName": "Project", + "dotnetRunMessages": "true", + "launchBrowser": true, + "launchUrl": "", + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/Waste.Web/Startup.cs b/Waste.Web/Startup.cs new file mode 100644 index 0000000..a359de2 --- /dev/null +++ b/Waste.Web/Startup.cs @@ -0,0 +1,28 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Waste.Web +{ + public class Startup + { + public void ConfigureServices(IServiceCollection services) + { + + } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + + } + } +} diff --git a/Waste.Web/Waste.Web.csproj b/Waste.Web/Waste.Web.csproj new file mode 100644 index 0000000..c3bd454 --- /dev/null +++ b/Waste.Web/Waste.Web.csproj @@ -0,0 +1,11 @@ + + + + net5.0 + + + + + + + diff --git a/Waste.Web/appsettings.Development.json b/Waste.Web/appsettings.Development.json new file mode 100644 index 0000000..8983e0f --- /dev/null +++ b/Waste.Web/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/Waste.Web/appsettings.json b/Waste.Web/appsettings.json new file mode 100644 index 0000000..efecd25 --- /dev/null +++ b/Waste.Web/appsettings.json @@ -0,0 +1,25 @@ +{ + "SpecificationDocumentSettings": { + "DocumentTitle": "垃圾分类接口" + }, + "DynamicApiControllerSettings": { + "KeepName": false, + "KeepVerb": false, + "LowercaseRoute": true + }, + "Serilog": { + "MinimumLevel": { + "Default": "Information", + "Override": { + "System": "Warning", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information", + "Microsoft.EntityFrameworkCore": "Information" + } + } + }, + "AppSettings": { + "InjectSpecificationDocument": true + }, + "logfile": "e:/errlog/waste.ybhdmob.com" //日志文件路径 +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/.browserslistrc b/Waste.WebApi/App/Page/.browserslistrc new file mode 100644 index 0000000..8f96043 --- /dev/null +++ b/Waste.WebApi/App/Page/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +last 2 versions +not ie <= 10 diff --git a/Waste.WebApi/App/Page/.editorconfig b/Waste.WebApi/App/Page/.editorconfig new file mode 100644 index 0000000..6f77dff --- /dev/null +++ b/Waste.WebApi/App/Page/.editorconfig @@ -0,0 +1,39 @@ +[*] +charset=utf-8 +end_of_line=lf +insert_final_newline=false +indent_style=space +indent_size=2 + +[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}] +indent_style=space +indent_size=2 + +[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}] +indent_style=space +indent_size=2 + +[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}] +indent_style=space +indent_size=2 + +[*.svg] +indent_style=space +indent_size=2 + +[*.js.map] +indent_style=space +indent_size=2 + +[*.less] +indent_style=space +indent_size=2 + +[*.vue] +indent_style=space +indent_size=2 + +[{.analysis_options,*.yml,*.yaml}] +indent_style=space +indent_size=2 + diff --git a/Waste.WebApi/App/Page/.env b/Waste.WebApi/App/Page/.env new file mode 100644 index 0000000..01efe47 --- /dev/null +++ b/Waste.WebApi/App/Page/.env @@ -0,0 +1,3 @@ +NODE_ENV=production +VUE_APP_PREVIEW=false +VUE_APP_API_BASE_URL=https://localhost:44354/api \ No newline at end of file diff --git a/Waste.WebApi/App/Page/.env.development b/Waste.WebApi/App/Page/.env.development new file mode 100644 index 0000000..2ded5e9 --- /dev/null +++ b/Waste.WebApi/App/Page/.env.development @@ -0,0 +1,3 @@ +NODE_ENV=development +VUE_APP_PREVIEW=true +VUE_APP_API_BASE_URL=https://localhost:44354/api \ No newline at end of file diff --git a/Waste.WebApi/App/Page/.env.preview b/Waste.WebApi/App/Page/.env.preview new file mode 100644 index 0000000..a9e44c8 --- /dev/null +++ b/Waste.WebApi/App/Page/.env.preview @@ -0,0 +1,3 @@ +NODE_ENV=production +VUE_APP_PREVIEW=true +VUE_APP_API_BASE_URL=/api \ No newline at end of file diff --git a/Waste.WebApi/App/Page/.eslintrc.js b/Waste.WebApi/App/Page/.eslintrc.js new file mode 100644 index 0000000..c937f81 --- /dev/null +++ b/Waste.WebApi/App/Page/.eslintrc.js @@ -0,0 +1,75 @@ +module.exports = { + root: false, + env: { + node: true + }, + 'extends': [ + 'plugin:vue/strongly-recommended', + // '@vue/standard' + ], + rules: { + 'no-console': 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'generator-star-spacing': 'off', + 'no-mixed-operators': 0, + 'vue/max-attributes-per-line': [ + 2, + { + 'singleline': 5, + 'multiline': { + 'max': 1, + 'allowFirstLine': false + } + } + ], + 'vue/attribute-hyphenation': 0, + 'vue/html-self-closing': 0, + 'vue/component-name-in-template-casing': 0, + 'vue/html-closing-bracket-spacing': 0, + 'vue/singleline-html-element-content-newline': 0, + 'vue/no-unused-components': 0, + 'vue/multiline-html-element-content-newline': 0, + 'vue/no-use-v-if-with-v-for': 0, + 'vue/html-closing-bracket-newline': 0, + 'vue/no-parsing-error': 0, + 'no-tabs': 0, + 'quotes': [ + 2, + 'single', + { + 'avoidEscape': true, + 'allowTemplateLiterals': true + } + ], + 'semi': [ + 2, + 'never', + { + 'beforeStatementContinuationChars': 'never' + } + ], + 'no-delete-var': 2, + 'prefer-const': [ + 2, + { + 'ignoreReadBeforeAssign': false + } + ], + 'template-curly-spacing': 'off', + 'indent': 'off' + }, + parserOptions: { + parser: 'babel-eslint' + }, + overrides: [ + { + files: [ + '**/__tests__/*.{j,t}s?(x)', + '**/tests/unit/**/*.spec.{j,t}s?(x)' + ], + env: { + jest: true + } + } + ] +} diff --git a/Waste.WebApi/App/Page/.gitattributes b/Waste.WebApi/App/Page/.gitattributes new file mode 100644 index 0000000..e507319 --- /dev/null +++ b/Waste.WebApi/App/Page/.gitattributes @@ -0,0 +1 @@ +public/* linguist-vendored \ No newline at end of file diff --git a/Waste.WebApi/App/Page/.gitignore b/Waste.WebApi/App/Page/.gitignore new file mode 100644 index 0000000..1f8602b --- /dev/null +++ b/Waste.WebApi/App/Page/.gitignore @@ -0,0 +1,22 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* +package-lock.json diff --git a/Waste.WebApi/App/Page/.prettierrc b/Waste.WebApi/App/Page/.prettierrc new file mode 100644 index 0000000..cbe842a --- /dev/null +++ b/Waste.WebApi/App/Page/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 120, + "semi": false, + "singleQuote": true +} diff --git a/Waste.WebApi/App/Page/.travis.yml b/Waste.WebApi/App/Page/.travis.yml new file mode 100644 index 0000000..a08bfcb --- /dev/null +++ b/Waste.WebApi/App/Page/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +node_js: + - 10.15.0 +cache: yarn +script: + - yarn + - yarn run lint --no-fix && yarn run build diff --git a/Waste.WebApi/App/Page/LICENSE b/Waste.WebApi/App/Page/LICENSE new file mode 100644 index 0000000..66eef0b --- /dev/null +++ b/Waste.WebApi/App/Page/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Anan Yang + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Waste.WebApi/App/Page/README.md b/Waste.WebApi/App/Page/README.md new file mode 100644 index 0000000..a26bba5 --- /dev/null +++ b/Waste.WebApi/App/Page/README.md @@ -0,0 +1,101 @@ +English | [简体中文](./README.zh-CN.md) + +

Ant Design Vue Pro

+
+An out-of-box UI solution for enterprise applications as a Vue boilerplate. based on Ant Design of Vue +
+ +
+ +[![License](https://img.shields.io/npm/l/package.json.svg?style=flat)](https://github.com/vueComponent/ant-design-vue-pro/blob/master/LICENSE) +[![Release](https://img.shields.io/github/release/vueComponent/ant-design-vue-pro.svg?style=flat)](https://github.com/vueComponent/ant-design-vue-pro/releases/latest) +[![Travis branch](https://travis-ci.org/vueComponent/ant-design-vue-pro.svg?branch=master)](https://travis-ci.org/vueComponent/ant-design-vue-pro) + +
+ +- Preview: https://preview.pro.antdv.com +- Home Page: https://pro.antdv.com +- Documentation: https://pro.antdv.com/docs/getting-started +- ChangeLog: https://pro.antdv.com/docs/changelog +- FAQ: https://pro.antdv.com/docs/faq + +Overview +---- + +![dashboard](https://static-2.loacg.com/open/static/github/SP1.png) + +### Env and dependencies + +- node +- yarn +- webpack +- eslint +- @vue/cli ~3 +- [ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Ant Design Of Vue +- [vue-cropper](https://github.com/xyxiao001/vue-cropper) - Picture edit +- [@antv/g2](https://antv.alipay.com/zh-cn/index.html) - AntV G2 +- [Viser-vue](https://viserjs.github.io/docs.html#/viser/guide/installation) - Antv/G2 of Vue + +> Note: [Yarn](https://yarnpkg.com/) package management is recommended, the exact same version loaded with the demo site of this project (yarn.lock) . but you can also use npm + + +### Project setup + +- Clone repo +```bash +git clone https://github.com/vueComponent/ant-design-vue-pro.git +cd ant-design-vue-pro +``` + +- Install dependencies +``` +yarn install +``` + +- Compiles and hot-reloads for development +``` +yarn run serve +``` + +- Compiles and minifies for production +``` +yarn run build +``` + +- Lints and fixes files +``` +yarn run lint +``` + + +### Other + +- **IMPORTANT : About Issue feedback !! when opening Issue read [Issue / PR Contributing](https://github.com/vueComponent/ant-design-vue-pro/issues/90)** + +- [Vue-cli3](https://cli.vuejs.org/guide/) used by the project. + +- Disable Eslint (not recommended): remove `eslintConfig` field in `package.json` and `vue.config.js` field `lintOnSave: false` + +- Load on Demand `/src/main.js` L14, in `import './core/lazy_use'`, `import './core/use''`. more [load-on-demand.md](./docs/load-on-demand.md) + +- Customize Theme: [Custom Theme Config (@kokoroli)](https://github.com/kokoroli/antd-awesome/blob/master/docs/Ant_Design_%E6%A0%B7%E5%BC%8F%E8%A6%86%E7%9B%96.md) + +- I18n: [locales (@musnow)](./src/locales/index.js) + +- Production env `mock` is disabled. use `src/mock/index.js` + +- pls use `release` version + +## Browsers support + +Modern browsers and IE10. + +| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | [Opera](http://godban.github.io/browsers-support-badges/)
Opera | +| --- | --- | --- | --- | --- | +| IE10, Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + + +## Contributors + +This project exists thanks to all the people who contribute. + diff --git a/Waste.WebApi/App/Page/README.zh-CN.md b/Waste.WebApi/App/Page/README.zh-CN.md new file mode 100644 index 0000000..dc79edc --- /dev/null +++ b/Waste.WebApi/App/Page/README.zh-CN.md @@ -0,0 +1,109 @@ +[English](./README.md) | 简体中文 + +

Ant Design Vue Pro

+
+An out-of-box UI solution for enterprise applications as a Vue boilerplate. based on Ant Design of Vue +
+ +
+ +[![License](https://img.shields.io/npm/l/package.json.svg?style=flat)](https://github.com/vueComponent/ant-design-vue-pro/blob/master/LICENSE) +[![Release](https://img.shields.io/github/release/vueComponent/ant-design-vue-pro.svg?style=flat)](https://github.com/vueComponent/ant-design-vue-pro/releases/latest) +[![Travis branch](https://travis-ci.org/vueComponent/ant-design-vue-pro.svg?branch=master)](https://travis-ci.org/vueComponent/ant-design-vue-pro) + +
+ +- 预览: https://preview.pro.antdv.com +- 首页: https://pro.antdv.com +- 文档: https://pro.antdv.com/docs/getting-started +- 更新日志: https://pro.antdv.com/docs/changelog +- 常见问题: https://pro.antdv.com/docs/faq + + +Overview +---- + +基于 [Ant Design of Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/) 实现的 [Ant Design Pro](https://pro.ant.design/) + +![dashboard](https://static-2.loacg.com/open/static/github/SP1.png) + +环境和依赖 +---- + +- node +- yarn +- webpack +- eslint +- @vue/cli ~3 +- [ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Ant Design Of Vue 实现 +- [vue-cropper](https://github.com/xyxiao001/vue-cropper) - 头像裁剪组件 +- [@antv/g2](https://antv.alipay.com/zh-cn/index.html) - Alipay AntV 数据可视化图表 +- [Viser-vue](https://viserjs.github.io/docs.html#/viser/guide/installation) - antv/g2 封装实现 + +> 请注意,我们强烈建议本项目使用 [Yarn](https://yarnpkg.com/) 包管理工具,这样可以与本项目演示站所加载完全相同的依赖版本 (yarn.lock) 。由于我们没有对依赖进行强制的版本控制,采用非 yarn 包管理进行引入时,可能由于 Pro 所依赖的库已经升级版本而引入了新版本所导致的问题。作者可能会由于时间问题无法及时排查而导致您采用本项目作为基项目而出现问题。 + + + +项目下载和运行 +---- + +- 拉取项目代码 +```bash +git clone https://github.com/vueComponent/ant-design-vue-pro.git +cd ant-design-vue-pro +``` + +- 安装依赖 +``` +yarn install +``` + +- 开发模式运行 +``` +yarn run serve +``` + +- 编译项目 +``` +yarn run build +``` + +- Lints and fixes files +``` +yarn run lint +``` + + + +其他说明 +---- + +- **关于 Issue 反馈 (重要!重要!重要!) 请在开 *Issue* 前,先阅读该内容:[Issue / PR 编写建议](https://github.com/vueComponent/ant-design-vue-pro/issues/90)** + +- 项目使用的 [vue-cli3](https://cli.vuejs.org/guide/), 请确保你所使用的 vue-cli 是新版,并且已经学习 cli 官方文档使用教程 + +- 关闭 Eslint (不推荐) 移除 `package.json` 中 `eslintConfig` 整个节点代码, `vue.config.js` 下的 `lintOnSave` 值改为 `false` + +- 组件按需加载 `/src/main.js` L14 相关代码 `import './core/lazy_use'` / `import './core/use'` + +- [修改 Ant Design 配色 (@kokoroli)](https://github.com/kokoroli/antd-awesome/blob/master/docs/Ant_Design_%E6%A0%B7%E5%BC%8F%E8%A6%86%E7%9B%96.md) + +- I18n: [多语言支持 (@musnow)](./src/locales/index.js) + +- 生成环境默认不加载 `mock`,更多详情请看 `src/mock/index.js` + +- **用于生产环境,请使用 `release` 版本代码,使用 master 代码出现的任何问题需要你自行解决** + +## 浏览器兼容 + +Modern browsers and IE10. + +| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | [Opera](http://godban.github.io/browsers-support-badges/)
Opera | +| --- | --- | --- | --- | --- | +| IE10, Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + + +## Contributors + +This project exists thanks to all the people who contribute. + diff --git a/Waste.WebApi/App/Page/babel.config.js b/Waste.WebApi/App/Page/babel.config.js new file mode 100644 index 0000000..e80ad97 --- /dev/null +++ b/Waste.WebApi/App/Page/babel.config.js @@ -0,0 +1,28 @@ +const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV) + +const plugins = [] +if (IS_PROD) { + plugins.push('transform-remove-console') +} + +// lazy load ant-design-vue +// if your use import on Demand, Use this code +plugins.push(['import', { + 'libraryName': 'ant-design-vue', + 'libraryDirectory': 'es', + 'style': true // `style: true` 会加载 less 文件 +}]) + +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset', + [ + '@babel/preset-env', + { + 'useBuiltIns': 'entry', + 'corejs': 3 + } + ] + ], + plugins +} diff --git a/Waste.WebApi/App/Page/config/plugin.config.js b/Waste.WebApi/App/Page/config/plugin.config.js new file mode 100644 index 0000000..bb51b98 --- /dev/null +++ b/Waste.WebApi/App/Page/config/plugin.config.js @@ -0,0 +1,49 @@ +const ThemeColorReplacer = require('webpack-theme-color-replacer') +const generate = require('@ant-design/colors/lib/generate').default + +const getAntdSerials = (color) => { + // 淡化(即less的tint) + const lightens = new Array(9).fill().map((t, i) => { + return ThemeColorReplacer.varyColor.lighten(color, i / 10) + }) + const colorPalettes = generate(color) + const rgb = ThemeColorReplacer.varyColor.toNum3(color.replace('#', '')).join(',') + return lightens.concat(colorPalettes).concat(rgb) +} + +const themePluginOption = { + fileName: 'css/theme-colors-[contenthash:8].css', + matchColors: getAntdSerials('#1890ff'), // 主色系列 + // 改变样式选择器,解决样式覆盖问题 + changeSelector (selector) { + switch (selector) { + case '.ant-calendar-today .ant-calendar-date': + return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector + case '.ant-btn:focus,.ant-btn:hover': + return '.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger)' + case '.ant-btn.active,.ant-btn:active': + return '.ant-btn.active:not(.ant-btn-primary):not(.ant-btn-danger),.ant-btn:active:not(.ant-btn-primary):not(.ant-btn-danger)' + case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': + case '.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon': + return ':not(.ant-steps-item-process)' + selector + // fixed https://github.com/vueComponent/ant-design-vue-pro/issues/876 + case '.ant-steps-item-process .ant-steps-item-icon': + return ':not(.ant-steps-item-custom)' + selector + case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': + case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover': + return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover' + case '.ant-menu-horizontal > .ant-menu-item-selected > a': + case '.ant-menu-horizontal>.ant-menu-item-selected>a': + return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item-selected > a' + case '.ant-menu-horizontal > .ant-menu-item > a:hover': + case '.ant-menu-horizontal>.ant-menu-item>a:hover': + return '.ant-menu-horizontal:not(ant-menu-light):not(.ant-menu-dark) > .ant-menu-item > a:hover' + default : + return selector + } + } +} + +const createThemeColorReplacerPlugin = () => new ThemeColorReplacer(themePluginOption) + +module.exports = createThemeColorReplacerPlugin diff --git a/Waste.WebApi/App/Page/config/themePluginConfig.js b/Waste.WebApi/App/Page/config/themePluginConfig.js new file mode 100644 index 0000000..d35ef8b --- /dev/null +++ b/Waste.WebApi/App/Page/config/themePluginConfig.js @@ -0,0 +1,115 @@ +export default { + theme: [ + { + key: 'dark', + fileName: 'dark.css', + theme: 'dark' + }, + { + key: '#F5222D', + fileName: '#F5222D.css', + modifyVars: { + '@primary-color': '#F5222D' + } + }, + { + key: '#FA541C', + fileName: '#FA541C.css', + modifyVars: { + '@primary-color': '#FA541C' + } + }, + { + key: '#FAAD14', + fileName: '#FAAD14.css', + modifyVars: { + '@primary-color': '#FAAD14' + } + }, + { + key: '#13C2C2', + fileName: '#13C2C2.css', + modifyVars: { + '@primary-color': '#13C2C2' + } + }, + { + key: '#52C41A', + fileName: '#52C41A.css', + modifyVars: { + '@primary-color': '#52C41A' + } + }, + { + key: '#2F54EB', + fileName: '#2F54EB.css', + modifyVars: { + '@primary-color': '#2F54EB' + } + }, + { + key: '#722ED1', + fileName: '#722ED1.css', + modifyVars: { + '@primary-color': '#722ED1' + } + }, + + { + key: '#F5222D', + theme: 'dark', + fileName: 'dark-#F5222D.css', + modifyVars: { + '@primary-color': '#F5222D' + } + }, + { + key: '#FA541C', + theme: 'dark', + fileName: 'dark-#FA541C.css', + modifyVars: { + '@primary-color': '#FA541C' + } + }, + { + key: '#FAAD14', + theme: 'dark', + fileName: 'dark-#FAAD14.css', + modifyVars: { + '@primary-color': '#FAAD14' + } + }, + { + key: '#13C2C2', + theme: 'dark', + fileName: 'dark-#13C2C2.css', + modifyVars: { + '@primary-color': '#13C2C2' + } + }, + { + key: '#52C41A', + theme: 'dark', + fileName: 'dark-#52C41A.css', + modifyVars: { + '@primary-color': '#52C41A' + } + }, + { + key: '#2F54EB', + theme: 'dark', + fileName: 'dark-#2F54EB.css', + modifyVars: { + '@primary-color': '#2F54EB' + } + }, + { + key: '#722ED1', + theme: 'dark', + fileName: 'dark-#722ED1.css', + modifyVars: { + '@primary-color': '#722ED1' + } + } + ] +} diff --git a/Waste.WebApi/App/Page/docs/add-page-loading-animate.md b/Waste.WebApi/App/Page/docs/add-page-loading-animate.md new file mode 100644 index 0000000..dfe4919 --- /dev/null +++ b/Waste.WebApi/App/Page/docs/add-page-loading-animate.md @@ -0,0 +1,31 @@ +为首屏增加 加载动画 +==== + + + +## 需求 + +> 为了缓解用户第一次访问时,加载 JS 过大所导致用户等待白屏时间过长导致的用户体验不好,进行的一个优化动效。 + + + +## 实现方案 + +1. 将 动画加载 dom 元素放在 #app 内,Vue 生命周期开始时,会自动清掉 #app 下的所有元素。 +2. 将 动画加载 dom 元素放在 body 下,Vue 生命周期开始时 App.vue (created, mounted) 调用 `@/utils/utll` 下的 removeLoadingAnimate(#id, timeout) 则会移除加载动画 + +最后一步: +​ 将样式插入到 `public/index.html` 文件的 `` 最好写成内联 `` + + + +---- + +目前提供有两个样式,均在 `public/loading` 文件夹内。且 pro 已经默认使用了一套 loading 动画方案,可以直接参考 `public/index.html` + + +## 写在最后 + +目前 pro 有页面 overflow 显示出浏览器滚动条时,页面会抖动一下的问题。 + +欢迎各位提供能解决的方案和实现 demo。如果在条件允许的情况下,建议请直接使用 pro 进行改造,也欢迎直接 PR 到 pro 的仓库 diff --git a/Waste.WebApi/App/Page/docs/webpack-bundle-analyzer.md b/Waste.WebApi/App/Page/docs/webpack-bundle-analyzer.md new file mode 100644 index 0000000..c313767 --- /dev/null +++ b/Waste.WebApi/App/Page/docs/webpack-bundle-analyzer.md @@ -0,0 +1,40 @@ +先增加依赖 + +```bash +// npm +$ npm install --save-dev webpack-bundle-analyzer + +// or yarn +$ yarn add webpack-bundle-analyzer -D +``` + +配置文件 `vue.config.js` 增加 `configureWebpack.plugins` 参数 + +``` +const path = require('path') +const webpack = require('webpack') +const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + +function resolve (dir) { + return path.join(__dirname, dir) +} + +// vue.config.js +module.exports = { + configureWebpack: { + plugins: [ + // Ignore all locale files of moment.js + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + // 依赖大小分析工具 + new BundleAnalyzerPlugin(), + ] + }, + + + ... +} +``` + + + +启动 `cli` 的 `build` 命令进行项目编译,编译完成时,会自动运行一个 http://localhost:8888 的地址,完整显示了支持库依赖 \ No newline at end of file diff --git a/Waste.WebApi/App/Page/jest.config.js b/Waste.WebApi/App/Page/jest.config.js new file mode 100644 index 0000000..29fee32 --- /dev/null +++ b/Waste.WebApi/App/Page/jest.config.js @@ -0,0 +1,23 @@ +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: { + '^@/(.*)$': '/src/$1' + }, + snapshotSerializers: [ + 'jest-serializer-vue' + ], + testMatch: [ + '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' + ], + testURL: 'http://localhost/' +} diff --git a/Waste.WebApi/App/Page/jsconfig.json b/Waste.WebApi/App/Page/jsconfig.json new file mode 100644 index 0000000..1bd0da4 --- /dev/null +++ b/Waste.WebApi/App/Page/jsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6", + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": ["node_modules", "dist"], + "include": ["src/**/*"] +} diff --git a/Waste.WebApi/App/Page/package.json b/Waste.WebApi/App/Page/package.json new file mode 100644 index 0000000..2443d05 --- /dev/null +++ b/Waste.WebApi/App/Page/package.json @@ -0,0 +1,64 @@ +{ + "name": "vue-antd-pro", + "version": "3.0.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "test:unit": "vue-cli-service test:unit", + "lint": "vue-cli-service lint", + "build:preview": "vue-cli-service build --mode preview", + "lint:nofix": "vue-cli-service lint --no-fix" + }, + "dependencies": { + "@ant-design-vue/pro-layout": "^0.3.12", + "@antv/data-set": "^0.10.2", + "ant-design-vue": "^1.6.2", + "axios": "^0.19.0", + "core-js": "^3.1.2", + "enquire.js": "^2.1.6", + "lodash.clonedeep": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.pick": "^4.4.0", + "md5": "^2.2.1", + "mockjs2": "1.0.8", + "moment": "^2.24.0", + "nprogress": "^0.2.0", + "store": "^2.0.12", + "viser-vue": "^2.4.6", + "vue": "^2.6.10", + "vue-clipboard2": "^0.2.1", + "vue-cropper": "0.4.9", + "vue-i18n": "^8.17.4", + "vue-quill-editor": "^3.0.6", + "vue-router": "^3.1.2", + "vue-svg-component-runtime": "^1.0.1", + "vuex": "^3.1.1", + "wangeditor": "^3.1.1" + }, + "devDependencies": { + "@ant-design/colors": "^3.2.1", + "@vue/cli-plugin-babel": "^4.0.4", + "@vue/cli-plugin-eslint": "^4.0.4", + "@vue/cli-plugin-router": "^4.0.4", + "@vue/cli-plugin-unit-jest": "^4.0.4", + "@vue/cli-plugin-vuex": "^4.0.4", + "@vue/cli-service": "^4.0.4", + "@vue/eslint-config-standard": "^4.0.0", + "@vue/test-utils": "^1.0.0-beta.29", + "babel-eslint": "^10.0.1", + "babel-plugin-import": "^1.12.2", + "babel-plugin-transform-remove-console": "^6.9.4", + "eslint": "^5.16.0", + "eslint-plugin-html": "^5.0.0", + "eslint-plugin-vue": "^5.2.3", + "git-revision-webpack-plugin": "^3.0.6", + "less": "^3.0.4", + "less-loader": "^5.0.0", + "opencollective": "^1.0.3", + "opencollective-postinstall": "^2.0.2", + "vue-svg-icon-loader": "^2.1.1", + "vue-template-compiler": "^2.6.10", + "webpack-theme-color-replacer": "^1.3.12" + } +} diff --git a/Waste.WebApi/App/Page/postcss.config.js b/Waste.WebApi/App/Page/postcss.config.js new file mode 100644 index 0000000..961986e --- /dev/null +++ b/Waste.WebApi/App/Page/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/Waste.WebApi/App/Page/public/avatar2.jpg b/Waste.WebApi/App/Page/public/avatar2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9adb2d1b88665631c9dfe7acd8c125ec87eb6fc0 GIT binary patch literal 80189 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Ȇ~_mYlz55^9KP)hUklbsu17%qOvafHCep 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

@kHGHV*M}ud-K*Ym^3Id2q7H(x;jE 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

    9J2$d}*12p3mw+Jf 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
  1. +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 literal 0 HcmV?d00001 diff --git a/Waste.WebApi/App/Page/public/favicon.ico b/Waste.WebApi/App/Page/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7b0f10cf5917f99272e8f1e18cda2b45baea433a GIT binary patch literal 9662 zcmeHNX>3$g6dr$*7!{*YM7E-+Y|)?+6b&YBKis2niQ;dUC>qy5P(Y+qC;=%&78S$_ zMn!fI2#A2}AnmMOW=f~+be(CZo#`ycbIv_?c%8nPHht3=liuddd+*-+-u=#g?s>J@ zuE4*^lWq7r(pECoX1mU2vyH<8yKFP@pnh(7Hrq8r)S)_THrLWSpx2{t0yqoCg7d3e zq5i;ph_-k^wIo0i4{Wja0JxXm3E@j8)leeN=Omshzk34e4=zyss#nHh&{1;+8jci# zXVo;Ye>noNjF+PixcY>BJmdBhPe*L06b8YZ0wnjol9!;(vtMD0ckwys*be1u9!gEk zbPR2|qAbnXJj;?cRmk9yqsvy-8ntBPInqbs25 z`=?aD=u~Qw@d9P2pQ+n72ONt~mkK8$9sSoM_p*s#Uw9ML{V|tUB3ODkXmPT@@T>m&Y7w4f2CiGthC_j>8n`@6+H;w;V9?hq} z1^@P0YEC*fkweqp#o$CNq#ODwXg#}`p|el?$i zy&5n1-HLUOUiPKw?=#G;-Tg7*AI>_^Z#@$JhtMZb(>VCX@Z;U|JapEcS3SZ%!!Tba z#h=@s4C zeVWKFTzvv#*ceN^S2lyW$P$d@%O+vYt13FDt{ecD0bZQ-s z=srD7-v|CIz+A|p?drHEGSGPq8lGM*bxvYmhyPqg`&M8TU1YzpP^~;`q*YzVqis-* z`sFOZJgAUzx&FsrepY-?&DJ;7nx^(?#E~K^^M&ZSaRTvxTIYfWwqUp2X{P*h z9LCQn5Dz!0B~8}X{zXm5^2_vRpcluy8=tl8ce>+8`H2n%%eD&so;s8TaqmN7+adQ} z%Ravcc0(RiyZa-?qV24AV11k+y5ryV;eg;L{yPiufO4vgakGz5drnijl!&(D9_&7q zcjm%w)9s#gD1Quuy~h*;Q#&@GBOA%4>w2oZC(`H^e?xmOi$2HXc@>L?LCe{VymGE| zNWZ7`!j|0m{EYaAL*1TFh5wmtnDX~%Q#tM>PeE7klIFDOS>vzUI~(^(If_{(_}K<< zKfyMT%Hz!aV2A%KbYMQ(c)SQY0}crLjtk8u^TiiaPC>bfm3%F`-l;g?S$QwSJ6kj3 z!I4B)2Q(fl!hP?PK>K2DW-&tz@UO}@M-3o;vMIDJ^bOG_k6`M)pVzw3jQLIJ=R+|E z%fp(`U0LW=@}PZZ#oC9t#*~ws!AyU!&yBf+9rqL=$4Mb#J#!3u60H0R0RDH@woJ} ztFQ(!Tj7^IaP7_yFmD)v@|`rG_=*2zU)+fNe@np^{jL7_bts)TlxuAYn8B`v_p$Z{ zC|~^`*pY^|3hk5ByqfLrvR%2B+{XT4AY`C)XE^wGysxTfgiG+pJA<58P!40>l%MHp zt>&1fpJSVlcZ9IUMEg9ZA=frc`5W#>t2RD^TkJR_uvScULB(rhOfp`lQ$k~U{PH!$ z=SYKtCpVwjFd#WZy5FICefjDKkd0EqVOdZh9zNEZ05L;+Mv+ z{YEq9pk?!~XInPb7FBFQIS@vYh4DfpFE zQO2<*g?S*=r|8=b9l5sGKItCOfjG?bUBYNM%;J&It7-1jnpzJA&$;&xgFGGN>7Wh_ S>cIa@2lW2|4W9oS4*Uz_L#grr literal 0 HcmV?d00001 diff --git a/Waste.WebApi/App/Page/public/index.html b/Waste.WebApi/App/Page/public/index.html new file mode 100644 index 0000000..20c8d1d --- /dev/null +++ b/Waste.WebApi/App/Page/public/index.html @@ -0,0 +1,35 @@ + + + + + + + + + 小白家用秤管理平台 + + + <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %> + + <% } %> + + + +
    +
    +
    + +
    +
    努力加载中....
    +
    +
    + + <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %> + + <% } %> + + + diff --git a/Waste.WebApi/App/Page/public/logo.png b/Waste.WebApi/App/Page/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..574b01699ef6286f6224ec00465646c196e7066f GIT binary patch literal 14523 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 literal 0 HcmV?d00001 diff --git a/Waste.WebApi/App/Page/src/App.vue b/Waste.WebApi/App/Page/src/App.vue new file mode 100644 index 0000000..f54c21a --- /dev/null +++ b/Waste.WebApi/App/Page/src/App.vue @@ -0,0 +1,83 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/api/login.js b/Waste.WebApi/App/Page/src/api/login.js new file mode 100644 index 0000000..e9ac08c --- /dev/null +++ b/Waste.WebApi/App/Page/src/api/login.js @@ -0,0 +1,37 @@ +import request from '@/utils/request' +import tools from '@/utils/tool' +const userApi = { + Login: '/login/CheckLogin', // 验证登陆 + Logout: '/user/logout', // 退出登录 + UserInfo: '/user/UserInfo', + UserMenu: '/user/nav' +} + +/** + * login func + * parameter: { + * username: '', + * password: '', + * remember_me: true, + * captcha: '12345' + * } + * @param parameter + * @returns {*} + */ +// 登录 +export function login (parameter) { + return request.post(userApi.Login, parameter) + // return request({ + // url: userApi.Login, + // method: 'post', + // data: parameter + // }) +} +// 退出登录 +export function logout () { + return request.post(userApi.Logout) +} +//菜单 +export function UserInfo () { + return request.get(userApi.UserInfo) +} diff --git a/Waste.WebApi/App/Page/src/api/manage.js b/Waste.WebApi/App/Page/src/api/manage.js new file mode 100644 index 0000000..46a4a41 --- /dev/null +++ b/Waste.WebApi/App/Page/src/api/manage.js @@ -0,0 +1,70 @@ +import request from '@/utils/request' + +const api = { + user: '/user', + role: '/role', + service: '/service', + permission: '/permission', + permissionNoPager: '/permission/no-pager', + orgTree: '/org/tree' +} + +export default api + +export function getUserList (parameter) { + return request({ + url: api.user, + method: 'get', + params: parameter + }) +} + +export function getRoleList (parameter) { + return request({ + url: api.role, + method: 'get', + params: parameter + }) +} + +export function getServiceList (parameter) { + return request({ + url: api.service, + method: 'get', + params: parameter + }) +} + +export function getPermissions (parameter) { + return request({ + url: api.permissionNoPager, + method: 'get', + params: parameter + }) +} + +export function getOrgTree (parameter) { + return request({ + url: api.orgTree, + method: 'get', + params: parameter + }) +} + +// id == 0 add post +// id != 0 update put +export function saveService (parameter) { + return request({ + url: api.service, + method: parameter.id === 0 ? 'post' : 'put', + data: parameter + }) +} + +export function saveSub (sub) { + return request({ + url: '/sub', + method: sub.id === 0 ? 'post' : 'put', + data: sub + }) +} diff --git a/Waste.WebApi/App/Page/src/assets/background.svg b/Waste.WebApi/App/Page/src/assets/background.svg new file mode 100644 index 0000000..89c2597 --- /dev/null +++ b/Waste.WebApi/App/Page/src/assets/background.svg @@ -0,0 +1,69 @@ + + + + Group 21 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/assets/css/common.css b/Waste.WebApi/App/Page/src/assets/css/common.css new file mode 100644 index 0000000..bdcb03d --- /dev/null +++ b/Waste.WebApi/App/Page/src/assets/css/common.css @@ -0,0 +1,257 @@ +* { + margin: 0; + padding: 0; + outline: 0; + vertical-align: baseline; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-tap-highlight-color: transparent; +} + +html, +body { + color: #000; + font: 14px/22px Verdana, Arial, sans-serif, "Times New Roman", 思源宋体; + width: 100%; + /* overflow: hidden; */ +} + +input, +select, +button { + font-size: 100%; + outline: 0; + vertical-align: middle; + -webkit-appearance: none; +} + +button { + border: 0; + background-clip: padding-box; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +ol, +ul, +li { + list-style: none; +} + +img { + border: none; + vertical-align: baseline; +} +.f-12 { + font-size: 12px !important; +} + +.f-14 { + font-size: 14px !important; +} + +.f-16 { + font-size: 16px !important; +} + +.f-18 { + font-size: 18px !important; +} + +.f-20 { + font-size: 20px !important; +} + +.c-333 { + color: #333 !important +} + +.c-666 { + color: #666 +} + +.c-999 { + color: #999 +} + +.c-blue { + color: #388dfe !important +} + +.c-red { + color: #eb303f !important; +} + +.c-success { + color: #5eb95e !important; +} + +.c-fff { + color: #fff !important; +} + +.c-yellow { + color: rgb(227, 183, 88) !important; +} + +.bg-fff { + background: #fff !important +} + +.bg-blue { + background: #388dfe !important +} + +.border-bottom { + border-bottom: 1px solid #dfdfdf; +} + +.border-top { + border-top: 1px solid #dfdfdf; +} + +.border-right { + border-right: 1px solid #dfdfdf; +} + +.border-left { + border-left: 1px solid #dfdfdf; +} + +.mb-0 { + margin-bottom: 0; +} + +.mt-0 { + margin-top: 0; +} +.mr-0 { + margin-right: 0; +} +.ml-0 { + margin-left: 0; +} +.pt-0 { + padding-top: 0; +} +.pb-0 { + padding-bottom: 0; +} +.pr-0 { + padding-right: 0; +} + +.pl-0 { + padding-left: 0; +} + +.mt-15 { + margin-top: 15px; +} + +.mb-15 { + margin-bottom: 15px; +} + +.ml-15 { + margin-left: 15px; +} + +.mr-15 { + margin-right: 15px; +} + +.mt-25 { + margin-top: 25px; +} + +.mb-25 { + margin-bottom: 25px; +} + +.ml-25 { + margin-left: 25px; +} + +.mr-25 { + margin-right: 25px; +} + +.mt-50 { + margin-top: 50px!important +} + +.mb-50 { + margin-bottom: 50px!important +} + +.ml-50 { + margin-left: 50px; +} + +.mr-50 { + margin-right: 50px; +} +textarea, +input { + word-wrap: break-word; + word-break: break-all; +} + +span, +p, +div { + word-wrap: break-word; +} + +.clearfix { + content: ''; + display: block; + clear: both; +} + +.text-l { + text-align: left !important +} + +.text-r { + text-align: right !important +} + +.text-c { + text-align: center !important +} + +.pos-r { + position: relative +} + +.pos-a { + position: absolute +} + +.pos-f { + position: fixed +} + +.l, +.f-l { + float: left !important; + _display: inline +} + +.r, +.f-r { + float: right !important; + _display: inline +} +.ant-badge-status-error { + background-color: #f5222d; +} +.textClass{ + width: 100%; + text-align: center; +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/assets/icons/bx-analyse.svg b/Waste.WebApi/App/Page/src/assets/icons/bx-analyse.svg new file mode 100644 index 0000000..b02a8d6 --- /dev/null +++ b/Waste.WebApi/App/Page/src/assets/icons/bx-analyse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/assets/img/0shwnvo1.ubg.jpg b/Waste.WebApi/App/Page/src/assets/img/0shwnvo1.ubg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6c062cd1702786efdbf62de2d5d460e1ca73459 GIT binary patch literal 23802 zcmbq*2_Teh+xAFNTBK-aDwQ-zlBh5(PZS|rQ^=h>Z6+kynW+?|kYq_Rm87yvstGaf zvZP2;mKoW`zB9JjxBnWW<$1sFeZT+zevj!H<{oq3_jNAEd7Q_2iR;C!i1}tF2TTw$ zG6;kW_zxj&MC?V#PMaqA24B;`_l%h{W=x+xLqT3%Zsr_?Idf(!%$_}W-h%ma=PAvb zJ$wG5`AQ3wRa8{wC@x;INO{QuWff(~ACZv-@0mVh){Ggml;_T#tNj1`C4P@knmG+I z4IwMD8Zk{tMpj8iT#7(~^PC|w`GuJJl9>k1QBHp5EQQ(N0MdNKG#OdhY13sTXAO=H z0k0#bE6rH2N@us+LTeZK)n3Y5F2_8YslF%YgNn`fku|y}E?k+VuxRm;rOVc?(^#*$ zVXNLYeS_^g_Wrfc#B~1wGg~|R!CQoWw#h{Y%!Nw>oVkK zqS^rYKN-BQnB#<}%)&E5_fx%J#GhG%@L4+-x5K6*DvpP0GgI9F=g-pg6BUiK7DU8% z%jM?z*B=k9eoXwj!8T6wo%i9hKO(o*eY4)Dl34unBmcktF9<?^7Cnv-+A4;#7E{>< zItGMHNAn|sy=A!fJxRlf!RdX__57;fO(D01-al|GDs0a1M5{Lzw;R6>(ZV8MDk}&s zeMB)u@Rq7qgux;!{QV@M7S^$fy))@0xK-nw*OaYy&G=tDWDEw(G*Rym3cN4jD@Bbg znB3W!Yu>^hKNhvoQlp<$%|XR?2aL+Q1L{ln=@LKR;BsbL(l}PHwkirK91>N{<9Gqq{&k?xU+5?B4gKuqF^Q zv1$2SW)Pp2KgP+#Py<35kF0+jF>Ej`LKnJT-=3FaK*(q`ZyGLc!@b4_Qqdk(W^M9j z!xYKCg34%o_i_;(+(OHy+#vyc=y3#U%(X#b{o_mj@gczX8V#_fg;p1ZYgWOpgz3NU z;BbU<948X`mX~Z*H2B}N4kxYz;AVze87kl|=U1seC@Ohkt^ZzGXki4G0da0_t>6%vW15k|K z#8OMU*ZMmt3GvO^LG&tLEz`uaDtzC{h?h2rhv7%(>pe5*j!oQPXYB!}qM@vA%<9C- zGRw+?>MBhEozpSxyO$ChU*$jDoW0Q!Ik1RI-8qs-%z&E7g3|8G&<)iAR!jWyh0L4$ zw=Yk;gb#PIiRX<_S5;B(T(4;~k>mQEpqI}wj87iBO zv**On$oPX|#3z{FMAs@3^+YAG64(K_AYpTKW8e;2yFIS)#kdfgJNE{!d|NyzYR=)s z{Y^#8;q@w9LC+rABJq)s<_`!0Xjl>vW@?2F6exn)EbW&nqvH3eS1>Z6T&X#A4@KLAtRE zZ}1+xA&VSUj&4}z@a8iVb__KBj155M4(1U{sx|4BB>t7kh&C}I zCVJ`~?iKALv~+Xb*=)2Tiq(7#w-tQ_>T{x^$#Z=&KqPBOJm*>8(mxODu|wzwiV^LySsLu&m(4d2j!BZOCK5# z8`G2{HtbV&c}d4~Q`vKzQBng|AZ^gXsb5YCyoGrnd@iH_&+Etkjjy4Uh-UFGX4q`t zW7^fWr%g-eJMsz90vR#FRg93ndgZyz3rt&`ffllX-Xy@c%CpcyL*T=Ne1*8x8coRc97z+E)Z%-QK4JvUQGgmVS1!PgYcstS z1&k3fLY>BYBSzc@&#vI!;$8Zo3B`9}1gs@ehU<4E2xW(1MkW4Q(8DNr=4R~okLRP1 zvnu&i2JXhWfW!^4AH6S<3fW>r7}^1TNz&%Y9}^?!VPb>=G^h%^>B|m=NTAQbbUv+t z3X6Aa4qg>rHjZOvI6e*v+xBE6nCywy%JkP@$)$@Cy9QwX2))geCHEZs&^Y-6bf;k7 zCW_lQzOD&9UMV@-T3+VQvjwMp+zmf5w*Z{3qDUEk+>IdpVXjDptM$484k*mTq=mMv zFxI}$&T?p8*fg$Fw>GqEAc*Vk`W}AigZ_QGR)eZmqRTWqyA3Xe*SiVcO$vUgb%#zqE0`EFyuKtxn)>~-pMypi�V_jdsK|L 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 C=QmgY literal 0 HcmV?d00001 diff --git a/Waste.WebApi/App/Page/src/assets/img/1.png b/Waste.WebApi/App/Page/src/assets/img/1.png new file mode 100644 index 0000000000000000000000000000000000000000..eb5e6860b4caf2a3a052619e8a0b28d0966f2087 GIT binary patch literal 27967 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


    t*aL#2#2ZmE* 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 z%0D>2(M_CwP38I7B0wEKnZO_zA({Z`DiL2FqT{|P0nI9dD^uSc=J*HcsG{3$1~oak z`fqYuA0FrrvYCkg4`BP`tD9?0J<}Q9@dSdCFqzP17-uR(SUGPm!RQioLf_{ogK%z3 z)%G^`suW(JuU!d-ZqW0HyAU+{Z5foc5r8KElSQ%q7lvK}ka8pj;J+>&u6dV3nj(fi zp@*W#emek;*Lv99*E~@xclgjb2}ckMhLQ{<@lZuZc^_G_Nd^l#OK|;B)}p+=(et_6J}-2B zF-rLqe{M-@TtqP?^}o8Negqy{9~4rTgW>f@mAE7(plVWex!XR3)*L3L&<<3$){e_( zw+AcB*AWaI%Ov5r5o*Mr|8+4=?X*oq^i1M>A_A4E3FZi{u-Fk*ewmYA#6*Yg*U0yq zhHh7+l$iSC%?cV*bS{;<18KkNmC~%~#X$33!^jPY2VI_+TqFm$i}aB*jHcx}0T6r= zF6x2LqL#gaaSfjyDB1x)i(A3@;lydJgvX$O_jT;Za4*p;#tGnN5n(AuqqPEu{<pc>@SJ~cqTB#wa3r5_-%#Fn{t*O4J-?u31KsWaKX zd;IuwN+F2ZX2G#10L#8~@_Ap5iWx~b^!M(*!OS3>&ekjXqnuy%QZL)u@j3YQa;g0_ z9wey@y4RkpiVdK`rKfHHzx2-Cp~)H7_y9jjpSV`i98%rMaai+2o%SgU z@8YlWUOdX|DnWv~GUo{mR4Z6sCLs^H$!owy8wU$0N<_XOL#@MMHCOf z!wCp`Ic@^Wmy zEG~2am2oXI*)N+l(3lB-IRVFp6HLV4Nt>83$Nny+uF_vUsxtn!FU?fIc`53p|EgQo zGY~0`VL6prnbnoGj4eDm#ObsiRg=dUzV?G4s%KT?oAD}S{p5;>K!xp`uui%IkLyZ4 zg(?3Sg_ONYx!2aeQQzG!fns`!y04c?L{rYkM$OA|O8g z0+(+k_8>rm$!{0dsa(Pf$n^%-01_wbiYeS%0DZ>zWjK$l*-;IO$ivjYdy0n_CKFQV`|UM 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 literal 0 HcmV?d00001 diff --git a/Waste.WebApi/App/Page/src/assets/img/logo2.png b/Waste.WebApi/App/Page/src/assets/img/logo2.png new file mode 100644 index 0000000000000000000000000000000000000000..bd82fe1fe0bba0ae1f6eba7097dd54f2495a46ff GIT binary patch literal 7837 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 H<&611FGPfZ literal 0 HcmV?d00001 diff --git a/Waste.WebApi/App/Page/src/assets/logo.svg b/Waste.WebApi/App/Page/src/assets/logo.svg new file mode 100644 index 0000000..07ac542 --- /dev/null +++ b/Waste.WebApi/App/Page/src/assets/logo.svg @@ -0,0 +1,29 @@ + + + + Vue + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/ArticleListContent/ArticleListContent.vue b/Waste.WebApi/App/Page/src/components/ArticleListContent/ArticleListContent.vue new file mode 100644 index 0000000..8f39978 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/ArticleListContent/ArticleListContent.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/ArticleListContent/index.js b/Waste.WebApi/App/Page/src/components/ArticleListContent/index.js new file mode 100644 index 0000000..37d35c7 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/ArticleListContent/index.js @@ -0,0 +1,3 @@ +import ArticleListContent from './ArticleListContent' + +export default ArticleListContent diff --git a/Waste.WebApi/App/Page/src/components/AvatarList/Item.jsx b/Waste.WebApi/App/Page/src/components/AvatarList/Item.jsx new file mode 100644 index 0000000..c5a69b2 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/AvatarList/Item.jsx @@ -0,0 +1,24 @@ +import PropTypes from 'ant-design-vue/es/_util/vue-types' +import { Tooltip, Avatar } from 'ant-design-vue' +import { getSlotOptions } from 'ant-design-vue/lib/_util/props-util' +import { warning } from 'ant-design-vue/lib/vc-util/warning' + +export const AvatarListItemProps = { + tips: PropTypes.string.def(null), + src: PropTypes.string.def('') +} + +const Item = { + __ANT_AVATAR_CHILDREN: true, + name: 'AvatarListItem', + props: AvatarListItemProps, + created () { + warning(getSlotOptions(this.$parent).__ANT_AVATAR_LIST, 'AvatarListItem must be a subcomponent of AvatarList') + }, + render () { + const AvatarDom = + return this.tips && {AvatarDom} || + } +} + +export default Item diff --git a/Waste.WebApi/App/Page/src/components/AvatarList/List.jsx b/Waste.WebApi/App/Page/src/components/AvatarList/List.jsx new file mode 100644 index 0000000..74ad5ff --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/AvatarList/List.jsx @@ -0,0 +1,72 @@ +import './index.less' + +import PropTypes from 'ant-design-vue/es/_util/vue-types' +import Avatar from 'ant-design-vue/es/avatar' +import Item from './Item.jsx' +import { filterEmpty } from '@/components/_util/util' + +/** + * size: `number`、 `large`、`small`、`default` 默认值: default + * maxLength: number + * excessItemsStyle: CSSProperties + */ +const AvatarListProps = { + prefixCls: PropTypes.string.def('ant-pro-avatar-list'), + size: { + validator: val => { + return typeof val === 'number' || ['small', 'large', 'default'].includes(val) + }, + default: 'default' + }, + maxLength: PropTypes.number.def(0), + excessItemsStyle: PropTypes.object.def({ + color: '#f56a00', + backgroundColor: '#fde3cf' + }) +} + +const AvatarList = { + __ANT_AVATAR_LIST: true, + Item, + name: 'AvatarList', + props: AvatarListProps, + render (h) { + const { prefixCls, size } = this.$props + const className = { + [`${prefixCls}`]: true, + [`${size}`]: true + } + const items = filterEmpty(this.$slots.default) + const itemsDom = items && items.length ?
      {this.getItems(items)}
    : null + + return ( +
    + {itemsDom} +
    + ) + }, + methods: { + getItems (items) { + const className = { + [`${this.prefixCls}-item`]: true, + [`${this.size}`]: true + } + const totalSize = items.length + + if (this.maxLength > 0) { + items = items.slice(0, this.maxLength) + items.push(({`+${totalSize - this.maxLength}`})) + } + return items.map((item) => ( +
  2. {item}
  3. + )) + } + } +} + +AvatarList.install = function (Vue) { + Vue.component(AvatarList.name, AvatarList) + Vue.component(AvatarList.Item.name, AvatarList.Item) +} + +export default AvatarList diff --git a/Waste.WebApi/App/Page/src/components/AvatarList/index.js b/Waste.WebApi/App/Page/src/components/AvatarList/index.js new file mode 100644 index 0000000..b047432 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/AvatarList/index.js @@ -0,0 +1,9 @@ +import AvatarList from './List' +import Item from './Item' + +export { + AvatarList, + Item as AvatarListItem +} + +export default AvatarList diff --git a/Waste.WebApi/App/Page/src/components/AvatarList/index.less b/Waste.WebApi/App/Page/src/components/AvatarList/index.less new file mode 100644 index 0000000..9ce073f --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/AvatarList/index.less @@ -0,0 +1,60 @@ +@import "../index"; + +@avatar-list-prefix-cls: ~"@{ant-pro-prefix}-avatar-list"; +@avatar-list-item-prefix-cls: ~"@{ant-pro-prefix}-avatar-list-item"; + +.@{avatar-list-prefix-cls} { + display: inline-block; + + ul { + list-style: none; + display: inline-block; + padding: 0; + margin: 0 0 0 8px; + font-size: 0; + } +} + +.@{avatar-list-item-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + margin-left: -8px; + width: @avatar-size-base; + height: @avatar-size-base; + + :global { + .ant-avatar { + border: 1px solid #fff; + cursor: pointer; + } + } + + &.large { + width: @avatar-size-lg; + height: @avatar-size-lg; + } + + &.small { + width: @avatar-size-sm; + height: @avatar-size-sm; + } + + &.mini { + width: 20px; + height: 20px; + + :global { + .ant-avatar { + width: 20px; + height: 20px; + line-height: 20px; + + .ant-avatar-string { + font-size: 12px; + line-height: 18px; + } + } + } + } +} + diff --git a/Waste.WebApi/App/Page/src/components/AvatarList/index.md b/Waste.WebApi/App/Page/src/components/AvatarList/index.md new file mode 100644 index 0000000..75e022c --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/AvatarList/index.md @@ -0,0 +1,64 @@ +# AvatarList 用户头像列表 + + +一组用户头像,常用在项目/团队成员列表。可通过设置 `size` 属性来指定头像大小。 + + + +引用方式: + +```javascript +import AvatarList from '@/components/AvatarList' +const AvatarListItem = AvatarList.Item + +export default { + components: { + AvatarList, + AvatarListItem + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + + + + + +``` +或 +```html + + + + + + + + + +``` + + + +## API + +### AvatarList + +| 参数 | 说明 | 类型 | 默认值 | +| ---------------- | -------- | ---------------------------------- | --------- | +| size | 头像大小 | `large`、`small` 、`mini`, `default` | `default` | +| maxLength | 要显示的最大项目 | number | - | +| excessItemsStyle | 多余的项目风格 | CSSProperties | - | + +### AvatarList.Item + +| 参数 | 说明 | 类型 | 默认值 | +| ---- | ------ | --------- | --- | +| tips | 头像展示文案 | string | - | +| src | 头像图片连接 | string | - | + diff --git a/Waste.WebApi/App/Page/src/components/Charts/Bar.vue b/Waste.WebApi/App/Page/src/components/Charts/Bar.vue new file mode 100644 index 0000000..1a4bdd1 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/Bar.vue @@ -0,0 +1,59 @@ + + + \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/Charts/ChartCard.vue b/Waste.WebApi/App/Page/src/components/Charts/ChartCard.vue new file mode 100644 index 0000000..fc1f425 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/ChartCard.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/Liquid.vue b/Waste.WebApi/App/Page/src/components/Charts/Liquid.vue new file mode 100644 index 0000000..4019fb1 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/Liquid.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/MiniArea.vue b/Waste.WebApi/App/Page/src/components/Charts/MiniArea.vue new file mode 100644 index 0000000..58fe92c --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/MiniArea.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/MiniBar.vue b/Waste.WebApi/App/Page/src/components/Charts/MiniBar.vue new file mode 100644 index 0000000..beac404 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/MiniBar.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/MiniProgress.vue b/Waste.WebApi/App/Page/src/components/Charts/MiniProgress.vue new file mode 100644 index 0000000..e691363 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/MiniProgress.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/MiniSmoothArea.vue b/Waste.WebApi/App/Page/src/components/Charts/MiniSmoothArea.vue new file mode 100644 index 0000000..e5455c2 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/MiniSmoothArea.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/Radar.vue b/Waste.WebApi/App/Page/src/components/Charts/Radar.vue new file mode 100644 index 0000000..5ee88ad --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/Radar.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/RankList.vue b/Waste.WebApi/App/Page/src/components/Charts/RankList.vue new file mode 100644 index 0000000..afb56a1 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/RankList.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/TagCloud.vue b/Waste.WebApi/App/Page/src/components/Charts/TagCloud.vue new file mode 100644 index 0000000..74d1b3f --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/TagCloud.vue @@ -0,0 +1,113 @@ + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/TransferBar.vue b/Waste.WebApi/App/Page/src/components/Charts/TransferBar.vue new file mode 100644 index 0000000..7f96f0b --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/TransferBar.vue @@ -0,0 +1,64 @@ + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/Trend.vue b/Waste.WebApi/App/Page/src/components/Charts/Trend.vue new file mode 100644 index 0000000..2dce37e --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/Trend.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Charts/chart.less b/Waste.WebApi/App/Page/src/components/Charts/chart.less new file mode 100644 index 0000000..e04fa09 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/chart.less @@ -0,0 +1,13 @@ +.antv-chart-mini { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + +/* margin: 0 -5px; + overflow: hidden;*/ + } +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/Charts/smooth.area.less b/Waste.WebApi/App/Page/src/components/Charts/smooth.area.less new file mode 100644 index 0000000..eabdb75 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Charts/smooth.area.less @@ -0,0 +1,14 @@ +@import "../index"; + +@smoothArea-prefix-cls: ~"@{ant-pro-prefix}-smooth-area"; + +.@{smoothArea-prefix-cls} { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + } +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/Dialog.js b/Waste.WebApi/App/Page/src/components/Dialog.js new file mode 100644 index 0000000..78e95b2 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Dialog.js @@ -0,0 +1,113 @@ +import Modal from 'ant-design-vue/es/modal' +export default (Vue) => { + function dialog (component, componentProps, modalProps) { + const _vm = this + modalProps = modalProps || {} + if (!_vm || !_vm._isVue) { + return + } + let dialogDiv = document.querySelector('body>div[type=dialog]') + if (!dialogDiv) { + dialogDiv = document.createElement('div') + dialogDiv.setAttribute('type', 'dialog') + document.body.appendChild(dialogDiv) + } + + const handle = function (checkFunction, afterHandel) { + if (checkFunction instanceof Function) { + const res = checkFunction() + if (res instanceof Promise) { + res.then(c => { + c && afterHandel() + }) + } else { + res && afterHandel() + } + } else { + // checkFunction && afterHandel() + checkFunction || afterHandel() + } + } + + const dialogInstance = new Vue({ + data () { + return { + visible: true + } + }, + router: _vm.$router, + store: _vm.$store, + mounted () { + this.$on('close', (v) => { + this.handleClose() + }) + }, + methods: { + handleClose () { + handle(this.$refs._component.onCancel, () => { + this.visible = false + this.$refs._component.$emit('close') + this.$refs._component.$emit('cancel') + dialogInstance.$destroy() + }) + }, + handleOk () { + handle(this.$refs._component.onOK || this.$refs._component.onOk, () => { + this.visible = false + this.$refs._component.$emit('close') + this.$refs._component.$emit('ok') + dialogInstance.$destroy() + }) + } + }, + render: function (h) { + const that = this + const modalModel = modalProps && modalProps.model + if (modalModel) { + delete modalProps.model + } + const ModalProps = Object.assign({}, modalModel && { model: modalModel } || {}, { + attrs: Object.assign({}, { + ...(modalProps.attrs || modalProps) + }, { + visible: this.visible + }), + on: Object.assign({}, { + ...(modalProps.on || modalProps) + }, { + ok: () => { + that.handleOk() + }, + cancel: () => { + that.handleClose() + } + }) + }) + + const componentModel = componentProps && componentProps.model + if (componentModel) { + delete componentProps.model + } + const ComponentProps = Object.assign({}, componentModel && { model: componentModel } || {}, { + ref: '_component', + attrs: Object.assign({}, { + ...((componentProps && componentProps.attrs) || componentProps) + }), + on: Object.assign({}, { + ...((componentProps && componentProps.on) || componentProps) + }) + }) + + return h(Modal, ModalProps, [h(component, ComponentProps)]) + } + }).$mount(dialogDiv) + } + + Object.defineProperty(Vue.prototype, '$dialog', { + get: () => { + return function () { + dialog.apply(this, arguments) + } + } + }) +} diff --git a/Waste.WebApi/App/Page/src/components/Editor/QuillEditor.vue b/Waste.WebApi/App/Page/src/components/Editor/QuillEditor.vue new file mode 100644 index 0000000..9a041e5 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Editor/QuillEditor.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Editor/WangEditor.vue b/Waste.WebApi/App/Page/src/components/Editor/WangEditor.vue new file mode 100644 index 0000000..d9c71c7 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Editor/WangEditor.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/Ellipsis/Ellipsis.vue b/Waste.WebApi/App/Page/src/components/Ellipsis/Ellipsis.vue new file mode 100644 index 0000000..5d59200 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Ellipsis/Ellipsis.vue @@ -0,0 +1,64 @@ + diff --git a/Waste.WebApi/App/Page/src/components/Ellipsis/index.js b/Waste.WebApi/App/Page/src/components/Ellipsis/index.js new file mode 100644 index 0000000..91e3ff4 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Ellipsis/index.js @@ -0,0 +1,3 @@ +import Ellipsis from './Ellipsis' + +export default Ellipsis diff --git a/Waste.WebApi/App/Page/src/components/Ellipsis/index.md b/Waste.WebApi/App/Page/src/components/Ellipsis/index.md new file mode 100644 index 0000000..f528ac7 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Ellipsis/index.md @@ -0,0 +1,38 @@ +# Ellipsis 文本自动省略号 + +文本过长自动处理省略号,支持按照文本长度和最大行数两种方式截取。 + + + +引用方式: + +```javascript +import Ellipsis from '@/components/Ellipsis' + +export default { + components: { + Ellipsis + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + + There were injuries alleged in three cases in 2015, and a + fourth incident in September, according to the safety recall report. After meeting with US regulators in October, the firm decided to issue a voluntary recall. + +``` + + + +## API + + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +tooltip | 移动到文本展示完整内容的提示 | boolean | - +length | 在按照长度截取下的文本最大字符数,超过则截取省略 | number | - \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/FooterToolbar/FooterToolBar.vue b/Waste.WebApi/App/Page/src/components/FooterToolbar/FooterToolBar.vue new file mode 100644 index 0000000..ea07123 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/FooterToolbar/FooterToolBar.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/FooterToolbar/index.js b/Waste.WebApi/App/Page/src/components/FooterToolbar/index.js new file mode 100644 index 0000000..a0bf145 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/FooterToolbar/index.js @@ -0,0 +1,4 @@ +import FooterToolBar from './FooterToolBar' +import './index.less' + +export default FooterToolBar diff --git a/Waste.WebApi/App/Page/src/components/FooterToolbar/index.less b/Waste.WebApi/App/Page/src/components/FooterToolbar/index.less new file mode 100644 index 0000000..f56273f --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/FooterToolbar/index.less @@ -0,0 +1,23 @@ +@import "../index"; + +@footer-toolbar-prefix-cls: ~"@{ant-pro-prefix}-footer-toolbar"; + +.@{footer-toolbar-prefix-cls} { + position: fixed; + width: 100%; + bottom: 0; + right: 0; + height: 56px; + line-height: 56px; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03); + background: #fff; + border-top: 1px solid #e8e8e8; + padding: 0 24px; + z-index: 9; + + &:after { + content: ""; + display: block; + clear: both; + } +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/FooterToolbar/index.md b/Waste.WebApi/App/Page/src/components/FooterToolbar/index.md new file mode 100644 index 0000000..c1aec2c --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/FooterToolbar/index.md @@ -0,0 +1,48 @@ +# FooterToolbar 底部工具栏 + +固定在底部的工具栏。 + + + +## 何时使用 + +固定在内容区域的底部,不随滚动条移动,常用于长页面的数据搜集和提交工作。 + + + +引用方式: + +```javascript +import FooterToolBar from '@/components/FooterToolbar' + +export default { + components: { + FooterToolBar + } +} +``` + + + +## 代码演示 + +```html + + 提交 + +``` +或 +```html + + 提交 + +``` + + +## API + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +children (slot) | 工具栏内容,向右对齐 | - | - +extra | 额外信息,向左对齐 | String, Object | - + diff --git a/Waste.WebApi/App/Page/src/components/GlobalFooter/index.vue b/Waste.WebApi/App/Page/src/components/GlobalFooter/index.vue new file mode 100644 index 0000000..f29100b --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/GlobalFooter/index.vue @@ -0,0 +1,24 @@ + + + diff --git a/Waste.WebApi/App/Page/src/components/GlobalHeader/AvatarDropdown.vue b/Waste.WebApi/App/Page/src/components/GlobalHeader/AvatarDropdown.vue new file mode 100644 index 0000000..907240b --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/GlobalHeader/AvatarDropdown.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/GlobalHeader/RightContent.vue b/Waste.WebApi/App/Page/src/components/GlobalHeader/RightContent.vue new file mode 100644 index 0000000..1538b09 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/GlobalHeader/RightContent.vue @@ -0,0 +1,53 @@ + + + diff --git a/Waste.WebApi/App/Page/src/components/IconSelector/IconSelector.vue b/Waste.WebApi/App/Page/src/components/IconSelector/IconSelector.vue new file mode 100644 index 0000000..810d297 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/IconSelector/IconSelector.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/IconSelector/README.md b/Waste.WebApi/App/Page/src/components/IconSelector/README.md new file mode 100644 index 0000000..503095d --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/IconSelector/README.md @@ -0,0 +1,48 @@ +IconSelector +==== + +> 图标选择组件,常用于为某一个数据设定一个图标时使用 +> eg: 设定菜单列表时,为每个菜单设定一个图标 + +该组件由 [@Saraka](https://github.com/saraka-tsukai) 封装 + + + +### 使用方式 + +```vue + + + +``` + + + +### 事件 + + +| 名称 | 说明 | 类型 | 默认值 | +| ------ | -------------------------- | ------ | ------ | +| change | 当改变了 `icon` 选中项触发 | String | - | diff --git a/Waste.WebApi/App/Page/src/components/IconSelector/icons.js b/Waste.WebApi/App/Page/src/components/IconSelector/icons.js new file mode 100644 index 0000000..920f464 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/IconSelector/icons.js @@ -0,0 +1,36 @@ +/** + * 增加新的图标时,请遵循以下数据结构 + * Adding new icon please follow the data structure below + */ +export default [ + { + key: 'directional', + title: '方向性图标', + icons: ['step-backward', 'step-forward', 'fast-backward', 'fast-forward', 'shrink', 'arrows-alt', 'down', 'up', 'left', 'right', 'caret-up', 'caret-down', 'caret-left', 'caret-right', 'up-circle', 'down-circle', 'left-circle', 'right-circle', 'double-right', 'double-left', 'vertical-left', 'vertical-right', 'forward', 'backward', 'rollback', 'enter', 'retweet', 'swap', 'swap-left', 'swap-right', 'arrow-up', 'arrow-down', 'arrow-left', 'arrow-right', 'play-circle', 'up-square', 'down-square', 'left-square', 'right-square', 'login', 'logout', 'menu-fold', 'menu-unfold', 'border-bottom', 'border-horizontal', 'border-inner', 'border-left', 'border-right', 'border-top', 'border-verticle', 'pic-center', 'pic-left', 'pic-right', 'radius-bottomleft', 'radius-bottomright', 'radius-upleft', 'fullscreen', 'fullscreen-exit'] + }, + { + key: 'suggested', + title: '提示建议性图标', + icons: ['question', 'question-circle', 'plus', 'plus-circle', 'pause', 'pause-circle', 'minus', 'minus-circle', 'plus-square', 'minus-square', 'info', 'info-circle', 'exclamation', 'exclamation-circle', 'close', 'close-circle', 'close-square', 'check', 'check-circle', 'check-square', 'clock-circle', 'warning', 'issues-close', 'stop'] + }, + { + key: 'editor', + title: '编辑类图标', + icons: ['edit', 'form', 'copy', 'scissor', 'delete', 'snippets', 'diff', 'highlight', 'align-center', 'align-left', 'align-right', 'bg-colors', 'bold', 'italic', 'underline', 'strikethrough', 'redo', 'undo', 'zoom-in', 'zoom-out', 'font-colors', 'font-size', 'line-height', 'colum-height', 'dash', 'small-dash', 'sort-ascending', 'sort-descending', 'drag', 'ordered-list', 'radius-setting'] + }, + { + key: 'data', + title: '数据类图标', + icons: ['area-chart', 'pie-chart', 'bar-chart', 'dot-chart', 'line-chart', 'radar-chart', 'heat-map', 'fall', 'rise', 'stock', 'box-plot', 'fund', 'sliders'] + }, + { + key: 'brand_logo', + title: '网站通用图标', + icons: ['lock', 'unlock', 'bars', 'book', 'calendar', 'cloud', 'cloud-download', 'code', 'copy', 'credit-card', 'delete', 'desktop', 'download', 'ellipsis', 'file', 'file-text', 'file-unknown', 'file-pdf', 'file-word', 'file-excel', 'file-jpg', 'file-ppt', 'file-markdown', 'file-add', 'folder', 'folder-open', 'folder-add', 'hdd', 'frown', 'meh', 'smile', 'inbox', 'laptop', 'appstore', 'link', 'mail', 'mobile', 'notification', 'paper-clip', 'picture', 'poweroff', 'reload', 'search', 'setting', 'share-alt', 'shopping-cart', 'tablet', 'tag', 'tags', 'to-top', 'upload', 'user', 'video-camera', 'home', 'loading', 'loading-3-quarters', 'cloud-upload', 'star', 'heart', 'environment', 'eye', 'camera', 'save', 'team', 'solution', 'phone', 'filter', 'exception', 'export', 'customer-service', 'qrcode', 'scan', 'like', 'dislike', 'message', 'pay-circle', 'calculator', 'pushpin', 'bulb', 'select', 'switcher', 'rocket', 'bell', 'disconnect', 'database', 'compass', 'barcode', 'hourglass', 'key', 'flag', 'layout', 'printer', 'sound', 'usb', 'skin', 'tool', 'sync', 'wifi', 'car', 'schedule', 'user-add', 'user-delete', 'usergroup-add', 'usergroup-delete', 'man', 'woman', 'shop', 'gift', 'idcard', 'medicine-box', 'red-envelope', 'coffee', 'copyright', 'trademark', 'safety', 'wallet', 'bank', 'trophy', 'contacts', 'global', 'shake', 'api', 'fork', 'dashboard', 'table', 'profile', 'alert', 'audit', 'branches', 'build', 'border', 'crown', 'experiment', 'fire', 'money-collect', 'property-safety', 'read', 'reconciliation', 'rest', 'security-scan', 'insurance', 'interation', 'safety-certificate', 'project', 'thunderbolt', 'block', 'cluster', 'deployment-unit', 'dollar', 'euro', 'pound', 'file-done', 'file-exclamation', 'file-protect', 'file-search', 'file-sync', 'gateway', 'gold', 'robot', 'shopping'] + }, + { + key: 'application', + title: '品牌和标识', + icons: ['android', 'apple', 'windows', 'ie', 'chrome', 'github', 'aliwangwang', 'dingding', 'weibo-square', 'weibo-circle', 'taobao-circle', 'html5', 'weibo', 'twitter', 'wechat', 'youtube', 'alipay-circle', 'taobao', 'skype', 'qq', 'medium-workmark', 'gitlab', 'medium', 'linkedin', 'google-plus', 'dropbox', 'facebook', 'codepen', 'code-sandbox', 'amazon', 'google', 'codepen-circle', 'alipay', 'ant-design', 'aliyun', 'zhihu', 'slack', 'slack-square', 'behance', 'behance-square', 'dribbble', 'dribbble-square', 'instagram', 'yuque', 'alibaba', 'yahoo'] + } +] diff --git a/Waste.WebApi/App/Page/src/components/IconSelector/index.js b/Waste.WebApi/App/Page/src/components/IconSelector/index.js new file mode 100644 index 0000000..2d27d70 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/IconSelector/index.js @@ -0,0 +1,2 @@ +import IconSelector from './IconSelector' +export default IconSelector diff --git a/Waste.WebApi/App/Page/src/components/MultiTab/MultiTab.vue b/Waste.WebApi/App/Page/src/components/MultiTab/MultiTab.vue new file mode 100644 index 0000000..bfb6e57 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/MultiTab/MultiTab.vue @@ -0,0 +1,162 @@ + diff --git a/Waste.WebApi/App/Page/src/components/MultiTab/events.js b/Waste.WebApi/App/Page/src/components/MultiTab/events.js new file mode 100644 index 0000000..b0230b5 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/MultiTab/events.js @@ -0,0 +1,2 @@ +import Vue from 'vue' +export default new Vue() diff --git a/Waste.WebApi/App/Page/src/components/MultiTab/index.js b/Waste.WebApi/App/Page/src/components/MultiTab/index.js new file mode 100644 index 0000000..02a1c77 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/MultiTab/index.js @@ -0,0 +1,40 @@ +import events from './events' +import MultiTab from './MultiTab' +import './index.less' + +const api = { + /** + * open new tab on route fullPath + * @param config + */ + open: function (config) { + events.$emit('open', config) + }, + rename: function (key, name) { + events.$emit('rename', { key: key, name: name }) + }, + /** + * close current page + */ + closeCurrentPage: function () { + this.close() + }, + /** + * close route fullPath tab + * @param config + */ + close: function (config) { + events.$emit('close', config) + } +} + +MultiTab.install = function (Vue) { + if (Vue.prototype.$multiTab) { + return + } + api.instance = events + Vue.prototype.$multiTab = api + Vue.component('multi-tab', MultiTab) +} + +export default MultiTab diff --git a/Waste.WebApi/App/Page/src/components/MultiTab/index.less b/Waste.WebApi/App/Page/src/components/MultiTab/index.less new file mode 100644 index 0000000..773e3af --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/MultiTab/index.less @@ -0,0 +1,25 @@ +@import '../index'; + +@multi-tab-prefix-cls: ~"@{ant-pro-prefix}-multi-tab"; +@multi-tab-wrapper-prefix-cls: ~"@{ant-pro-prefix}-multi-tab-wrapper"; + +/* +.topmenu .@{multi-tab-prefix-cls} { + max-width: 1200px; + margin: -23px auto 24px auto; +} +*/ +.@{multi-tab-prefix-cls} { + margin: -23px -24px 24px -24px; + background: #fff; +} + +.topmenu .@{multi-tab-wrapper-prefix-cls} { + max-width: 1200px; + margin: 0 auto; +} + +.topmenu.content-width-Fluid .@{multi-tab-wrapper-prefix-cls} { + max-width: 100%; + margin: 0 auto; +} diff --git a/Waste.WebApi/App/Page/src/components/NProgress/nprogress.less b/Waste.WebApi/App/Page/src/components/NProgress/nprogress.less new file mode 100644 index 0000000..7826c0e --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/NProgress/nprogress.less @@ -0,0 +1,76 @@ +@import url('../index.less'); + +/* Make clicks pass-through */ +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + background: @primary-color; + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +/* Fancy blur effect */ +#nprogress .peg { + display: block; + position: absolute; + right: 0px; + width: 100px; + height: 100%; + box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color; + opacity: 1.0; + + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); +} + +/* Remove these to get rid of the spinner */ +#nprogress .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; +} + +#nprogress .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + + border: solid 2px transparent; + border-top-color: @primary-color; + border-left-color: @primary-color; + border-radius: 50%; + + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; +} + +.nprogress-custom-parent #nprogress .spinner, +.nprogress-custom-parent #nprogress .bar { + position: absolute; +} + +@-webkit-keyframes nprogress-spinner { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } +} +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + diff --git a/Waste.WebApi/App/Page/src/components/NoticeIcon/NoticeIcon.vue b/Waste.WebApi/App/Page/src/components/NoticeIcon/NoticeIcon.vue new file mode 100644 index 0000000..8ae1c80 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/NoticeIcon/NoticeIcon.vue @@ -0,0 +1,90 @@ + + + + + + diff --git a/Waste.WebApi/App/Page/src/components/NoticeIcon/index.js b/Waste.WebApi/App/Page/src/components/NoticeIcon/index.js new file mode 100644 index 0000000..659b9ec --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/NoticeIcon/index.js @@ -0,0 +1,2 @@ +import NoticeIcon from './NoticeIcon' +export default NoticeIcon diff --git a/Waste.WebApi/App/Page/src/components/NumberInfo/NumberInfo.vue b/Waste.WebApi/App/Page/src/components/NumberInfo/NumberInfo.vue new file mode 100644 index 0000000..bdde3e0 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/NumberInfo/NumberInfo.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/NumberInfo/index.js b/Waste.WebApi/App/Page/src/components/NumberInfo/index.js new file mode 100644 index 0000000..659a2f3 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/NumberInfo/index.js @@ -0,0 +1,3 @@ +import NumberInfo from './NumberInfo' + +export default NumberInfo diff --git a/Waste.WebApi/App/Page/src/components/NumberInfo/index.less b/Waste.WebApi/App/Page/src/components/NumberInfo/index.less new file mode 100644 index 0000000..719113d --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/NumberInfo/index.less @@ -0,0 +1,55 @@ +@import "../index"; + +@numberInfo-prefix-cls: ~"@{ant-pro-prefix}-number-info"; + +.@{numberInfo-prefix-cls} { + + .ant-pro-number-info-subtitle { + color: @text-color-secondary; + font-size: @font-size-base; + height: 22px; + line-height: 22px; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + } + + .number-info-value { + margin-top: 4px; + font-size: 0; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + + & > span { + color: @heading-color; + display: inline-block; + line-height: 32px; + height: 32px; + font-size: 24px; + margin-right: 32px; + } + + .sub-total { + color: @text-color-secondary; + font-size: @font-size-lg; + vertical-align: top; + margin-right: 0; + i { + font-size: 12px; + transform: scale(0.82); + margin-left: 4px; + } + :global { + .anticon-caret-up { + color: @red-6; + } + .anticon-caret-down { + color: @green-6; + } + } + } + } +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/NumberInfo/index.md b/Waste.WebApi/App/Page/src/components/NumberInfo/index.md new file mode 100644 index 0000000..147adc4 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/NumberInfo/index.md @@ -0,0 +1,43 @@ +# NumberInfo 数据文本 + +常用在数据卡片中,用于突出展示某个业务数据。 + + + +引用方式: + +```javascript +import NumberInfo from '@/components/NumberInfo' + +export default { + components: { + NumberInfo + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html + +``` + + + +## API + +参数 | 说明 | 类型 | 默认值 +----|------|-----|------ +title | 标题 | ReactNode\|string | - +subTitle | 子标题 | ReactNode\|string | - +total | 总量 | ReactNode\|string | - +subTotal | 子总量 | ReactNode\|string | - +status | 增加状态 | 'up \| down' | - +theme | 状态样式 | string | 'light' +gap | 设置数字和描述之间的间距(像素)| number | 8 diff --git a/Waste.WebApi/App/Page/src/components/Other/CarbonAds.vue b/Waste.WebApi/App/Page/src/components/Other/CarbonAds.vue new file mode 100644 index 0000000..1e53ba6 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/Other/CarbonAds.vue @@ -0,0 +1,114 @@ + + diff --git a/Waste.WebApi/App/Page/src/components/PageLoading/index.jsx b/Waste.WebApi/App/Page/src/components/PageLoading/index.jsx new file mode 100644 index 0000000..af6d6d6 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/PageLoading/index.jsx @@ -0,0 +1,106 @@ +import { Spin } from 'ant-design-vue' + +export const PageLoading = { + name: 'PageLoading', + props: { + tip: { + type: String, + default: 'Loading..' + }, + size: { + type: String, + default: 'large' + } + }, + render () { + const style = { + textAlign: 'center', + background: 'rgba(0,0,0,0.6)', + position: 'fixed', + top: 0, + bottom: 0, + left: 0, + right: 0, + zIndex: 1100 + } + const spinStyle = { + position: 'absolute', + left: '50%', + top: '40%', + transform: 'translate(-50%, -50%)' + } + return (
    + +
    ) + } +} + +const version = '0.0.1' +const loading = {} + +loading.newInstance = (Vue, options) => { + let loadingElement = document.querySelector('body>div[type=loading]') + if (!loadingElement) { + loadingElement = document.createElement('div') + loadingElement.setAttribute('type', 'loading') + loadingElement.setAttribute('class', 'ant-loading-wrapper') + document.body.appendChild(loadingElement) + } + + const cdProps = Object.assign({ visible: false, size: 'large', tip: 'Loading...' }, options) + + const instance = new Vue({ + data () { + return { + ...cdProps + } + }, + render () { + const { tip } = this + const props = {} + this.tip && (props.tip = tip) + if (this.visible) { + return + } + return null + } + }).$mount(loadingElement) + + function update (config) { + const { visible, size, tip } = { ...cdProps, ...config } + instance.$set(instance, 'visible', visible) + if (tip) { + instance.$set(instance, 'tip', tip) + } + if (size) { + instance.$set(instance, 'size', size) + } + } + + return { + instance, + update + } +} + +const api = { + show: function (options) { + this.instance.update({ ...options, visible: true }) + }, + hide: function () { + this.instance.update({ visible: false }) + } +} + +const install = function (Vue, options) { + if (Vue.prototype.$loading) { + return + } + api.instance = loading.newInstance(Vue, options) + Vue.prototype.$loading = api +} + +export default { + version, + install +} diff --git a/Waste.WebApi/App/Page/src/components/SelectLang/index.jsx b/Waste.WebApi/App/Page/src/components/SelectLang/index.jsx new file mode 100644 index 0000000..b587427 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/SelectLang/index.jsx @@ -0,0 +1,58 @@ +import './index.less' + +import { Icon, Menu, Dropdown } from 'ant-design-vue' +import { i18nRender } from '@/locales' +import i18nMixin from '@/store/i18n-mixin' + +const locales = ['zh-CN', 'zh-TW', 'en-US', 'pt-BR'] +const languageLabels = { + 'zh-CN': '简体中文', + 'zh-TW': '繁体中文', + 'en-US': 'English', + 'pt-BR': 'Português' +} +// eslint-disable-next-line +const languageIcons = { + 'zh-CN': '🇨🇳', + 'zh-TW': '🇭🇰', + 'en-US': '🇺🇸', + 'pt-BR': '🇧🇷' +} + +const SelectLang = { + props: { + prefixCls: { + type: String, + default: 'ant-pro-drop-down' + } + }, + name: 'SelectLang', + mixins: [i18nMixin], + render () { + const { prefixCls } = this + const changeLang = ({ key }) => { + this.setLang(key) + } + const langMenu = ( + + {locales.map(locale => ( + + + {languageIcons[locale]} + {' '} + {languageLabels[locale]} + + ))} + + ) + return ( + + + + + + ) + } +} + +export default SelectLang diff --git a/Waste.WebApi/App/Page/src/components/SelectLang/index.less b/Waste.WebApi/App/Page/src/components/SelectLang/index.less new file mode 100644 index 0000000..750c9c7 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/SelectLang/index.less @@ -0,0 +1,31 @@ +@import "~ant-design-vue/es/style/themes/default"; + +@header-menu-prefix-cls: ~'@{ant-prefix}-pro-header-menu'; +@header-drop-down-prefix-cls: ~'@{ant-prefix}-pro-drop-down'; + +.@{header-menu-prefix-cls} { + + .anticon { + margin-right: 8px; + } + .ant-dropdown-menu-item { + min-width: 160px; + } +} + +.@{header-drop-down-prefix-cls} { + + line-height: @layout-header-height; + vertical-align: top; + cursor: pointer; + + > i { + font-size: 16px !important; + transform: none !important; + + svg { + position: relative; + top: -1px; + } + } +} diff --git a/Waste.WebApi/App/Page/src/components/SettingDrawer/SettingDrawer.vue b/Waste.WebApi/App/Page/src/components/SettingDrawer/SettingDrawer.vue new file mode 100644 index 0000000..a21e96c --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/SettingDrawer/SettingDrawer.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/SettingDrawer/SettingItem.vue b/Waste.WebApi/App/Page/src/components/SettingDrawer/SettingItem.vue new file mode 100644 index 0000000..2b3b553 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/SettingDrawer/SettingItem.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/SettingDrawer/index.js b/Waste.WebApi/App/Page/src/components/SettingDrawer/index.js new file mode 100644 index 0000000..8260f2d --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/SettingDrawer/index.js @@ -0,0 +1,2 @@ +import SettingDrawer from './SettingDrawer' +export default SettingDrawer diff --git a/Waste.WebApi/App/Page/src/components/SettingDrawer/settingConfig.js b/Waste.WebApi/App/Page/src/components/SettingDrawer/settingConfig.js new file mode 100644 index 0000000..a754392 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/SettingDrawer/settingConfig.js @@ -0,0 +1,48 @@ +import message from 'ant-design-vue/es/message' +// import defaultSettings from '../defaultSettings'; +import themeColor from './themeColor.js' + +// let lessNodesAppended +const colorList = [ + { + key: '薄暮', color: '#F5222D' + }, + { + key: '火山', color: '#FA541C' + }, + { + key: '日暮', color: '#FAAD14' + }, + { + key: '明青', color: '#13C2C2' + }, + { + key: '极光绿', color: '#52C41A' + }, + { + key: '拂晓蓝(默认)', color: '#1890FF' + }, + { + key: '极客蓝', color: '#2F54EB' + }, + { + key: '酱紫', color: '#722ED1' + } +] + +const updateTheme = newPrimaryColor => { + // const hideMessage = message.loading('正在切换主题!', 0) + // themeColor.changeColor(newPrimaryColor).finally(() => { + // setTimeout(() => { + // hideMessage() + // }, 10) + // }) +} + +const updateColorWeak = colorWeak => { + // document.body.className = colorWeak ? 'colorWeak' : ''; + const app = document.body.querySelector('#app') + colorWeak ? app.classList.add('colorWeak') : app.classList.remove('colorWeak') +} + +export { updateTheme, colorList, updateColorWeak } diff --git a/Waste.WebApi/App/Page/src/components/SettingDrawer/themeColor.js b/Waste.WebApi/App/Page/src/components/SettingDrawer/themeColor.js new file mode 100644 index 0000000..10dfbd4 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/SettingDrawer/themeColor.js @@ -0,0 +1,24 @@ +import client from 'webpack-theme-color-replacer/client' +import generate from '@ant-design/colors/lib/generate' + +export default { + getAntdSerials (color) { + // 淡化(即less的tint) + const lightens = new Array(9).fill().map((t, i) => { + return client.varyColor.lighten(color, i / 10) + }) + // colorPalette变换得到颜色值 + const colorPalettes = generate(color) + const rgb = client.varyColor.toNum3(color.replace('#', '')).join(',') + return lightens.concat(colorPalettes).concat(rgb) + }, + changeColor (newColor) { + var options = { + newColors: this.getAntdSerials(newColor), // new colors array, one-to-one corresponde with `matchColors` + changeUrl (cssUrl) { + return `/${cssUrl}` // while router is not `hash` mode, it needs absolute path + } + } + return client.changer.changeColor(options, Promise) + } +} diff --git a/Waste.WebApi/App/Page/src/components/_util/util.js b/Waste.WebApi/App/Page/src/components/_util/util.js new file mode 100644 index 0000000..dd33231 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/_util/util.js @@ -0,0 +1,46 @@ +/** + * components util + */ + +/** + * 清理空值,对象 + * @param children + * @returns {*[]} + */ +export function filterEmpty (children = []) { + return children.filter(c => c.tag || (c.text && c.text.trim() !== '')) +} + +/** + * 获取字符串长度,英文字符 长度1,中文字符长度2 + * @param {*} str + */ +export const getStrFullLength = (str = '') => + str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + return pre + 1 + } + return pre + 2 + }, 0) + +/** + * 截取字符串,根据 maxLength 截取后返回 + * @param {*} str + * @param {*} maxLength + */ +export const cutStrByFullLength = (str = '', maxLength) => { + let showLength = 0 + return str.split('').reduce((pre, cur) => { + const charCode = cur.charCodeAt(0) + if (charCode >= 0 && charCode <= 128) { + showLength += 1 + } else { + showLength += 2 + } + if (showLength <= maxLength) { + return pre + cur + } + return pre + }, '') +} diff --git a/Waste.WebApi/App/Page/src/components/device/Statistics.vue b/Waste.WebApi/App/Page/src/components/device/Statistics.vue new file mode 100644 index 0000000..1e855e2 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/device/Statistics.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/device/device.vue b/Waste.WebApi/App/Page/src/components/device/device.vue new file mode 100644 index 0000000..01b60c9 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/device/device.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/components/index.js b/Waste.WebApi/App/Page/src/components/index.js new file mode 100644 index 0000000..54f1576 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/index.js @@ -0,0 +1,63 @@ +// chart +import Bar from '@/components/Charts/Bar' +import ChartCard from '@/components/Charts/ChartCard' +import Liquid from '@/components/Charts/Liquid' +import MiniArea from '@/components/Charts/MiniArea' +import MiniSmoothArea from '@/components/Charts/MiniSmoothArea' +import MiniBar from '@/components/Charts/MiniBar' +import MiniProgress from '@/components/Charts/MiniProgress' +import Radar from '@/components/Charts/Radar' +import RankList from '@/components/Charts/RankList' +import TransferBar from '@/components/Charts/TransferBar' +import TagCloud from '@/components/Charts/TagCloud' + +// pro components +// import AvatarList from '@/components/AvatarList' +// import Ellipsis from '@/components/Ellipsis' +// import FooterToolbar from '@/components/FooterToolbar' +// import NumberInfo from '@/components/NumberInfo' +// import Tree from '@/components/Tree/Tree' +// import Trend from '@/components/Trend' +// import STable from '@/components/Table' +// import MultiTab from '@/components/MultiTab' +// import IconSelector from '@/components/IconSelector' +// import TagSelect from '@/components/TagSelect' +// import StandardFormRow from '@/components/StandardFormRow' +// import ArticleListContent from '@/components/ArticleListContent' +// +import DeviceTag from '@/components/device/device.vue' +import StatisticsTag from '@/components/device/Statistics.vue' + + +import Dialog from '@/components/Dialog' + +export { + // AvatarList, + Bar, + ChartCard, + Liquid, + MiniArea, + MiniSmoothArea, + MiniBar, + MiniProgress, + Radar, + TagCloud, + RankList, + TransferBar, + // Trend, + // Ellipsis, + // FooterToolbar, + // NumberInfo, + // Tree, + // STable, + // MultiTab, + // IconSelector, + // TagSelect, + // StandardFormRow, + // ArticleListContent, + + Dialog, + // + DeviceTag, + StatisticsTag +} diff --git a/Waste.WebApi/App/Page/src/components/index.less b/Waste.WebApi/App/Page/src/components/index.less new file mode 100644 index 0000000..e831c41 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/index.less @@ -0,0 +1,6 @@ +@import "~ant-design-vue/lib/style/index"; + +// The prefix to use on all css classes from ant-pro. +@ant-pro-prefix : ant-pro; +@ant-global-sider-zindex : 106; +@ant-global-header-zindex : 105; \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/components/tools/TwoStepCaptcha.vue b/Waste.WebApi/App/Page/src/components/tools/TwoStepCaptcha.vue new file mode 100644 index 0000000..01302b4 --- /dev/null +++ b/Waste.WebApi/App/Page/src/components/tools/TwoStepCaptcha.vue @@ -0,0 +1,89 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/config/defaultSettings.js b/Waste.WebApi/App/Page/src/config/defaultSettings.js new file mode 100644 index 0000000..546c301 --- /dev/null +++ b/Waste.WebApi/App/Page/src/config/defaultSettings.js @@ -0,0 +1,30 @@ +/** + * 项目默认配置项 + * primaryColor - 默认主题色, 如果修改颜色不生效,请清理 localStorage + * navTheme - sidebar theme ['dark', 'light'] 两种主题 + * colorWeak - 色盲模式 + * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 + * fixedHeader - 固定 Header : boolean + * fixSiderbar - 固定左侧菜单栏 : boolean + * contentWidth - 内容区布局: 流式 | 固定 + * + * storageOptions: {} - Vue-ls 插件配置项 (localStorage/sessionStorage) + * + */ + +export default { + navTheme: 'dark', // theme for nav menu + primaryColor: '#1890ff', // primary color of ant design + layout: 'sidemenu', // nav menu position: `sidemenu` or `topmenu` + contentWidth: 'Fluid', // layout of content: `Fluid` or `Fixed`, only works when layout is topmenu + fixedHeader: true, // sticky header + fixSiderbar: true, // sticky siderbar + colorWeak: false, + menu: { + locale: true + }, + title: '小白管理平台', + pwa: false, + iconfontUrl: '', + production: process.env.NODE_ENV === 'production' && process.env.VUE_APP_PREVIEW !== 'true' +} diff --git a/Waste.WebApi/App/Page/src/config/router.config.js b/Waste.WebApi/App/Page/src/config/router.config.js new file mode 100644 index 0000000..1f5904c --- /dev/null +++ b/Waste.WebApi/App/Page/src/config/router.config.js @@ -0,0 +1,399 @@ +// eslint-disable-next-line +import { + UserLayout, + BasicLayout, + BlankLayout +} from '@/layouts' +import { + bxAnaalyse +} from '@/core/icons' + +const RouteView = { + name: 'RouteView', + render: (h) => h('router-view') +} + +export const asyncRouterMap = [{ + path: '/', + name: 'index', + component: BasicLayout, + meta: { + title: '首页' + }, + redirect: '/home', + children: [ + // 首页 + { + path: '/home', + name: 'home', + component: () => import('@/views/home/index'), + meta: { + title: '首页', + keepAlive: true, + icon: bxAnaalyse, + permission: ['home'] + } + }, + // 设备管理 + { + path: '/device', + name: 'device', + component: RouteView, + meta: { + title: '设备', + keepAlive: true, + icon: bxAnaalyse, + permission: ['device'] + }, + redirect: '/device/list', + children: [{ + path: '/device/list', + name: 'devicelist', + component: () => import('@/views/device/list'), + hideChildrenInMenu: true, + meta: { + title: '设备管理', + keepAlive: true, + permission: ['device'], + }, + }, + { + path: '/device/result', + name: 'resultlist', + component: () => import('@/views/device/result'), + meta: { + title: '测量记录', + keepAlive: true, + icon: bxAnaalyse, + permission: ['device'] + } + }, + { + path: '/device/Bindcount', + name: 'Bindcountlist', + component: () => import('@/views/device/Bindcount'), + meta: { + title: '绑定用户关系管理', + hidden: true, + keepAlive: true, + permission: ['device'] + } + } + + ] + }, + // 公众号管理 + { + path: '/official', + name: 'official', + component: RouteView, + meta: { + title: '公众号设置', + keepAlive: true, + icon: bxAnaalyse, + permission: ['official'] + }, + redirect: '/official/List', + children: [{ + path: '/official/List', + name: 'officiallist', + component: () => import('@/views/official/List'), + meta: { + title: '公众号管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['official'] + }, + }, + { + path: '/official/template', + name: 'officialtemplate', + component: () => import('@/views/official/template'), + meta: { + title: '模板管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['official'] + } + }, + { + path: '/official/deviceList', + name: 'officialdeviceList', + component: () => import('@/views/official/deviceList'), + meta: { + title: '设备绑定', + keepAlive: true, + icon: bxAnaalyse, + permission: ['official'] + } + }, + { + path: '/official/empower', + name: 'officialempower', + component: () => import('@/views/official/empower'), + meta: { + title: '公众号授权', + keepAlive: true, + icon: bxAnaalyse, + permission: ['official'] + } + }, + { + path: '/official/components/addList', + name: 'addList', + component: () => import('@/views/official/components/addList'), + meta: { + title: '基本设置', + keepAlive: false, + hidden: true + } + }, + ] + }, + // 营销管理 + { + path: '/market', + name: 'market', + component: RouteView, + meta: { + title: '营销管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['market'] + }, + redirect: '/market/tag', + children: [{ + path: '/market/tag', + name: 'markettag', + component: () => import('@/views/market/tag'), + meta: { + title: '标签管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['market'] + } + }, + { + path: '/market/message', + name: 'marketmessage', + component: () => import('@/views/market/message'), + meta: { + title: '消息群发', + keepAlive: true, + icon: bxAnaalyse, + permission: ['market'] + } + } + ] + }, + // 用户管理 + { + path: '/reguser', + name: 'reguser', + component: RouteView, + meta: { + title: '用户管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['reguser'] + }, + redirect: '/reguser/list', + children: [{ + path: '/reguser/list', + name: 'reguserlist', + component: () => import('@/views/reguser/list'), + meta: { + title: '注册用户管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['reguser'] + } + }, + { + path: '/reguser/bind', + name: 'reguserbind', + component: () => import('@/views/reguser/bind'), + meta: { + title: '绑定用户管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['reguser'] + } + }, + { + path: '/reguser/resultlist', + name: 'reguserresultlist', + component: () => import('@/views/reguser/resultlist'), + meta: { + title: '用户测量记录', + keepAlive: false, + icon: bxAnaalyse + } + } + ] + }, + // 客户管理 + { + path: '/business', + name: 'business', + component: () => import('@/views/business/index'), + meta: { + title: '渠道管理', + keepAlive: true, + icon: bxAnaalyse, + permission: ['business'] + } + }, + // 数据分析 + { + path: '/report', + name: 'report', + component: RouteView, + meta: { + title: '数据分析', + keepAlive: true, + icon: bxAnaalyse, + permission: ['report'] + }, + redirect: '/report/tag', + children: [{ + path: '/report/tag', + name: 'reporttag', + component: () => import('@/views/report/tag'), + meta: { + title: '标签数据分析', + keepAlive: true, + icon: bxAnaalyse, + permission: ['report'] + } + }, + { + path: '/report/user', + name: 'reportuser', + component: () => import('@/views/report/user'), + meta: { + title: '用户画像', + keepAlive: true, + icon: bxAnaalyse, + permission: ['report'] + } + }, + { + path: '/report/health', + name: 'reporthealth', + component: () => import('@/views/report/health'), + meta: { + title: '健康数据分析', + keepAlive: true, + icon: bxAnaalyse, + permission: ['report'] + } + }, + { + path: '/report/measure', + name: 'reportmeasure', + component: () => import('@/views/report/measure'), + meta: { + title: '测量统计', + keepAlive: true, + icon: bxAnaalyse, + permission: ['report'] + } + } + ] + }, + // 个人中心 + { + path: '/user', + name: 'user', + component: RouteView, + meta: { + title: '个人中心', + keepAlive: true, + icon: bxAnaalyse, + permission: ['user'] + }, + redirect: '/user/password', + children: [{ + path: '/user/password', + name: 'userpassword', + component: () => import('@/views/user/password'), + meta: { + title: '修改密码', + keepAlive: true, + icon: bxAnaalyse, + permission: ['user'] + } + }, + { + path: 'https://www.baidu.com/', + name: 'userchat', + // component: () => import ('@/views/user/chat'), + meta: { + title: '微信客服', + target: '_blank' + } + }, + { + path: 'https://preview.pro.antdv.com/', + name: 'userbase', + // component: () => import ('@/views/user/base'), + meta: { + title: 'QQ客服', + target: '_blank' + } + }, + ] + }, + // Exception + { + path: '/exception', + name: 'exception', + component: RouteView, + redirect: '/exception/404', + meta: { + title: '异常页', + icon: 'warning', + permission: ['exception'] + }, + children: [{ + path: '/exception/404', + name: 'Exception404', + component: () => import( /* webpackChunkName: "fail" */ '@/views/exception/404'), + meta: { + title: '404', + permission: ['exception'] + } + }, ] + }, + ] +}, ] + +/** + * 基础路由 + * @type { *[] } + */ +export const constantRouterMap = [{ + path: '/user', + component: UserLayout, + redirect: '/user/login', + hidden: true, + children: [{ + path: 'login', + name: 'login', + component: () => import( /* webpackChunkName: "user" */ '@/views/user/Login') + }, + { + path: 'recover', + name: 'recover', + component: undefined + } + ] + }, + + { + path: '/404', + component: () => import( /* webpackChunkName: "fail" */ '@/views/exception/404') + } + +] diff --git a/Waste.WebApi/App/Page/src/core/bootstrap.js b/Waste.WebApi/App/Page/src/core/bootstrap.js new file mode 100644 index 0000000..f9b282c --- /dev/null +++ b/Waste.WebApi/App/Page/src/core/bootstrap.js @@ -0,0 +1,31 @@ +import store from '@/store' +import storage from 'store' +import { + ACCESS_TOKEN, + APP_LANGUAGE, + TOGGLE_CONTENT_WIDTH, + TOGGLE_FIXED_HEADER, + TOGGLE_FIXED_SIDEBAR, TOGGLE_HIDE_HEADER, + TOGGLE_LAYOUT, TOGGLE_NAV_THEME, TOGGLE_WEAK, + TOGGLE_COLOR, TOGGLE_MULTI_TAB +} from '@/store/mutation-types' +import { printANSI } from '@/utils/screenLog' +import defaultSettings from '@/config/defaultSettings' + +export default function Initializer () { + printANSI() // 请自行移除该行. please remove this line + + store.commit(TOGGLE_LAYOUT, storage.get(TOGGLE_LAYOUT, defaultSettings.layout)) + store.commit(TOGGLE_FIXED_HEADER, storage.get(TOGGLE_FIXED_HEADER, defaultSettings.fixedHeader)) + store.commit(TOGGLE_FIXED_SIDEBAR, storage.get(TOGGLE_FIXED_SIDEBAR, defaultSettings.fixSiderbar)) + store.commit(TOGGLE_CONTENT_WIDTH, storage.get(TOGGLE_CONTENT_WIDTH, defaultSettings.contentWidth)) + store.commit(TOGGLE_HIDE_HEADER, storage.get(TOGGLE_HIDE_HEADER, defaultSettings.autoHideHeader)) + store.commit(TOGGLE_NAV_THEME, storage.get(TOGGLE_NAV_THEME, defaultSettings.navTheme)) + store.commit(TOGGLE_WEAK, storage.get(TOGGLE_WEAK, defaultSettings.colorWeak)) + store.commit(TOGGLE_COLOR, storage.get(TOGGLE_COLOR, defaultSettings.primaryColor)) + store.commit(TOGGLE_MULTI_TAB, storage.get(TOGGLE_MULTI_TAB, defaultSettings.multiTab)) + store.commit('SET_TOKEN', storage.get(ACCESS_TOKEN)) + + store.dispatch('setLang', storage.get(APP_LANGUAGE, 'en-US')) + // last step +} diff --git a/Waste.WebApi/App/Page/src/core/directives/action.js b/Waste.WebApi/App/Page/src/core/directives/action.js new file mode 100644 index 0000000..18b7584 --- /dev/null +++ b/Waste.WebApi/App/Page/src/core/directives/action.js @@ -0,0 +1,34 @@ +import Vue from 'vue' +import store from '@/store' + +/** + * Action 权限指令 + * 指令用法: + * - 在需要控制 action 级别权限的组件上使用 v-action:[method] , 如下: + * 添加用户 + * 删除用户 + *
    修改 + * + * - 当前用户没有权限时,组件上使用了该指令则会被隐藏 + * - 当后台权限跟 pro 提供的模式不同时,只需要针对这里的权限过滤进行修改即可 + * + * @see https://github.com/vueComponent/ant-design-vue-pro/pull/53 + */ +const action = Vue.directive('action', { + inserted: function (el, binding, vnode) { + const actionName = binding.arg + const roles = store.getters.roles + const elVal = vnode.context.$route.meta.permission + const permissionId = elVal instanceof String && [elVal] || elVal + roles.permissions.forEach(p => { + if (!permissionId.includes(p.permissionId)) { + return + } + if (p.actionList && !p.actionList.includes(actionName)) { + el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none') + } + }) + } +}) + +export default action diff --git a/Waste.WebApi/App/Page/src/core/icons.js b/Waste.WebApi/App/Page/src/core/icons.js new file mode 100644 index 0000000..46b7261 --- /dev/null +++ b/Waste.WebApi/App/Page/src/core/icons.js @@ -0,0 +1,11 @@ +/** + * Custom icon list + * All icons are loaded here for easy management + * @see https://vue.ant.design/components/icon/#Custom-Font-Icon + * + * 自定义图标加载表 + * 所有图标均从这里加载,方便管理 + */ +import bxAnaalyse from '@/assets/icons/bx-analyse.svg?inline' // path to your '*.svg?inline' file. + +export { bxAnaalyse } diff --git a/Waste.WebApi/App/Page/src/core/lazy_use.js b/Waste.WebApi/App/Page/src/core/lazy_use.js new file mode 100644 index 0000000..bb297bf --- /dev/null +++ b/Waste.WebApi/App/Page/src/core/lazy_use.js @@ -0,0 +1,124 @@ +import Vue from 'vue' + +// base library +import { + ConfigProvider, + Layout, + Input, + InputNumber, + Button, + Switch, + Radio, + Checkbox, + Select, + Card, + Form, + Row, + Col, + Modal, + Table, + Tabs, + Icon, + Badge, + Popover, + Dropdown, + List, + Avatar, + Breadcrumb, + Steps, + Spin, + Menu, + Drawer, + Tooltip, + Alert, + Tag, + Divider, + DatePicker, + TimePicker, + Upload, + Progress, + Skeleton, + Popconfirm, + PageHeader, + Result, + Statistic, + Descriptions, + message, + notification, + transfer, + Collapse, + empty, + pagination +} from 'ant-design-vue' +import Viser from 'viser-vue' + +// ext library +import VueCropper from 'vue-cropper' +import Dialog from '@/components/Dialog' +import MultiTab from '@/components/MultiTab' +import PageLoading from '@/components/PageLoading' +import PermissionHelper from '@/utils/helper/permission' +import './directives/action' + +Vue.use(ConfigProvider) +Vue.use(Layout) +Vue.use(Input) +Vue.use(InputNumber) +Vue.use(Button) +Vue.use(Switch) +Vue.use(Radio) +Vue.use(Checkbox) +Vue.use(Select) +Vue.use(Card) +Vue.use(Form) +Vue.use(Row) +Vue.use(Col) +Vue.use(Modal) +Vue.use(Table) +Vue.use(Tabs) +Vue.use(Icon) +Vue.use(Badge) +Vue.use(Popover) +Vue.use(Dropdown) +Vue.use(List) +Vue.use(Avatar) +Vue.use(Breadcrumb) +Vue.use(Steps) +Vue.use(Spin) +Vue.use(Menu) +Vue.use(Drawer) +Vue.use(Tooltip) +Vue.use(Alert) +Vue.use(Tag) +Vue.use(Divider) +Vue.use(DatePicker) +Vue.use(TimePicker) +Vue.use(Upload) +Vue.use(Progress) +Vue.use(Skeleton) +Vue.use(Popconfirm) +Vue.use(PageHeader) +Vue.use(Result) +Vue.use(Statistic) +Vue.use(Descriptions) +Vue.use(transfer) +Vue.use(Collapse) +Vue.use(empty) +Vue.use(pagination) + +Vue.prototype.$confirm = Modal.confirm +Vue.prototype.$message = message +Vue.prototype.$notification = notification +Vue.prototype.$info = Modal.info +Vue.prototype.$success = Modal.success +Vue.prototype.$error = Modal.error +Vue.prototype.$warning = Modal.warning + +Vue.use(Viser) +Vue.use(Dialog) // this.$dialog func +Vue.use(MultiTab) +Vue.use(PageLoading) +Vue.use(PermissionHelper) +Vue.use(VueCropper) + +process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] NOTICE: Antd use lazy-load.') diff --git a/Waste.WebApi/App/Page/src/core/use.js b/Waste.WebApi/App/Page/src/core/use.js new file mode 100644 index 0000000..ba2eca2 --- /dev/null +++ b/Waste.WebApi/App/Page/src/core/use.js @@ -0,0 +1,27 @@ +import Vue from 'vue' + +// base library +import Antd from 'ant-design-vue' +import Viser from 'viser-vue' +import VueCropper from 'vue-cropper' +import 'ant-design-vue/dist/antd.less' + +// ext library +import VueClipboard from 'vue-clipboard2' +import MultiTab from '@/components/MultiTab' +import PageLoading from '@/components/PageLoading' +import PermissionHelper from '@/utils/helper/permission' +// import '@/components/use' +import './directives/action' + +VueClipboard.config.autoSetContainer = true + +Vue.use(Antd) +Vue.use(Viser) +Vue.use(MultiTab) +Vue.use(PageLoading) +Vue.use(VueClipboard) +Vue.use(PermissionHelper) +Vue.use(VueCropper) + +process.env.NODE_ENV !== 'production' && console.warn('[antd-pro] WARNING: Antd now use fulled imported.') diff --git a/Waste.WebApi/App/Page/src/global.less b/Waste.WebApi/App/Page/src/global.less new file mode 100644 index 0000000..0f2b102 --- /dev/null +++ b/Waste.WebApi/App/Page/src/global.less @@ -0,0 +1,94 @@ +@import '~ant-design-vue/es/style/themes/default.less'; + +html, +body, +#app, #root { + height: 100%; +} + +.colorWeak { + filter: invert(80%); +} + +.ant-layout.layout-basic { + height: 100vh; + min-height: 100vh; +} + +canvas { + display: block; +} + +body { + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +ul, +ol { + list-style: none; +} + +// 数据列表 样式 +.table-alert { + margin-bottom: 16px; +} +// 数据列表 操作 +.table-operator { + margin-bottom: 18px; + + button { + margin-right: 8px; + } +} +// 数据列表 搜索条件 +.table-page-search-wrapper { + + .ant-form-inline { + .ant-form-item { + display: flex; + margin-bottom: 24px; + margin-right: 0; + + .ant-form-item-control-wrapper { + flex: 1 1; + display: inline-block; + vertical-align: middle; + } + + > .ant-form-item-label { + line-height: 32px; + padding-right: 8px; + width: auto; + } + .ant-form-item-control { + height: 32px; + line-height: 32px; + } + } + } + + .table-page-search-submitButtons { + display: block; + margin-bottom: 24px; + white-space: nowrap; + } +} + +@media (max-width: @screen-xs) { + .ant-table { + width: 100%; + overflow-x: auto; + &-thead > tr, + &-tbody > tr { + > th, + > td { + white-space: pre; + > span { + display: block; + } + } + } + } +} diff --git a/Waste.WebApi/App/Page/src/layouts/BasicLayout.less b/Waste.WebApi/App/Page/src/layouts/BasicLayout.less new file mode 100644 index 0000000..a0762ec --- /dev/null +++ b/Waste.WebApi/App/Page/src/layouts/BasicLayout.less @@ -0,0 +1,36 @@ +@import "~ant-design-vue/es/style/themes/default.less"; + +.ant-pro-global-header-index-right { + margin-right: 8px; + + &.ant-pro-global-header-index-dark { + .ant-pro-global-header-index-action { + color: hsla(0, 0%, 100%, .85); + + &:hover { + background: #1890ff; + } + } + } + + .ant-pro-account-avatar { + .antd-pro-global-header-index-avatar { + margin: ~'calc((@{layout-header-height} - 24px) / 2)' 0; + margin-right: 8px; + color: @primary-color; + vertical-align: top; + background: rgba(255, 255, 255, 0.85); + } + } + + .menu { + .anticon { + margin-right: 8px; + } + + .ant-dropdown-menu-item { + min-width: 100px; + } + } +} + diff --git a/Waste.WebApi/App/Page/src/layouts/BasicLayout.vue b/Waste.WebApi/App/Page/src/layouts/BasicLayout.vue new file mode 100644 index 0000000..0953ed5 --- /dev/null +++ b/Waste.WebApi/App/Page/src/layouts/BasicLayout.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/layouts/BlankLayout.vue b/Waste.WebApi/App/Page/src/layouts/BlankLayout.vue new file mode 100644 index 0000000..1bfbfbf --- /dev/null +++ b/Waste.WebApi/App/Page/src/layouts/BlankLayout.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/layouts/PageView.vue b/Waste.WebApi/App/Page/src/layouts/PageView.vue new file mode 100644 index 0000000..86df485 --- /dev/null +++ b/Waste.WebApi/App/Page/src/layouts/PageView.vue @@ -0,0 +1,12 @@ + + + diff --git a/Waste.WebApi/App/Page/src/layouts/RouteView.vue b/Waste.WebApi/App/Page/src/layouts/RouteView.vue new file mode 100644 index 0000000..edae19e --- /dev/null +++ b/Waste.WebApi/App/Page/src/layouts/RouteView.vue @@ -0,0 +1,32 @@ + diff --git a/Waste.WebApi/App/Page/src/layouts/UserLayout.vue b/Waste.WebApi/App/Page/src/layouts/UserLayout.vue new file mode 100644 index 0000000..f09fa63 --- /dev/null +++ b/Waste.WebApi/App/Page/src/layouts/UserLayout.vue @@ -0,0 +1,109 @@ + + + + + + diff --git a/Waste.WebApi/App/Page/src/layouts/index.js b/Waste.WebApi/App/Page/src/layouts/index.js new file mode 100644 index 0000000..c76cc66 --- /dev/null +++ b/Waste.WebApi/App/Page/src/layouts/index.js @@ -0,0 +1,6 @@ +import UserLayout from './UserLayout' +import BlankLayout from './BlankLayout' +import BasicLayout from './BasicLayout' +import RouteView from './RouteView' +import PageView from './PageView' +export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView } diff --git a/Waste.WebApi/App/Page/src/locales/index.js b/Waste.WebApi/App/Page/src/locales/index.js new file mode 100644 index 0000000..ce12b05 --- /dev/null +++ b/Waste.WebApi/App/Page/src/locales/index.js @@ -0,0 +1,59 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +import storage from 'store' +import moment from 'moment' + +// default lang +import enUS from './lang/en-US' + +Vue.use(VueI18n) + +export const defaultLang = 'en-US' + +const messages = { + 'en-US': { + ...enUS + } +} + +const i18n = new VueI18n({ + silentTranslationWarn: true, + locale: defaultLang, + fallbackLocale: defaultLang, + messages +}) + +const loadedLanguages = [defaultLang] + +function setI18nLanguage (lang) { + i18n.locale = lang + // request.headers['Accept-Language'] = lang + document.querySelector('html').setAttribute('lang', lang) + return lang +} + +export function loadLanguageAsync (lang = defaultLang) { + return new Promise(resolve => { + // 缓存语言设置 + storage.set('lang', lang) + if (i18n.locale !== lang) { + if (!loadedLanguages.includes(lang)) { + return import(/* webpackChunkName: "lang-[request]" */ `./lang/${lang}`).then(msg => { + const locale = msg.default + i18n.setLocaleMessage(lang, locale) + loadedLanguages.push(lang) + moment.updateLocale(locale.momentName, locale.momentLocale) + return setI18nLanguage(lang) + }) + } + return resolve(setI18nLanguage(lang)) + } + return resolve(lang) + }) +} + +export function i18nRender (key) { + return i18n.t(`${key}`) +} + +export default i18n diff --git a/Waste.WebApi/App/Page/src/locales/lang/en-US.js b/Waste.WebApi/App/Page/src/locales/lang/en-US.js new file mode 100644 index 0000000..a6f440c --- /dev/null +++ b/Waste.WebApi/App/Page/src/locales/lang/en-US.js @@ -0,0 +1,45 @@ +import antdEnUS from 'ant-design-vue/es/locale-provider/en_US' +import momentEU from 'moment/locale/eu' + +const components = { + antLocale: antdEnUS, + momentName: 'eu', + momentLocale: momentEU +} + +const locale = { + 'message': '-', + 'menu.home': 'Home', + 'menu.dashboard': 'Dashboard', + 'menu.dashboard.analysis': 'Analysis', + 'menu.dashboard.monitor': 'Monitor', + 'menu.dashboard.workplace': 'Workplace', + + 'layouts.usermenu.dialog.title': 'Message', + 'layouts.usermenu.dialog.content': 'Do you really log-out.', + + 'app.setting.pagestyle': 'Page style setting', + 'app.setting.pagestyle.light': 'Light style', + 'app.setting.pagestyle.dark': 'Dark style', + 'app.setting.pagestyle.realdark': 'RealDark style', + 'app.setting.themecolor': 'Theme Color', + 'app.setting.navigationmode': 'Navigation Mode', + 'app.setting.content-width': 'Content Width', + 'app.setting.fixedheader': 'Fixed Header', + 'app.setting.fixedsidebar': 'Fixed Sidebar', + 'app.setting.sidemenu': 'Side Menu Layout', + 'app.setting.topmenu': 'Top Menu Layout', + 'app.setting.content-width.fixed': 'Fixed', + 'app.setting.content-width.fluid': 'Fluid', + 'app.setting.othersettings': 'Other Settings', + 'app.setting.weakmode': 'Weak Mode', + 'app.setting.copy': 'Copy Setting', + 'app.setting.loading': 'Loading theme', + 'app.setting.copyinfo': 'copy success,please replace defaultSettings in src/models/setting.js', + 'app.setting.production.hint': 'Setting panel shows in development environment only, please manually modify' +} + +export default { + ...components, + ...locale +} diff --git a/Waste.WebApi/App/Page/src/locales/lang/zh-CN.js b/Waste.WebApi/App/Page/src/locales/lang/zh-CN.js new file mode 100644 index 0000000..11c2f48 --- /dev/null +++ b/Waste.WebApi/App/Page/src/locales/lang/zh-CN.js @@ -0,0 +1,22 @@ +import antd from 'ant-design-vue/es/locale-provider/zh_CN' +import momentCN from 'moment/locale/zh-cn' + +const components = { + antLocale: antd, + momentName: 'zh-cn', + momentLocale: momentCN +} + +const locale = { + 'message': '-', + 'menu.home': '主页', + 'menu.dashboard': '仪表盘', + 'menu.dashboard.analysis': '分析页', + 'menu.dashboard.monitor': '监控页', + 'menu.dashboard.workplace': '工作台' +} + +export default { + ...components, + ...locale +} diff --git a/Waste.WebApi/App/Page/src/main.js b/Waste.WebApi/App/Page/src/main.js new file mode 100644 index 0000000..5ae3ddb --- /dev/null +++ b/Waste.WebApi/App/Page/src/main.js @@ -0,0 +1,42 @@ +// with polyfills +import 'core-js/stable' +import 'regenerator-runtime/runtime' + +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import store from './store/' +import './assets/css/common.css' +import ProLayout, { PageHeaderWrapper } from '@ant-design-vue/pro-layout' +// import themePluginConfig from '../config/themePluginConfig' +// import i18n from './locales' +// mock +// WARNING: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV. +// import './mock' +// import { VueAxios } from './utils/request' +// Vue.use(VueAxios) +// import bootstrap from './core/bootstrap' +import './core/lazy_use' +import './permission' // permission control +import './utils/filter' // global filter +import './global.less' + +import http from '@/utils/request.js' +Vue.prototype.$http = http + +Vue.config.productionTip = false + + +Vue.component('pro-layout', ProLayout) +Vue.component('page-header-wrapper', PageHeaderWrapper) + +// window.umi_plugin_ant_themeVar = themePluginConfig.theme +// + +new Vue({ + router, + store, + // i18n, + // created: bootstrap, + render: h => h(App) +}).$mount('#app') diff --git a/Waste.WebApi/App/Page/src/mock/index.js b/Waste.WebApi/App/Page/src/mock/index.js new file mode 100644 index 0000000..acb735f --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/index.js @@ -0,0 +1,23 @@ +import { isIE } from '@/utils/util' + +// 判断环境不是 prod 或者 preview 是 true 时,加载 mock 服务 +if (process.env.NODE_ENV !== 'production' || process.env.VUE_APP_PREVIEW === 'true') { + if (isIE()) { + console.error('[antd-pro] ERROR: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV.') + } + // 使用同步加载依赖 + // 防止 vuex 中的 GetInfo 早于 mock 运行,导致无法 mock 请求返回结果 + console.log('[antd-pro] mock mounting') + const Mock = require('mockjs2') + require('./services/auth') + require('./services/user') + require('./services/manage') + require('./services/other') + require('./services/tagCloud') + require('./services/article') + + Mock.setup({ + timeout: 800 // setter delay time + }) + console.log('[antd-pro] mock mounted') +} diff --git a/Waste.WebApi/App/Page/src/mock/services/article.js b/Waste.WebApi/App/Page/src/mock/services/article.js new file mode 100644 index 0000000..57199ef --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/services/article.js @@ -0,0 +1,89 @@ +import Mock from 'mockjs2' +import { builder, getQueryParameters } from '../util' + +const titles = [ + 'Alipay', + 'Angular', + 'Ant Design', + 'Ant Design Pro', + 'Bootstrap', + 'React', + 'Vue', + 'Webpack' +] + +const avatar = ['https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png' +] + +const covers = [ + 'https://gw.alipayobjects.com/zos/rmsportal/uMfMFlvUuceEyPpotzlq.png', + 'https://gw.alipayobjects.com/zos/rmsportal/iZBVOIhGJiAnhplqjvZW.png', + 'https://gw.alipayobjects.com/zos/rmsportal/iXjVmWVHbCJAyqvDxdtx.png', + 'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png' +] + +const owner = [ + '付小小', + '吴加好', + '周星星', + '林东东', + '曲丽丽' +] + +const content = '段落示意:蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。' +const description = '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。' +const href = 'https://ant.design' + +const article = (options) => { + const queryParameters = getQueryParameters(options) + console.log('queryParameters', queryParameters) + if (queryParameters && !queryParameters.count) { + queryParameters.count = 5 + } + const data = [] + for (let i = 0; i < queryParameters.count; i++) { + const tmpKey = i + 1 + const num = parseInt(Math.random() * (4 + 1), 10) + data.push({ + id: tmpKey, + avatar: avatar[num], + owner: owner[num], + content: content, + star: Mock.mock('@integer(1, 999)'), + percent: Mock.mock('@integer(1, 999)'), + like: Mock.mock('@integer(1, 999)'), + message: Mock.mock('@integer(1, 999)'), + description: description, + href: href, + title: titles[ i % 8 ], + updatedAt: Mock.mock('@datetime'), + members: [ + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png', + name: '曲丽丽', + id: 'member1' + }, + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png', + name: '王昭君', + id: 'member2' + }, + { + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png', + name: '董娜娜', + id: 'member3' + } + ], + activeUser: Math.ceil(Math.random() * 100000) + 100000, + newUser: Math.ceil(Math.random() * 1000) + 1000, + cover: parseInt(i / 4, 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)] + }) + } + return builder(data) +} + +Mock.mock(/\/list\/article/, 'get', article) diff --git a/Waste.WebApi/App/Page/src/mock/services/auth.js b/Waste.WebApi/App/Page/src/mock/services/auth.js new file mode 100644 index 0000000..94be65e --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/services/auth.js @@ -0,0 +1,50 @@ +import Mock from 'mockjs2' +import { builder, getBody } from '../util' + +const username = ['admin', 'super'] +// 强硬要求 ant.design 相同密码 +// '21232f297a57a5a743894a0e4a801fc3', +const password = ['8914de686ab28dc22f30d3d8e107ff6c', '21232f297a57a5a743894a0e4a801fc3'] // admin, ant.design + +const login = (options) => { + const body = getBody(options) + console.log('mock: body', body) + if (!username.includes(body.username) || !password.includes(body.password)) { + return builder({ isLogin: true }, '账户或密码错误', 401) + } + + return builder({ + 'id': Mock.mock('@guid'), + 'name': Mock.mock('@name'), + 'username': 'admin', + 'password': '', + 'avatar': 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png', + 'status': 1, + 'telephone': '', + 'lastLoginIp': '27.154.74.117', + 'lastLoginTime': 1534837621348, + 'creatorId': 'admin', + 'createTime': 1497160610259, + 'deleted': 0, + 'roleId': 'admin', + 'lang': 'zh-CN', + 'token': '4291d7da9005377ec9aec4a71ea837f' + }, '', 200, { 'Custom-Header': Mock.mock('@guid') }) +} + +const logout = () => { + return builder({}, '[测试接口] 注销成功') +} + +const smsCaptcha = () => { + return builder({ captcha: Mock.mock('@integer(10000, 99999)') }) +} + +const twofactor = () => { + return builder({ stepCode: Mock.mock('@integer(0, 1)') }) +} + +Mock.mock(/\/auth\/login/, 'post', login) +Mock.mock(/\/auth\/logout/, 'post', logout) +Mock.mock(/\/account\/sms/, 'post', smsCaptcha) +Mock.mock(/\/auth\/2step-code/, 'post', twofactor) diff --git a/Waste.WebApi/App/Page/src/mock/services/manage.js b/Waste.WebApi/App/Page/src/mock/services/manage.js new file mode 100644 index 0000000..10181ec --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/services/manage.js @@ -0,0 +1,252 @@ +import Mock from 'mockjs2' +import { builder, getQueryParameters } from '../util' + +const totalCount = 5701 + +const serverList = (options) => { + const parameters = getQueryParameters(options) + + const result = [] + const pageNo = parseInt(parameters.pageNo) + const pageSize = parseInt(parameters.pageSize) + const totalPage = Math.ceil(totalCount / pageSize) + const key = (pageNo - 1) * pageSize + const next = (pageNo >= totalPage ? (totalCount % pageSize) : pageSize) + 1 + + for (let i = 1; i < next; i++) { + const tmpKey = key + i + result.push({ + key: tmpKey, + id: tmpKey, + no: 'No ' + tmpKey, + description: '这是一段描述', + callNo: Mock.mock('@integer(1, 999)'), + status: Mock.mock('@integer(0, 3)'), + updatedAt: Mock.mock('@datetime'), + editable: false + }) + } + + return builder({ + pageSize: pageSize, + pageNo: pageNo, + totalCount: totalCount, + totalPage: totalPage, + data: result + }) +} + +const projects = () => { + return builder({ + 'data': [{ + id: 1, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + title: 'Alipay', + description: '那是一种内在的东西, 他们到达不了,也无法触及的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 2, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + title: 'Angular', + description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 3, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + title: 'Ant Design', + description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 4, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + title: 'Ant Design Pro', + description: '那时候我只会想自己想要什么,从不想自己拥有什么', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 5, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', + title: 'Bootstrap', + description: '凛冬将至', + status: 1, + updatedAt: '2018-07-26 00:00:00' + }, + { + id: 6, + cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', + title: 'Vue', + description: '生命就像一盒巧克力,结果往往出人意料', + status: 1, + updatedAt: '2018-07-26 00:00:00' + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 6, + 'totalCount': 57 + }) +} + +const activity = () => { + return builder([{ + id: 1, + user: { + nickname: '@name', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + project: { + name: '白鹭酱油开发组', + action: '更新', + event: '番组计划' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '蓝莓酱', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/jZUIxmJycoymBprLOUbT.png' + }, + project: { + name: '白鹭酱油开发组', + action: '更新', + event: '番组计划' + }, + time: '2018-08-23 09:35:37' + }, + { + id: 1, + user: { + nickname: '@name', + avatar: '@image(64x64)' + }, + project: { + name: '白鹭酱油开发组', + action: '创建', + event: '番组计划' + }, + time: '2017-05-27 00:00:00' + }, + { + id: 1, + user: { + nickname: '曲丽丽', + avatar: '@image(64x64)' + }, + project: { + name: '高逼格设计天团', + action: '更新', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '@name', + avatar: '@image(64x64)' + }, + project: { + name: '高逼格设计天团', + action: 'created', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + }, + { + id: 1, + user: { + nickname: '曲丽丽', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + project: { + name: '高逼格设计天团', + action: 'created', + event: '六月迭代' + }, + time: '2018-08-23 14:47:00' + } + ]) +} + +const teams = () => { + return builder([{ + id: 1, + name: '科学搬砖组', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png' + }, + { + id: 2, + name: '程序员日常', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/cnrhVkzwxjPwAaCfPbdc.png' + }, + { + id: 1, + name: '设计天团', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/gaOngJwsRYRaVAuXXcmB.png' + }, + { + id: 1, + name: '中二少女团', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ubnKSIfAJTxIgXOKlciN.png' + }, + { + id: 1, + name: '骗你学计算机', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/WhxKECPNujWoWEFNdnJE.png' + } + ]) +} + +const radar = () => { + return builder([{ + item: '引用', + '个人': 70, + '团队': 30, + '部门': 40 + }, + { + item: '口碑', + '个人': 60, + '团队': 70, + '部门': 40 + }, + { + item: '产量', + '个人': 50, + '团队': 60, + '部门': 40 + }, + { + item: '贡献', + '个人': 40, + '团队': 50, + '部门': 40 + }, + { + item: '热度', + '个人': 60, + '团队': 70, + '部门': 40 + }, + { + item: '引用', + '个人': 70, + '团队': 50, + '部门': 40 + } + ]) +} + +Mock.mock(/\/service/, 'get', serverList) +Mock.mock(/\/list\/search\/projects/, 'get', projects) +Mock.mock(/\/workplace\/activity/, 'get', activity) +Mock.mock(/\/workplace\/teams/, 'get', teams) +Mock.mock(/\/workplace\/radar/, 'get', radar) diff --git a/Waste.WebApi/App/Page/src/mock/services/other.js b/Waste.WebApi/App/Page/src/mock/services/other.js new file mode 100644 index 0000000..56e2dd9 --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/services/other.js @@ -0,0 +1,973 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const orgTree = () => { + return builder([{ + 'key': 'key-01', + 'title': '研发中心', + 'icon': 'mail', + 'children': [{ + 'key': 'key-01-01', + 'title': '后端组', + 'icon': null, + 'group': true, + children: [{ + 'key': 'key-01-01-01', + 'title': 'JAVA', + 'icon': null + }, + { + 'key': 'key-01-01-02', + 'title': 'PHP', + 'icon': null + }, + { + 'key': 'key-01-01-03', + 'title': 'Golang', + 'icon': null + } + ] + }, { + 'key': 'key-01-02', + 'title': '前端组', + 'icon': null, + 'group': true, + children: [{ + 'key': 'key-01-02-01', + 'title': 'React', + 'icon': null + }, + { + 'key': 'key-01-02-02', + 'title': 'Vue', + 'icon': null + }, + { + 'key': 'key-01-02-03', + 'title': 'Angular', + 'icon': null + } + ] + }] + }, { + 'key': 'key-02', + 'title': '财务部', + 'icon': 'dollar', + 'children': [{ + 'key': 'key-02-01', + 'title': '会计核算', + 'icon': null + }, { + 'key': 'key-02-02', + 'title': '成本控制', + 'icon': null + }, { + 'key': 'key-02-03', + 'title': '内部控制', + 'icon': null, + 'children': [{ + 'key': 'key-02-03-01', + 'title': '财务制度建设', + 'icon': null + }, + { + 'key': 'key-02-03-02', + 'title': '会计核算', + 'icon': null + } + ] + }] + }]) +} + +const role = () => { + return builder({ + 'data': [{ + 'id': 'admin', + 'name': '管理员', + 'describe': '拥有所有权限', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': ['delete', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['query', 'get', 'edit', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'import'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['query', 'add', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'edit', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, + { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get'], + 'dataAccess': null + } + ] + }, + { + 'id': 'svip', + 'name': 'SVIP', + 'describe': '超级会员', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1532417744846, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'delete'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'query', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'query'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add', 'get', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + }, + { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': ['add', 'edit'], + 'dataAccess': null + }, + { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, + { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, + { + 'action': 'edit', + 'describe': '修改', + 'defaultCheck': false + } + ], + 'actionList': ['add'], + 'dataAccess': null + } + ] + }, + { + 'id': 'user', + 'name': '普通会员', + 'describe': '普通用户,只能查询', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'user', + 'permissionId': 'comment', + 'permissionName': '评论管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': ['query'], + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'marketing', + 'permissionName': '营销管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'member', + 'permissionName': '会员管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'menu', + 'permissionName': '菜单管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'actionEntitySet': [{ + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, + { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + } + ], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + + { + 'roleId': 'user', + 'permissionId': 'test', + 'permissionName': '测试权限', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + }, + { + 'roleId': 'user', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[]', + 'actionEntitySet': [], + 'actionList': null, + 'dataAccess': null + } + ] + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 1, + 'totalCount': 5 + }) +} + +const permissionNoPager = () => { + return builder([{ + 'id': 'marketing', + 'name': '营销管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': null, + 'parents': null, + 'type': null, + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'member', + 'name': '会员管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'menu', + 'name': '菜单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'import', + 'get', + 'edit' + ] + }, + { + 'id': 'order', + 'name': '订单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'permission', + 'name': '权限管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'role', + 'name': '角色管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'test', + 'name': '测试权限', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + }, + { + 'id': 'user', + 'name': '用户管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + } + ]) +} + +const permissions = () => { + return builder({ + 'data': [{ + 'id': 'marketing', + 'name': '营销管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': null, + 'parents': null, + 'type': null, + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'member', + 'name': '会员管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'menu', + 'name': '菜单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'import', + 'get', + 'edit' + ] + }, + { + 'id': 'order', + 'name': '订单管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'query', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'permission', + 'name': '权限管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'role', + 'name': '角色管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"查询"},{"action":"edit","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get', + 'edit', + 'delete' + ] + }, + { + 'id': 'test', + 'name': '测试权限', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + }, + { + 'id': 'user', + 'name': '用户管理', + 'describe': null, + 'status': 1, + 'actionData': '[{"action":"add","describe":"新增","defaultCheck":false},{"action":"get","describe":"查询","defaultCheck":false}]', + 'sptDaTypes': null, + 'optionalFields': '[]', + 'parents': null, + 'type': 'default', + 'deleted': 0, + 'actions': [ + 'add', + 'get' + ] + } + ], + 'pageSize': 10, + 'pageNo': 0, + 'totalPage': 1, + 'totalCount': 5 + }) +} + +Mock.mock(/\/org\/tree/, 'get', orgTree) +Mock.mock(/\/role/, 'get', role) +Mock.mock(/\/permission\/no-pager/, 'get', permissionNoPager) +Mock.mock(/\/permission/, 'get', permissions) diff --git a/Waste.WebApi/App/Page/src/mock/services/tagCloud.js b/Waste.WebApi/App/Page/src/mock/services/tagCloud.js new file mode 100644 index 0000000..63a2e06 --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/services/tagCloud.js @@ -0,0 +1,9 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +// +const tagCloudData = () => { + return builder([{ 'value': 9, 'name': 'AntV' }, { 'value': 8, 'name': 'F2' }, { 'value': 8, 'name': 'G2' }, { 'value': 8, 'name': 'G6' }, { 'value': 8, 'name': 'DataSet' }, { 'value': 8, 'name': '墨者学院' }, { 'value': 6, 'name': 'Analysis' }, { 'value': 6, 'name': 'Data Mining' }, { 'value': 6, 'name': 'Data Vis' }, { 'value': 6, 'name': 'Design' }, { 'value': 6, 'name': 'Grammar' }, { 'value': 6, 'name': 'Graphics' }, { 'value': 6, 'name': 'Graph' }, { 'value': 6, 'name': 'Hierarchy' }, { 'value': 6, 'name': 'Labeling' }, { 'value': 6, 'name': 'Layout' }, { 'value': 6, 'name': 'Quantitative' }, { 'value': 6, 'name': 'Relation' }, { 'value': 6, 'name': 'Statistics' }, { 'value': 6, 'name': '可视化' }, { 'value': 6, 'name': '数据' }, { 'value': 6, 'name': '数据可视化' }, { 'value': 4, 'name': 'Arc Diagram' }, { 'value': 4, 'name': 'Bar Chart' }, { 'value': 4, 'name': 'Canvas' }, { 'value': 4, 'name': 'Chart' }, { 'value': 4, 'name': 'DAG' }, { 'value': 4, 'name': 'DG' }, { 'value': 4, 'name': 'Facet' }, { 'value': 4, 'name': 'Geo' }, { 'value': 4, 'name': 'Line' }, { 'value': 4, 'name': 'MindMap' }, { 'value': 4, 'name': 'Pie' }, { 'value': 4, 'name': 'Pizza Chart' }, { 'value': 4, 'name': 'Punch Card' }, { 'value': 4, 'name': 'SVG' }, { 'value': 4, 'name': 'Sunburst' }, { 'value': 4, 'name': 'Tree' }, { 'value': 4, 'name': 'UML' }, { 'value': 3, 'name': 'Chart' }, { 'value': 3, 'name': 'View' }, { 'value': 3, 'name': 'Geom' }, { 'value': 3, 'name': 'Shape' }, { 'value': 3, 'name': 'Scale' }, { 'value': 3, 'name': 'Animate' }, { 'value': 3, 'name': 'Global' }, { 'value': 3, 'name': 'Slider' }, { 'value': 3, 'name': 'Connector' }, { 'value': 3, 'name': 'Transform' }, { 'value': 3, 'name': 'Util' }, { 'value': 3, 'name': 'DomUtil' }, { 'value': 3, 'name': 'MatrixUtil' }, { 'value': 3, 'name': 'PathUtil' }, { 'value': 3, 'name': 'G' }, { 'value': 3, 'name': '2D' }, { 'value': 3, 'name': '3D' }, { 'value': 3, 'name': 'Line' }, { 'value': 3, 'name': 'Area' }, { 'value': 3, 'name': 'Interval' }, { 'value': 3, 'name': 'Schema' }, { 'value': 3, 'name': 'Edge' }, { 'value': 3, 'name': 'Polygon' }, { 'value': 3, 'name': 'Heatmap' }, { 'value': 3, 'name': 'Render' }, { 'value': 3, 'name': 'Tooltip' }, { 'value': 3, 'name': 'Axis' }, { 'value': 3, 'name': 'Guide' }, { 'value': 3, 'name': 'Coord' }, { 'value': 3, 'name': 'Legend' }, { 'value': 3, 'name': 'Path' }, { 'value': 3, 'name': 'Helix' }, { 'value': 3, 'name': 'Theta' }, { 'value': 3, 'name': 'Rect' }, { 'value': 3, 'name': 'Polar' }, { 'value': 3, 'name': 'Dsv' }, { 'value': 3, 'name': 'Csv' }, { 'value': 3, 'name': 'Tsv' }, { 'value': 3, 'name': 'GeoJSON' }, { 'value': 3, 'name': 'TopoJSON' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Filter' }, { 'value': 3, 'name': 'Map' }, { 'value': 3, 'name': 'Pick' }, { 'value': 3, 'name': 'Rename' }, { 'value': 3, 'name': 'Reverse' }, { 'value': 3, 'name': 'sort' }, { 'value': 3, 'name': 'Subset' }, { 'value': 3, 'name': 'Partition' }, { 'value': 3, 'name': 'Imputation' }, { 'value': 3, 'name': 'Fold' }, { 'value': 3, 'name': 'Aggregate' }, { 'value': 3, 'name': 'Proportion' }, { 'value': 3, 'name': 'Histogram' }, { 'value': 3, 'name': 'Quantile' }, { 'value': 3, 'name': 'Treemap' }, { 'value': 3, 'name': 'Hexagon' }, { 'value': 3, 'name': 'Binning' }, { 'value': 3, 'name': 'kernel' }, { 'value': 3, 'name': 'Regression' }, { 'value': 3, 'name': 'Density' }, { 'value': 3, 'name': 'Sankey' }, { 'value': 3, 'name': 'Voronoi' }, { 'value': 3, 'name': 'Projection' }, { 'value': 3, 'name': 'Centroid' }, { 'value': 3, 'name': 'H5' }, { 'value': 3, 'name': 'Mobile' }, { 'value': 3, 'name': 'K线图' }, { 'value': 3, 'name': '关系图' }, { 'value': 3, 'name': '烛形图' }, { 'value': 3, 'name': '股票图' }, { 'value': 3, 'name': '直方图' }, { 'value': 3, 'name': '金字塔图' }, { 'value': 3, 'name': '分面' }, { 'value': 3, 'name': '南丁格尔玫瑰图' }, { 'value': 3, 'name': '饼图' }, { 'value': 3, 'name': '线图' }, { 'value': 3, 'name': '点图' }, { 'value': 3, 'name': '散点图' }, { 'value': 3, 'name': '子弹图' }, { 'value': 3, 'name': '柱状图' }, { 'value': 3, 'name': '仪表盘' }, { 'value': 3, 'name': '气泡图' }, { 'value': 3, 'name': '漏斗图' }, { 'value': 3, 'name': '热力图' }, { 'value': 3, 'name': '玉玦图' }, { 'value': 3, 'name': '直方图' }, { 'value': 3, 'name': '矩形树图' }, { 'value': 3, 'name': '箱形图' }, { 'value': 3, 'name': '色块图' }, { 'value': 3, 'name': '螺旋图' }, { 'value': 3, 'name': '词云' }, { 'value': 3, 'name': '词云图' }, { 'value': 3, 'name': '雷达图' }, { 'value': 3, 'name': '面积图' }, { 'value': 3, 'name': '马赛克图' }, { 'value': 3, 'name': '盒须图' }, { 'value': 3, 'name': '坐标轴' }, { 'value': 3, 'name': '' }, { 'value': 3, 'name': 'Jacques Bertin' }, { 'value': 3, 'name': 'Leland Wilkinson' }, { 'value': 3, 'name': 'William Playfair' }, { 'value': 3, 'name': '关联' }, { 'value': 3, 'name': '分布' }, { 'value': 3, 'name': '区间' }, { 'value': 3, 'name': '占比' }, { 'value': 3, 'name': '地图' }, { 'value': 3, 'name': '时间' }, { 'value': 3, 'name': '比较' }, { 'value': 3, 'name': '流程' }, { 'value': 3, 'name': '趋势' }, { 'value': 2, 'name': '亦叶' }, { 'value': 2, 'name': '再飞' }, { 'value': 2, 'name': '完白' }, { 'value': 2, 'name': '巴思' }, { 'value': 2, 'name': '张初尘' }, { 'value': 2, 'name': '御术' }, { 'value': 2, 'name': '有田' }, { 'value': 2, 'name': '沉鱼' }, { 'value': 2, 'name': '玉伯' }, { 'value': 2, 'name': '画康' }, { 'value': 2, 'name': '祯逸' }, { 'value': 2, 'name': '绝云' }, { 'value': 2, 'name': '罗宪' }, { 'value': 2, 'name': '萧庆' }, { 'value': 2, 'name': '董珊珊' }, { 'value': 2, 'name': '陆沉' }, { 'value': 2, 'name': '顾倾' }, { 'value': 2, 'name': 'Domo' }, { 'value': 2, 'name': 'GPL' }, { 'value': 2, 'name': 'PAI' }, { 'value': 2, 'name': 'SPSS' }, { 'value': 2, 'name': 'SYSTAT' }, { 'value': 2, 'name': 'Tableau' }, { 'value': 2, 'name': 'D3' }, { 'value': 2, 'name': 'Vega' }, { 'value': 2, 'name': '统计图表' }]) +} + +Mock.mock(/\/data\/antv\/tag-cloud/, 'get', tagCloudData) diff --git a/Waste.WebApi/App/Page/src/mock/services/user.js b/Waste.WebApi/App/Page/src/mock/services/user.js new file mode 100644 index 0000000..73949a3 --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/services/user.js @@ -0,0 +1,760 @@ +import Mock from 'mockjs2' +import { builder } from '../util' + +const info = (options) => { + console.log('options', options) + const userInfo = { + 'id': '4291d7da9005377ec9aec4a71ea837f', + 'name': '天野远子', + 'username': 'admin', + 'password': '', + 'avatar': '/avatar2.jpg', + 'status': 1, + 'telephone': '', + 'lastLoginIp': '27.154.74.117', + 'lastLoginTime': 1534837621348, + 'creatorId': 'admin', + 'createTime': 1497160610259, + 'merchantCode': 'TLif2btpzg079h15bk', + 'deleted': 0, + 'roleId': 'admin', + 'role': {} + } + // role + const roleObj = { + 'id': 'admin', + 'name': '管理员', + 'describe': '拥有所有权限', + 'status': 1, + 'creatorId': 'system', + 'createTime': 1497160610259, + 'deleted': 0, + 'permissions': [{ + 'roleId': 'admin', + 'permissionId': 'dashboard', + 'permissionName': '仪表盘', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'exception', + 'permissionName': '异常页面权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'result', + 'permissionName': '结果权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'profile', + 'permissionName': '详细页权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'table', + 'permissionName': '表格权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'form', + 'permissionName': '表单权限', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'order', + 'permissionName': '订单管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'permission', + 'permissionName': '权限管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'role', + 'permissionName': '角色管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'table', + 'permissionName': '桌子管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"query","defaultCheck":false,"describe":"查询"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'query', + 'describe': '查询', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }, { + 'roleId': 'admin', + 'permissionId': 'user', + 'permissionName': '用户管理', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }] + } + + roleObj.permissions.push({ + 'roleId': 'admin', + 'permissionId': 'support', + 'permissionName': '超级模块', + 'actions': '[{"action":"add","defaultCheck":false,"describe":"新增"},{"action":"import","defaultCheck":false,"describe":"导入"},{"action":"get","defaultCheck":false,"describe":"详情"},{"action":"update","defaultCheck":false,"describe":"修改"},{"action":"delete","defaultCheck":false,"describe":"删除"},{"action":"export","defaultCheck":false,"describe":"导出"}]', + 'actionEntitySet': [{ + 'action': 'add', + 'describe': '新增', + 'defaultCheck': false + }, { + 'action': 'import', + 'describe': '导入', + 'defaultCheck': false + }, { + 'action': 'get', + 'describe': '详情', + 'defaultCheck': false + }, { + 'action': 'update', + 'describe': '修改', + 'defaultCheck': false + }, { + 'action': 'delete', + 'describe': '删除', + 'defaultCheck': false + }, { + 'action': 'export', + 'describe': '导出', + 'defaultCheck': false + }], + 'actionList': null, + 'dataAccess': null + }) + + userInfo.role = roleObj + return builder(userInfo) +} + +const userNav = (options) => { + const nav = [ + // dashboard + { + 'name': 'dashboard', + 'parentId': 0, + 'id': 1, + 'meta': { + 'icon': 'dashboard', + 'title': '仪表盘', + 'show': true + }, + 'component': 'RouteView', + 'redirect': '/dashboard/workplace' + }, + { + 'name': 'workplace', + 'parentId': 1, + 'id': 7, + 'meta': { + 'title': '工作台', + 'show': true + }, + 'component': 'Workplace' + }, + { + 'name': 'monitor', + 'path': 'https://www.baidu.com/', + 'parentId': 1, + 'id': 3, + 'meta': { + 'title': '监控页(外部)', + 'target': '_blank', + 'show': true + } + }, + { + 'name': 'Analysis', + 'parentId': 1, + 'id': 2, + 'meta': { + 'title': '分析页', + 'show': true + }, + 'component': 'Analysis', + 'path': '/dashboard/analysis' + }, + + // form + { + 'name': 'form', + 'parentId': 0, + 'id': 10, + 'meta': { + 'icon': 'form', + 'title': '表单页' + }, + 'redirect': '/form/base-form', + 'component': 'PageView' + }, + { + 'name': 'basic-form', + 'parentId': 10, + 'id': 6, + 'meta': { + 'title': '基础表单' + }, + 'component': 'BasicForm' + }, + { + 'name': 'step-form', + 'parentId': 10, + 'id': 5, + 'meta': { + 'title': '分步表单' + }, + 'component': 'StepForm' + }, + { + 'name': 'advanced-form', + 'parentId': 10, + 'id': 4, + 'meta': { + 'title': '高级表单' + }, + 'component': 'AdvanceForm' + }, + + // list + { + 'name': 'list', + 'parentId': 0, + 'id': 10010, + 'meta': { + 'icon': 'table', + 'title': '列表页', + 'show': true + }, + 'redirect': '/list/table-list', + 'component': 'PageView' + }, + { + 'name': 'table-list', + 'parentId': 10010, + 'id': 10011, + 'path': '/list/table-list/:pageNo([1-9]\\d*)?', + 'meta': { + 'title': '查询表格', + 'show': true + }, + 'component': 'TableList' + }, + { + 'name': 'basic-list', + 'parentId': 10010, + 'id': 10012, + 'meta': { + 'title': '标准列表', + 'show': true + }, + 'component': 'StandardList' + }, + { + 'name': 'card', + 'parentId': 10010, + 'id': 10013, + 'meta': { + 'title': '卡片列表', + 'show': true + }, + 'component': 'CardList' + }, + { + 'name': 'search', + 'parentId': 10010, + 'id': 10014, + 'meta': { + 'title': '搜索列表', + 'show': true + }, + 'redirect': '/list/search/article', + 'component': 'SearchLayout' + }, + { + 'name': 'article', + 'parentId': 10014, + 'id': 10015, + 'meta': { + 'title': '搜索列表(文章)', + 'show': true + }, + 'component': 'SearchArticles' + }, + { + 'name': 'project', + 'parentId': 10014, + 'id': 10016, + 'meta': { + 'title': '搜索列表(项目)', + 'show': true + }, + 'component': 'SearchProjects' + }, + { + 'name': 'application', + 'parentId': 10014, + 'id': 10017, + 'meta': { + 'title': '搜索列表(应用)', + 'show': true + }, + 'component': 'SearchApplications' + }, + + // profile + { + 'name': 'profile', + 'parentId': 0, + 'id': 10018, + 'meta': { + 'title': '详情页', + 'icon': 'profile', + 'show': true + }, + 'redirect': '/profile/basic', + 'component': 'RouteView' + }, + { + 'name': 'basic', + 'parentId': 10018, + 'id': 10019, + 'meta': { + 'title': '基础详情页', + 'show': true + }, + 'component': 'ProfileBasic' + }, + { + 'name': 'advanced', + 'parentId': 10018, + 'id': 10020, + 'meta': { + 'title': '高级详情页', + 'show': true + }, + 'component': 'ProfileAdvanced' + }, + + // result + { + 'name': 'result', + 'parentId': 0, + 'id': 10021, + 'meta': { + 'title': '结果页', + 'icon': 'check-circle-o', + 'show': true + }, + 'redirect': '/result/success', + 'component': 'PageView' + }, + { + 'name': 'success', + 'parentId': 10021, + 'id': 10022, + 'meta': { + 'title': '成功', + 'hiddenHeaderContent': true, + 'show': true + }, + 'component': 'ResultSuccess' + }, + { + 'name': 'fail', + 'parentId': 10021, + 'id': 10023, + 'meta': { + 'title': '失败', + 'hiddenHeaderContent': true, + 'show': true + }, + 'component': 'ResultFail' + }, + + // Exception + { + 'name': 'exception', + 'parentId': 0, + 'id': 10024, + 'meta': { + 'title': '异常页', + 'icon': 'warning', + 'show': true + }, + 'redirect': '/exception/403', + 'component': 'RouteView' + }, + { + 'name': '403', + 'parentId': 10024, + 'id': 10025, + 'meta': { + 'title': '403', + 'show': true + }, + 'component': 'Exception403' + }, + { + 'name': '404', + 'parentId': 10024, + 'id': 10026, + 'meta': { + 'title': '404', + 'show': true + }, + 'component': 'Exception404' + }, + { + 'name': '500', + 'parentId': 10024, + 'id': 10027, + 'meta': { + 'title': '500', + 'show': true + }, + 'component': 'Exception500' + }, + + // account + { + 'name': 'account', + 'parentId': 0, + 'id': 10028, + 'meta': { + 'title': '个人页', + 'icon': 'user', + 'show': true + }, + 'redirect': '/account/center', + 'component': 'RouteView' + }, + { + 'name': 'center', + 'parentId': 10028, + 'id': 10029, + 'meta': { + 'title': '个人中心', + 'show': true + }, + 'component': 'AccountCenter' + }, + // 特殊三级菜单 + { + 'name': 'settings', + 'parentId': 10028, + 'id': 10030, + 'meta': { + 'title': '个人设置', + 'hideHeader': true, + 'hideChildren': true, + 'show': true + }, + 'redirect': '/account/settings/base', + 'component': 'AccountSettings' + }, + { + 'name': 'BaseSettings', + 'path': '/account/settings/base', + 'parentId': 10030, + 'id': 10031, + 'meta': { + 'title': '基本设置', + 'show': false + }, + 'component': 'BaseSettings' + }, + { + 'name': 'SecuritySettings', + 'path': '/account/settings/security', + 'parentId': 10030, + 'id': 10032, + 'meta': { + 'title': '安全设置', + 'show': false + }, + 'component': 'SecuritySettings' + }, + { + 'name': 'CustomSettings', + 'path': '/account/settings/custom', + 'parentId': 10030, + 'id': 10033, + 'meta': { + 'title': '个性化设置', + 'show': false + }, + 'component': 'CustomSettings' + }, + { + 'name': 'BindingSettings', + 'path': '/account/settings/binding', + 'parentId': 10030, + 'id': 10034, + 'meta': { + 'title': '账户绑定', + 'show': false + }, + 'component': 'BindingSettings' + }, + { + 'name': 'NotificationSettings', + 'path': '/account/settings/notification', + 'parentId': 10030, + 'id': 10034, + 'meta': { + 'title': '新消息通知', + 'show': false + }, + 'component': 'NotificationSettings' + } + ] + const json = builder(nav) + console.log('json', json) + return json +} + +Mock.mock(/\/api\/user\/info/, 'get', info) +Mock.mock(/\/api\/user\/nav/, 'get', userNav) diff --git a/Waste.WebApi/App/Page/src/mock/util.js b/Waste.WebApi/App/Page/src/mock/util.js new file mode 100644 index 0000000..a4be036 --- /dev/null +++ b/Waste.WebApi/App/Page/src/mock/util.js @@ -0,0 +1,38 @@ +const responseBody = { + message: '', + timestamp: 0, + result: null, + code: 0 +} + +export const builder = (data, message, code = 0, headers = {}) => { + responseBody.result = data + if (message !== undefined && message !== null) { + responseBody.message = message + } + if (code !== undefined && code !== 0) { + responseBody.code = code + responseBody._status = code + } + if (headers !== null && typeof headers === 'object' && Object.keys(headers).length > 0) { + responseBody._headers = headers + } + responseBody.timestamp = new Date().getTime() + return responseBody +} + +export const getQueryParameters = (options) => { + const url = options.url + const search = url.split('?')[1] + if (!search) { + return {} + } + return JSON.parse('{"' + decodeURIComponent(search) + .replace(/"/g, '\\"') + .replace(/&/g, '","') + .replace(/=/g, '":"') + '"}') +} + +export const getBody = (options) => { + return options.body && JSON.parse(options.body) +} diff --git a/Waste.WebApi/App/Page/src/permission.js b/Waste.WebApi/App/Page/src/permission.js new file mode 100644 index 0000000..13ceff1 --- /dev/null +++ b/Waste.WebApi/App/Page/src/permission.js @@ -0,0 +1,76 @@ +import router from './router' +import store from './store' +import storage from 'store' +import NProgress from 'nprogress' // progress bar +import '@/components/NProgress/nprogress.less' // progress bar custom style +import notification from 'ant-design-vue/es/notification' +import { setDocumentTitle, domTitle } from '@/utils/domUtil' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import { i18nRender } from '@/locales' + +NProgress.configure({ showSpinner: false }) // NProgress Configuration + +const whiteList = ['login', 'register', 'registerResult'] // no redirect whitelist +const loginRoutePath = '/user/login' +const defaultRoutePath = '/dashboard/workplace' + +router.beforeEach((to, from, next) => { + NProgress.start() // start progress bar + to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${i18nRender(to.meta.title)} - ${domTitle}`)) + /* has token */ + console.log(storage) + if (storage.get(ACCESS_TOKEN)) { + if (to.path === loginRoutePath) { + next({ path: defaultRoutePath }) + NProgress.done() + } else { + // check login user.roles is null + if (store.getters.roles.length === 0) { + // request login userInfo + store + .dispatch('GetInfo') + .then(res => { + // generate dynamic router + store.dispatch('GenerateRoutes', { res }).then(() => { + // 根据roles权限生成可访问的路由表 + // 动态添加可访问路由表 + router.addRoutes(store.getters.addRouters) + // 请求带有 redirect 重定向时,登录自动重定向到该地址 + const redirect = decodeURIComponent(from.query.redirect || to.path) + if (to.path === redirect) { + // set the replace: true so the navigation will not leave a history record + next({ ...to, replace: true }) + } else { + // 跳转到目的路由 + next({ path: redirect }) + } + }) + }) + .catch(() => { + notification.error({ + message: '错误', + description: '请求用户信息失败,请重试' + }) + // 失败时,获取用户信息失败时,调用登出,来清空历史保留信息 + // store.dispatch('Logout').then(() => { + // next({ path: loginRoutePath, query: { redirect: to.fullPath } }) + // }) + }) + } else { + next() + } + } + } else { + if (whiteList.includes(to.name)) { + // 在免登录白名单,直接进入 + next() + } else { + next({ path: loginRoutePath, query: { redirect: to.fullPath } }) + NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it + } + } +}) + +router.afterEach(() => { + NProgress.done() // finish progress bar +}) diff --git a/Waste.WebApi/App/Page/src/router/README.md b/Waste.WebApi/App/Page/src/router/README.md new file mode 100644 index 0000000..48b7520 --- /dev/null +++ b/Waste.WebApi/App/Page/src/router/README.md @@ -0,0 +1,134 @@ +路由/菜单说明 +==== + + +格式和说明 +---- + +```ecmascript 6 +const routerObject = { + redirect: noredirect, + name: 'router-name', + hidden: true, + meta: { + title: 'title', + icon: 'a-icon', + target: '_blank|_self|_top|_parent', + keepAlive: true, + hiddenHeaderContent: true, + } +} +``` + + + +`{ Route }` 对象 + +| 参数 | 说明 | 类型 | 默认值 | +| -------- | ----------------------------------------- | ------- | ------ | +| hidden | 控制路由是否显示在 sidebar | boolean | false | +| redirect | 重定向地址, 访问这个路由时,自定进行重定向 | string | - | +| name | 路由名称, 必须设置,且不能重名 | string | - | +| meta | 路由元信息(路由附带扩展信息) | object | {} | +| hideChildrenInMenu | 强制菜单显示为Item而不是SubItem(配合 meta.hidden) | boolean | - | + + +`{ Meta }` 路由元信息对象 + +| 参数 | 说明 | 类型 | 默认值 | +| ------------------- | ------------------------------------------------------------ | ------- | ------ | +| title | 路由标题, 用于显示面包屑, 页面标题 *推荐设置 | string | - | +| icon | 路由在 menu 上显示的图标 | [string,svg] | - | +| keepAlive | 缓存该路由 | boolean | false | +| target | 菜单链接跳转目标(参考 html a 标记) | string | - | +| hidden | 配合`hideChildrenInMenu`使用,用于隐藏菜单时,提供递归到父菜单显示 选中菜单项_(可参考 个人页 配置方式)_ | boolean | false | +| hiddenHeaderContent | *特殊 隐藏 [PageHeader](https://github.com/vueComponent/ant-design-vue-pro/blob/master/src/components/PageHeader/PageHeader.vue#L6) 组件中的页面带的 面包屑和页面标题栏 | boolean | false | +| permission | 与项目提供的权限拦截匹配的权限,如果不匹配,则会被禁止访问该路由页面 | array | [] | + +> 路由自定义 `Icon` 请引入自定义 `svg` Icon 文件,然后传递给路由的 `meta.icon` 参数即可 + +路由构建例子方案1 + +路由例子 +---- + +```ecmascript 6 +const asyncRouterMap = [ + { + path: '/', + name: 'index', + component: BasicLayout, + meta: { title: '首页' }, + redirect: '/dashboard/analysis', + children: [ + { + path: '/dashboard', + component: RouteView, + name: 'dashboard', + redirect: '/dashboard/workplace', + meta: {title: '仪表盘', icon: 'dashboard', permission: ['dashboard']}, + children: [ + { + path: '/dashboard/analysis', + name: 'Analysis', + component: () => import('@/views/dashboard/Analysis'), + meta: {title: '分析页', permission: ['dashboard']} + }, + { + path: '/dashboard/monitor', + name: 'Monitor', + hidden: true, + component: () => import('@/views/dashboard/Monitor'), + meta: {title: '监控页', permission: ['dashboard']} + }, + { + path: '/dashboard/workplace', + name: 'Workplace', + component: () => import('@/views/dashboard/Workplace'), + meta: {title: '工作台', permission: ['dashboard']} + } + ] + }, + + // result + { + path: '/result', + name: 'result', + component: PageView, + redirect: '/result/success', + meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] }, + children: [ + { + path: '/result/success', + name: 'ResultSuccess', + component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), + // 该页面隐藏面包屑和页面标题栏 + meta: { title: '成功', hiddenHeaderContent: true, permission: [ 'result' ] } + }, + { + path: '/result/fail', + name: 'ResultFail', + component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), + // 该页面隐藏面包屑和页面标题栏 + meta: { title: '失败', hiddenHeaderContent: true, permission: [ 'result' ] } + } + ] + }, + ... + ] + }, +] +``` + +> 1. 请注意 `component: () => import('..') ` 方式引入路由的页面组件为 懒加载模式。具体可以看 [Vue 官方文档](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) +> 2. 增加新的路由应该增加在 '/' (index) 路由的 `children` 内 +> 3. 子路由的父级路由必须有 `router-view` 才能让子路由渲染出来,请仔细查阅 vue-router 文档 +> 4. `permission` 可以进行自定义修改,只需要对这个模块进行自定义修改即可 [src/store/modules/permission.js#L10](https://github.com/vueComponent/ant-design-vue-pro/blob/master/src/store/modules/permission.js#L10) + + +附权限路由结构: + +![权限结构](https://static-2.loacg.com/open/static/github/permissions.png) + + +第二种前端路由由后端动态生成的设计,可以前往官网文档 https://pro.antdv.com/docs/authority-management 参考 diff --git a/Waste.WebApi/App/Page/src/router/generator-routers.js b/Waste.WebApi/App/Page/src/router/generator-routers.js new file mode 100644 index 0000000..7041714 --- /dev/null +++ b/Waste.WebApi/App/Page/src/router/generator-routers.js @@ -0,0 +1,229 @@ +// eslint-disable-next-line +import { BasicLayout, BlankLayout, PageView, RouteView } from '@/layouts' +// 前端路由表 +// const constantRouterComponents = { +// // 基础页面 layout 必须引入 +// BasicLayout: BasicLayout, +// BlankLayout: BlankLayout, +// RouteView: RouteView, +// PageView: PageView, +// '403': () => import(/* webpackChunkName: "error" */ '@/views/exception/403'), +// '404': () => import(/* webpackChunkName: "error" */ '@/views/exception/404'), +// '500': () => import(/* webpackChunkName: "error" */ '@/views/exception/500'), + +// // 首页 +// 'home': () => import('@/views/home/index'), // 首页 + +// // 设备 +// 'devicelist': () => import('@/views/device/list'), // 设备列表 +// 'resultlist': () => import('@/views/device/result'), // 测量记录 + +// // 公众号设置 +// 'officiallist': () => import('@/views/official/list'), // 公众号管理 +// 'officialtemplate': () => import('@/views/official/template'), // 模板管理 + +// // 营销管理 +// 'markettag': () => import('@/views/market/tag'), // 标签管理 +// 'marketmessage': () => import('@/views/market/message'), // 消息群发 + +// // 用户管理 +// 'reguserlist': () => import('@/views/reguser/list'), // 公众号管理 +// 'reguserbind': () => import('@/views/reguser/bind'), // 模板管理 + +// // 客户管理 +// 'business': () => import('@/views/business/index'), // 客户管理 + +// // 数据分析 +// 'reporttag': () => import('@/views/report/tag'), // 标签数据分析 +// 'reportuser': () => import('@/views/report/user'), // 用户画像 +// 'reporthealth': () => import('@/views/report/health'), // 健康数据分析 +// 'reportmeasure': () => import('@/views/report/measure'), // 测量统计 + +// // 个人中心 +// 'userbase': () => import('@/views/user/base'), // 基本信息 +// 'userpassword': () => import('@/views/user/password'), // 修改密码 +// 'userchat': () => import('@/views/user/chat'), // 在线客服 + +// // 你需要动态引入的页面组件 +// 'Workplace': () => import('@/views/dashboard/Workplace'), +// 'Analysis': () => import('@/views/dashboard/Analysis'), + +// // form +// 'BasicForm': () => import('@/views/form/basicForm'), +// 'StepForm': () => import('@/views/form/stepForm/StepForm'), +// 'AdvanceForm': () => import('@/views/form/advancedForm/AdvancedForm'), + +// // list +// 'TableList': () => import('@/views/list/TableList'), +// 'StandardList': () => import('@/views/list/BasicList'), +// 'CardList': () => import('@/views/list/CardList'), +// 'SearchLayout': () => import('@/views/list/search/SearchLayout'), +// 'SearchArticles': () => import('@/views/list/search/Article'), +// 'SearchProjects': () => import('@/views/list/search/Projects'), +// 'SearchApplications': () => import('@/views/list/search/Applications'), +// 'ProfileBasic': () => import('@/views/profile/basic'), +// 'ProfileAdvanced': () => import('@/views/profile/advanced/Advanced'), + +// // result +// 'ResultSuccess': () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), +// 'ResultFail': () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), + +// // exception +// 'Exception403': () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'), +// 'Exception404': () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'), +// 'Exception500': () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'), + +// // account +// 'AccountCenter': () => import('@/views/account/center'), +// 'AccountSettings': () => import('@/views/account/settings/Index'), +// 'BaseSettings': () => import('@/views/account/settings/BaseSetting'), +// 'SecuritySettings': () => import('@/views/account/settings/Security'), +// 'CustomSettings': () => import('@/views/account/settings/Custom'), +// 'BindingSettings': () => import('@/views/account/settings/Binding'), +// 'NotificationSettings': () => import('@/views/account/settings/Notification') + +// // 'TestWork': () => import(/* webpackChunkName: "TestWork" */ '@/views/dashboard/TestWork') +// } + +// 前端未找到页面路由(固定不用改) +const notFoundRouter = { + path: '*', redirect: '/404', hidden: true +} + +// 根级菜单 +const rootRouter = { + key: '', + name: 'index', + path: '/', + component: 'BasicLayout', + redirect: '/home', + meta: { + title: '首页' + }, + children: [] +} + +/** + * 动态生成菜单 + * @param token + * @returns {Promise} + */ +// export const generatorDynamicRouter = (token) => { +// return new Promise((resolve, reject) => { +// loginService.getCurrentUserNav(token).then(res => { +// console.log('res', res) +// const { result } = res +// const menuNav = [] +// const childrenNav = [] +// // 后端数据, 根级树数组, 根级 PID +// listToTree(result, childrenNav, 0) +// rootRouter.children = childrenNav +// menuNav.push(rootRouter) +// console.log('menuNav', menuNav) +// const routers = generator(menuNav) +// routers.push(notFoundRouter) +// console.log('routers', routers) +// resolve(routers) +// }).catch(err => { +// reject(err) +// }) +// }) +// } + +export const generatorDynamicRouter1 = (res) => { + return new Promise((resolve) => { + console.log('res', res) + const menuNav = [] + const childrenNav = [] + // 后端数据, 根级树数组, 根级 PID + listToTree(res.res, childrenNav, '00000000-0000-0000-0000-000000000000') + rootRouter.children = childrenNav + menuNav.push(rootRouter) + // console.log('menuNav', menuNav) + const routers = generator(menuNav) + routers.push(notFoundRouter) + // console.log('routers', routers) + resolve(routers) + }) +} + +/** + * 格式化树形结构数据 生成 vue-router 层级路由表 + * + * @param routerMap + * @param parent + * @returns {*} + */ +export const generator = (routerMap, parent) => { + return routerMap.map(item => { + const { title, show, hideChildren, hiddenHeaderContent, target, icon } = item.meta || {} + var comp = item.component === 'BasicLayout' ? BasicLayout : (item.component === 'BlankLayout' ? BlankLayout : (item.component === 'RouteView' ? RouteView : (item.component === 'PageView' ? PageView : ''))) + const currentRouter = { + // 如果路由设置了 path,则作为默认 path,否则 路由地址 动态拼接生成如 /dashboard/workplace + path: item.path || `${parent && parent.path || ''}/${item.key}`, + // 路由名称,建议唯一 + name: item.name || item.key || '', + // 该路由对应页面的 组件 :方案1 + // component: constantRouterComponents[item.component || item.key], + // 该路由对应页面的 组件 :方案2 (动态加载) + component: comp !== '' ? comp : () => import(`@/views/${item.component}`), + + // meta: 页面标题, 菜单图标, 页面权限(供指令权限用,可去掉) + meta: { + title: title, + icon: icon || undefined, + hiddenHeaderContent: hiddenHeaderContent, + target: target, + permission: item.name + } + } + // 是否设置了隐藏菜单 + if (show === false) { + currentRouter.hidden = true + } + // 是否设置了隐藏子菜单 + if (hideChildren) { + currentRouter.hideChildrenInMenu = true + } + // 为了防止出现后端返回结果不规范,处理有可能出现拼接出两个 反斜杠 + if (!currentRouter.path.startsWith('http')) { + currentRouter.path = currentRouter.path.replace('//', '/') + } + // 重定向 + item.redirect && (currentRouter.redirect = item.redirect) + // 是否有子菜单,并递归处理 + if (item.children && item.children.length > 0) { + // Recursion + currentRouter.children = generator(item.children, currentRouter) + } + return currentRouter + }) +} + +/** + * 数组转树形结构 + * @param list 源数组 + * @param tree 树 + * @param parentId 父ID + */ +const listToTree = (list, tree, parentId) => { + list.forEach(item => { + // 判断是否为父级菜单 + if (item.parentid === parentId) { + const child = { + ...item, + meta: item.meta || {}, + key: item.key || item.name, + children: item.children + } + // 迭代 list, 找到当前菜单相符合的所有子菜单 + listToTree(list, child.children, item.key) + // 删掉不存在 children 值的属性 + if (child.children.length <= 0) { + delete child.children + } + // 加入到树中 + tree.push(child) + } + }) +} diff --git a/Waste.WebApi/App/Page/src/router/index.js b/Waste.WebApi/App/Page/src/router/index.js new file mode 100644 index 0000000..afda622 --- /dev/null +++ b/Waste.WebApi/App/Page/src/router/index.js @@ -0,0 +1,17 @@ +import Vue from 'vue' +import Router from 'vue-router' +import { constantRouterMap } from '@/config/router.config' + +// hack router push callback +const originalPush = Router.prototype.push +Router.prototype.push = function push (location, onResolve, onReject) { + if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) + return originalPush.call(this, location).catch(err => err) +} + +Vue.use(Router) + +export default new Router({ + mode: 'history', + routes: constantRouterMap +}) diff --git a/Waste.WebApi/App/Page/src/static/data.json b/Waste.WebApi/App/Page/src/static/data.json new file mode 100644 index 0000000..e56361d --- /dev/null +++ b/Waste.WebApi/App/Page/src/static/data.json @@ -0,0 +1,617 @@ +{ + "status":"0", + "data":[ + { + "tagname": "偏瘦体型", + "status":0, + "id": "1", + "appid": "gh_52faf1f33d63", + "openid": "", + "oldopenid": "", + "fansid": "oqmUFwreYHw54SC7RZBT1LgorzlI", + "subscribe": 1, + "nickname": "张锳BODY-SHOW1913", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJMB74hJ0VbvXLpKgVTwZwQGU6DVDzrpkPQwTLc4liaJEHk5ia6ic3U2H5zH5oXicZ50Jyia72ZjjfdKNQ/132", + "rolename":"管理员", + "country": "中国", + "province": "四川", + "city": "成都", + "Desc": "陕西西安", + "TelPhone": "15538205802", + "language": "", + "subscribe_time": "2020-09-08 17:44:54", + "createtime": "1607011199000", + "height": 168.00, + "weight": 74.00, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 27.97, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.20, + "cmi": 0.0, + "equname": "杨晓彤1577", + "agent": "2", + "BusinessName": "13590959084", + "PublicName": "皮阿诺家居", + "type": "3,1", + "title": "订阅模板消息", + "template_id": "fys_SyDiMsh-RLrBcMvvz0lnyuYUIPsv_WFwhORaoLg", + "primary_industry": "", + "deputy_industry": "", + "content": "{{content.DATA}}", + "example": "", + "businessid": "25666719228445696", + "RealName":"张芮歌", + "bindcount": 4, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "age": 33, + "height": 176, + "weight": 77.00, + "tagname": "标准体型", + "status":0, + "id": "2", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "fansid": "oqmUFwtEZh4zeh8PDUS1Ium0-kJM", + "subscribe": -2, + "nickname": "晋", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/3h9S276aGulT7grsuuWHSMUk2Jcnib1dhThLrN9jrGyFnggTNtnic0tl9HV3nLaloDTnwPM0f7ENXyCOGUfLz0HxqvGGDuCy5j/132", + "sex": 1, + "rolename":"成员", + "TelPhone": "18039968888", + "country": "中国", + "province": "广东", + "city": "广州", + "language": "", + "Desc": "演示用", + "equname": "戴秀杰1726", + "subscribe_time": "2020-09-11 18:06:56", + "createtime": "2020-09-11 17:57:30", + "height": 169.00, + "weight": 66.21, + "imp": 0.0, + "type": "3,1", + "fat_r": 32.60, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 23.20, + "cmi": 0.0, + "agent": "2", + "title": "收益到账通知", + "template_id": "U-oj0KAg_3vCAhXccSTtX0yYb_eiYDDcFmDwDJRwTdg", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n收益金额:{{keyword1.DATA}}\n收益来源:{{keyword2.DATA}}\n到账时间:{{keyword3.DATA}}\n{{remark.DATA}}", + "example": "收益到账通知:\r\n收益金额:220.30元\r\n收益来源:荣事达旗舰店\r\n到账时间:2014年7月21日 18:36\r\n您的收益已到账。", + "businessid": "25666719228445696", + "RealName":"张祯演示用", + "bindcount": 3, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "TelPhone": "13938211985", + "Desc": "默认内置账户(勿动)", + "tagname": "过胖体型", + "status":1, + "id": "3", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "equname": "戴秀杰1726", + "fansid": "oqmUFwthWcnHIDGEimoAqDEsGqaU", + "subscribe": 1, + "nickname": "靖王書院", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJm9bSVHv12UxDKAXfZFKookosQ7XLjOKy8dheHxSVQPwKfnhhfKHuJ4zeKxNH2F58H4TBz2W3IicumKh7xF8QSo/132", + "rolename":"普通管理员", + "country": "中国", + "province": "山西", + "city": "太原", + "language": "", + "subscribe_time": "2020-09-10 22:25:49", + "createtime": "2020-09-10 22:25:31", + "height": 168.00, + "weight": 75.20, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 28.01, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.60, + "cmi": 0.0, + "agent": "1", + "title": "审核通过提醒", + "template_id": "trZU_gpHR3ufKE-XdSG1xNxwkTbyiBHg_ZFAtYZGDfM", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n审核状态:{{keyword1.DATA}}\n审核时间:{{keyword2.DATA}}\n{{remark.DATA}}", + "example": "你好,你提交的资料已通过审核。\r\n审核状态:通过审核\r\n审核时间:2017年10月2日 18:00:20\r\n你的维泽无线已经可以正常使用了。", + "businessid": "25666719228445696", + "RealName":"北京张小姐", + "bindcount": 2, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "TelPhone": "13938211985", + "Desc": "默认内置账户(勿动)", + "tagname": "肥胖人群", + "status":2, + "id": "3", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "equname": "戴秀杰1726", + "fansid": "oqmUFwthWcnHIDGEimoAqDEsGqaU", + "subscribe": 1, + "nickname": "靖王書院", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJm9bSVHv12UxDKAXfZFKookosQ7XLjOKy8dheHxSVQPwKfnhhfKHuJ4zeKxNH2F58H4TBz2W3IicumKh7xF8QSo/132", + "rolename":"普通管理员", + "country": "中国", + "province": "山西", + "city": "太原", + "language": "", + "subscribe_time": "2020-09-10 22:25:49", + "createtime": "2020-09-10 22:25:31", + "height": 168.00, + "weight": 75.20, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 28.01, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.60, + "cmi": 0.0, + "agent": "1", + "title": "审核通过提醒", + "template_id": "trZU_gpHR3ufKE-XdSG1xNxwkTbyiBHg_ZFAtYZGDfM", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n审核状态:{{keyword1.DATA}}\n审核时间:{{keyword2.DATA}}\n{{remark.DATA}}", + "example": "你好,你提交的资料已通过审核。\r\n审核状态:通过审核\r\n审核时间:2017年10月2日 18:00:20\r\n你的维泽无线已经可以正常使用了。", + "businessid": "25666719228445696", + "RealName":"北京张小姐", + "bindcount": 2, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "TelPhone": "13938211985", + "Desc": "默认内置账户(勿动)", + "tagname": "微胖人群", + "status":3, + "id": "3", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "equname": "戴秀杰1726", + "fansid": "oqmUFwthWcnHIDGEimoAqDEsGqaU", + "subscribe": 1, + "nickname": "靖王書院", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJm9bSVHv12UxDKAXfZFKookosQ7XLjOKy8dheHxSVQPwKfnhhfKHuJ4zeKxNH2F58H4TBz2W3IicumKh7xF8QSo/132", + "rolename":"普通管理员", + "country": "中国", + "province": "山西", + "city": "太原", + "language": "", + "subscribe_time": "2020-09-10 22:25:49", + "createtime": "2020-09-10 22:25:31", + "height": 168.00, + "weight": 75.20, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 28.01, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.60, + "cmi": 0.0, + "agent": "1", + "title": "审核通过提醒", + "template_id": "trZU_gpHR3ufKE-XdSG1xNxwkTbyiBHg_ZFAtYZGDfM", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n审核状态:{{keyword1.DATA}}\n审核时间:{{keyword2.DATA}}\n{{remark.DATA}}", + "example": "你好,你提交的资料已通过审核。\r\n审核状态:通过审核\r\n审核时间:2017年10月2日 18:00:20\r\n你的维泽无线已经可以正常使用了。", + "businessid": "25666719228445696", + "RealName":"北京张小姐", + "bindcount": 2, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "TelPhone": "13938211985", + "Desc": "默认内置账户(勿动)", + "tagname": "标准人群", + "status":1, + "id": "3", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "equname": "戴秀杰1726", + "fansid": "oqmUFwthWcnHIDGEimoAqDEsGqaU", + "subscribe": 1, + "nickname": "靖王書院", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJm9bSVHv12UxDKAXfZFKookosQ7XLjOKy8dheHxSVQPwKfnhhfKHuJ4zeKxNH2F58H4TBz2W3IicumKh7xF8QSo/132", + "rolename":"普通管理员", + "country": "中国", + "province": "山西", + "city": "太原", + "language": "", + "subscribe_time": "2020-09-10 22:25:49", + "createtime": "2020-09-10 22:25:31", + "height": 168.00, + "weight": 75.20, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 28.01, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.60, + "cmi": 0.0, + "agent": "1", + "title": "审核通过提醒", + "template_id": "trZU_gpHR3ufKE-XdSG1xNxwkTbyiBHg_ZFAtYZGDfM", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n审核状态:{{keyword1.DATA}}\n审核时间:{{keyword2.DATA}}\n{{remark.DATA}}", + "example": "你好,你提交的资料已通过审核。\r\n审核状态:通过审核\r\n审核时间:2017年10月2日 18:00:20\r\n你的维泽无线已经可以正常使用了。", + "businessid": "25666719228445696", + "RealName":"北京张小姐", + "bindcount": 2, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "TelPhone": "13938211985", + "Desc": "默认内置账户(勿动)", + "tagname": "偏瘦人群", + "status":3, + "id": "3", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "equname": "戴秀杰1726", + "fansid": "oqmUFwthWcnHIDGEimoAqDEsGqaU", + "subscribe": 1, + "nickname": "靖王書院", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJm9bSVHv12UxDKAXfZFKookosQ7XLjOKy8dheHxSVQPwKfnhhfKHuJ4zeKxNH2F58H4TBz2W3IicumKh7xF8QSo/132", + "rolename":"普通管理员", + "country": "中国", + "province": "山西", + "city": "太原", + "language": "", + "subscribe_time": "2020-09-10 22:25:49", + "createtime": "2020-09-10 22:25:31", + "height": 168.00, + "weight": 75.20, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 28.01, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.60, + "cmi": 0.0, + "agent": "1", + "title": "审核通过提醒", + "template_id": "trZU_gpHR3ufKE-XdSG1xNxwkTbyiBHg_ZFAtYZGDfM", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n审核状态:{{keyword1.DATA}}\n审核时间:{{keyword2.DATA}}\n{{remark.DATA}}", + "example": "你好,你提交的资料已通过审核。\r\n审核状态:通过审核\r\n审核时间:2017年10月2日 18:00:20\r\n你的维泽无线已经可以正常使用了。", + "businessid": "25666719228445696", + "RealName":"北京张小姐", + "bindcount": 2, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "TelPhone": "13938211985", + "Desc": "默认内置账户(勿动)", + "tagname": "三高风险", + "status":0, + "id": "3", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "equname": "戴秀杰1726", + "fansid": "oqmUFwthWcnHIDGEimoAqDEsGqaU", + "subscribe": 1, + "nickname": "靖王書院", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJm9bSVHv12UxDKAXfZFKookosQ7XLjOKy8dheHxSVQPwKfnhhfKHuJ4zeKxNH2F58H4TBz2W3IicumKh7xF8QSo/132", + "rolename":"普通管理员", + "country": "中国", + "province": "山西", + "city": "太原", + "language": "", + "subscribe_time": "2020-09-10 22:25:49", + "createtime": "2020-09-10 22:25:31", + "height": 168.00, + "weight": 75.20, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 28.01, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.60, + "cmi": 0.0, + "agent": "1", + "title": "审核通过提醒", + "template_id": "trZU_gpHR3ufKE-XdSG1xNxwkTbyiBHg_ZFAtYZGDfM", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n审核状态:{{keyword1.DATA}}\n审核时间:{{keyword2.DATA}}\n{{remark.DATA}}", + "example": "你好,你提交的资料已通过审核。\r\n审核状态:通过审核\r\n审核时间:2017年10月2日 18:00:20\r\n你的维泽无线已经可以正常使用了。", + "businessid": "25666719228445696", + "RealName":"北京张小姐", + "bindcount": 2, + "Address":"陕西西安" + }, + { + "PublicName": "穗优生活", + "TelPhone": "13938211985", + "Desc": "默认内置账户(勿动)", + "tagname": "特别关注", + "status":2, + "id": "3", + "appid": "gh_795c8be58431", + "openid": "", + "oldopenid": "", + "equname": "戴秀杰1726", + "fansid": "oqmUFwthWcnHIDGEimoAqDEsGqaU", + "subscribe": 1, + "nickname": "靖王書院", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJm9bSVHv12UxDKAXfZFKookosQ7XLjOKy8dheHxSVQPwKfnhhfKHuJ4zeKxNH2F58H4TBz2W3IicumKh7xF8QSo/132", + "rolename":"普通管理员", + "country": "中国", + "province": "山西", + "city": "太原", + "language": "", + "subscribe_time": "2020-09-10 22:25:49", + "createtime": "2020-09-10 22:25:31", + "height": 168.00, + "weight": 75.20, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 28.01, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.60, + "cmi": 0.0, + "agent": "1", + "title": "审核通过提醒", + "template_id": "trZU_gpHR3ufKE-XdSG1xNxwkTbyiBHg_ZFAtYZGDfM", + "primary_industry": "IT科技", + "deputy_industry": "互联网|电子商务", + "content": "{{first.DATA}}\n审核状态:{{keyword1.DATA}}\n审核时间:{{keyword2.DATA}}\n{{remark.DATA}}", + "example": "你好,你提交的资料已通过审核。\r\n审核状态:通过审核\r\n审核时间:2017年10月2日 18:00:20\r\n你的维泽无线已经可以正常使用了。", + "businessid": "25666719228445696", + "RealName":"北京张小姐", + "bindcount": 2, + "Address":"陕西西安" + }, + { + "tagname": "偏瘦体型", + "status":0, + "id": "1", + "appid": "gh_52faf1f33d63", + "openid": "", + "oldopenid": "", + "fansid": "oqmUFwreYHw54SC7RZBT1LgorzlI", + "subscribe": 1, + "nickname": "张锳BODY-SHOW1913", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJMB74hJ0VbvXLpKgVTwZwQGU6DVDzrpkPQwTLc4liaJEHk5ia6ic3U2H5zH5oXicZ50Jyia72ZjjfdKNQ/132", + "rolename":"管理员", + "country": "中国", + "province": "四川", + "city": "成都", + "Desc": "陕西西安", + "TelPhone": "15538205802", + "language": "", + "subscribe_time": "2020-09-08 17:44:54", + "createtime": "1607011199000", + "height": 168.00, + "weight": 74.00, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 27.97, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.20, + "cmi": 0.0, + "equname": "杨晓彤1577", + "agent": "2", + "BusinessName": "13590959084", + "PublicName": "皮阿诺家居", + "type": "3,1", + "title": "订阅模板消息", + "template_id": "fys_SyDiMsh-RLrBcMvvz0lnyuYUIPsv_WFwhORaoLg", + "primary_industry": "", + "deputy_industry": "", + "content": "{{content.DATA}}", + "example": "", + "businessid": "25666719228445696", + "RealName":"张芮歌", + "bindcount": 4, + "Address":"陕西西安" + }, + { + "tagname": "偏瘦体型", + "status":0, + "id": "1", + "appid": "gh_52faf1f33d63", + "openid": "", + "oldopenid": "", + "fansid": "oqmUFwreYHw54SC7RZBT1LgorzlI", + "subscribe": 1, + "nickname": "张锳BODY-SHOW1913", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJMB74hJ0VbvXLpKgVTwZwQGU6DVDzrpkPQwTLc4liaJEHk5ia6ic3U2H5zH5oXicZ50Jyia72ZjjfdKNQ/132", + "rolename":"管理员", + "country": "中国", + "province": "四川", + "city": "成都", + "Desc": "陕西西安", + "TelPhone": "15538205802", + "language": "", + "subscribe_time": "2020-09-08 17:44:54", + "createtime": "1607011199000", + "height": 168.00, + "weight": 74.00, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 27.97, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.20, + "cmi": 0.0, + "equname": "杨晓彤1577", + "agent": "2", + "BusinessName": "13590959084", + "PublicName": "皮阿诺家居", + "type": "3,1", + "title": "订阅模板消息", + "template_id": "fys_SyDiMsh-RLrBcMvvz0lnyuYUIPsv_WFwhORaoLg", + "primary_industry": "", + "deputy_industry": "", + "content": "{{content.DATA}}", + "example": "", + "businessid": "25666719228445696", + "RealName":"张芮歌", + "bindcount": 4, + "Address":"陕西西安" + }, + { + "tagname": "偏瘦体型", + "status":0, + "id": "1", + "appid": "gh_52faf1f33d63", + "openid": "", + "oldopenid": "", + "fansid": "oqmUFwreYHw54SC7RZBT1LgorzlI", + "subscribe": 1, + "nickname": "张锳BODY-SHOW1913", + "headimgurl": "http://thirdwx.qlogo.cn/mmopen/sTJptKvBQLJMB74hJ0VbvXLpKgVTwZwQGU6DVDzrpkPQwTLc4liaJEHk5ia6ic3U2H5zH5oXicZ50Jyia72ZjjfdKNQ/132", + "rolename":"管理员", + "country": "中国", + "province": "四川", + "city": "成都", + "Desc": "陕西西安", + "TelPhone": "15538205802", + "language": "", + "subscribe_time": "2020-09-08 17:44:54", + "createtime": "1516703495241", + "height": 168.00, + "weight": 74.00, + "imp": 0.0, + "age": 47, + "sex": 1, + "fat_r": 27.97, + "muscle": 0.0, + "water": 0.0, + "bone": 0.0, + "kcal": 0.0, + "fat_w": 0.0, + "visceral": 0.0, + "protein": 0.0, + "bodyage": 0.0, + "bmi": 26.20, + "cmi": 0.0, + "equname": "杨晓彤1577", + "agent": "2", + "BusinessName": "13590959084", + "PublicName": "皮阿诺家居", + "type": "3,1", + "title": "订阅模板消息", + "template_id": "fys_SyDiMsh-RLrBcMvvz0lnyuYUIPsv_WFwhORaoLg", + "primary_industry": "", + "deputy_industry": "", + "content": "{{content.DATA}}", + "example": "", + "businessid": "25666719228445696", + "RealName":"张芮歌", + "bindcount": 4, + "Address":"陕西西安" + } + + ] +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/static/tag.json b/Waste.WebApi/App/Page/src/static/tag.json new file mode 100644 index 0000000..f9dea58 --- /dev/null +++ b/Waste.WebApi/App/Page/src/static/tag.json @@ -0,0 +1,49 @@ +{ + "status": "0", + "data": [{ + "key": "1", + "name": "偏瘦体型" + }, { + "key": "2", + "name": "标准体型" + }, { + "key": "3", + "name": "过胖体型" + }, + { + "key": "4", + "name": "肥胖人群" + }, + { + "key": "5", + "name": "微胖人群" + }, + { + "key": "6", + "name": "标准人群" + }, + { + "key": "7", + "name": "偏瘦人群" + }, + { + "key": "8", + "name": "三高风险" + }, + { + "key": "9", + "name": "特别关注" + }, + { + "key": "10", + "name": "非常关注" + }, + { + "key": "11", + "name": "稍微关注" + }, + { + "key": "12", + "name": "无关注" + } ] +} diff --git a/Waste.WebApi/App/Page/src/store/app-mixin.js b/Waste.WebApi/App/Page/src/store/app-mixin.js new file mode 100644 index 0000000..c910ae9 --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/app-mixin.js @@ -0,0 +1,32 @@ +import { mapState } from 'vuex' + +const baseMixin = { + computed: { + ...mapState({ + layout: state => state.app.layout, + navTheme: state => state.app.theme, + primaryColor: state => state.app.color, + colorWeak: state => state.app.weak, + fixedHeader: state => state.app.fixedHeader, + fixedSidebar: state => state.app.fixedSidebar, + contentWidth: state => state.app.contentWidth, + autoHideHeader: state => state.app.autoHideHeader, + + isMobile: state => state.app.isMobile, + sideCollapsed: state => state.app.sideCollapsed, + multiTab: state => state.app.multiTab + }), + isTopMenu () { + return this.layout === 'topmenu' + } + }, + methods: { + isSideMenu () { + return !this.isTopMenu + } + } +} + +export { + baseMixin +} diff --git a/Waste.WebApi/App/Page/src/store/device-mixin.js b/Waste.WebApi/App/Page/src/store/device-mixin.js new file mode 100644 index 0000000..2510707 --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/device-mixin.js @@ -0,0 +1,11 @@ +import { mapState } from 'vuex' + +const deviceMixin = { + computed: { + ...mapState({ + isMobile: state => state.app.isMobile + }) + } +} + +export { deviceMixin } diff --git a/Waste.WebApi/App/Page/src/store/getters.js b/Waste.WebApi/App/Page/src/store/getters.js new file mode 100644 index 0000000..5a5ad70 --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/getters.js @@ -0,0 +1,16 @@ +const getters = { + isMobile: state => state.app.isMobile, + lang: state => state.app.lang, + theme: state => state.app.theme, + color: state => state.app.color, + token: state => state.user.token, + avatar: state => state.user.avatar, + nickname: state => state.user.name, + welcome: state => state.user.welcome, + roles: state => state.user.roles, + userInfo: state => state.user.info, + addRouters: state => state.permission.addRouters, + multiTab: state => state.app.multiTab +} + +export default getters diff --git a/Waste.WebApi/App/Page/src/store/i18n-mixin.js b/Waste.WebApi/App/Page/src/store/i18n-mixin.js new file mode 100644 index 0000000..715b0c8 --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/i18n-mixin.js @@ -0,0 +1,16 @@ +import { mapState } from 'vuex' + +const i18nMixin = { + computed: { + ...mapState({ + currentLang: state => state.app.lang + }) + }, + methods: { + setLang (lang) { + this.$store.dispatch('setLang', lang) + } + } +} + +export default i18nMixin diff --git a/Waste.WebApi/App/Page/src/store/index.js b/Waste.WebApi/App/Page/src/store/index.js new file mode 100644 index 0000000..687d21b --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/index.js @@ -0,0 +1,32 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import app from './modules/app' +import user from './modules/user' + +// default router permission control +// import permission from './modules/permission' + +// dynamic router permission control (Experimental) +import permission from './modules/async-router' +import getters from './getters' + +Vue.use(Vuex) + +export default new Vuex.Store({ + modules: { + app, + user, + permission + }, + state: { + + }, + mutations: { + + }, + actions: { + + }, + getters +}) diff --git a/Waste.WebApi/App/Page/src/store/modules/app.js b/Waste.WebApi/App/Page/src/store/modules/app.js new file mode 100644 index 0000000..6a0c6ef --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/modules/app.js @@ -0,0 +1,99 @@ +import storage from 'store' +import { + SIDEBAR_TYPE, + TOGGLE_MOBILE_TYPE, + TOGGLE_NAV_THEME, + TOGGLE_LAYOUT, + TOGGLE_FIXED_HEADER, + TOGGLE_FIXED_SIDEBAR, + TOGGLE_CONTENT_WIDTH, + TOGGLE_HIDE_HEADER, + TOGGLE_COLOR, + TOGGLE_WEAK, + TOGGLE_MULTI_TAB, + // i18n + APP_LANGUAGE +} from '@/store/mutation-types' +import { loadLanguageAsync } from '@/locales' + +const app = { + state: { + sideCollapsed: false, + isMobile: false, + theme: 'dark', + layout: '', + contentWidth: '', + fixedHeader: false, + fixedSidebar: false, + autoHideHeader: false, + color: '', + weak: false, + multiTab: true, + lang: 'en-US', + _antLocale: {} + }, + mutations: { + [SIDEBAR_TYPE]: (state, type) => { + state.sideCollapsed = type + storage.set(SIDEBAR_TYPE, type) + }, + [TOGGLE_MOBILE_TYPE]: (state, isMobile) => { + state.isMobile = isMobile + }, + [TOGGLE_NAV_THEME]: (state, theme) => { + state.theme = theme + storage.set(TOGGLE_NAV_THEME, theme) + }, + [TOGGLE_LAYOUT]: (state, mode) => { + state.layout = mode + storage.set(TOGGLE_LAYOUT, mode) + }, + [TOGGLE_FIXED_HEADER]: (state, mode) => { + state.fixedHeader = mode + storage.set(TOGGLE_FIXED_HEADER, mode) + }, + [TOGGLE_FIXED_SIDEBAR]: (state, mode) => { + state.fixedSidebar = mode + storage.set(TOGGLE_FIXED_SIDEBAR, mode) + }, + [TOGGLE_CONTENT_WIDTH]: (state, type) => { + state.contentWidth = type + storage.set(TOGGLE_CONTENT_WIDTH, type) + }, + [TOGGLE_HIDE_HEADER]: (state, type) => { + state.autoHideHeader = type + storage.set(TOGGLE_HIDE_HEADER, type) + }, + [TOGGLE_COLOR]: (state, color) => { + state.color = color + storage.set(TOGGLE_COLOR, color) + }, + [TOGGLE_WEAK]: (state, mode) => { + state.weak = mode + storage.set(TOGGLE_WEAK, mode) + }, + [APP_LANGUAGE]: (state, lang, antd = {}) => { + state.lang = lang + state._antLocale = antd + storage.set(APP_LANGUAGE, lang) + }, + [TOGGLE_MULTI_TAB]: (state, bool) => { + storage.set(TOGGLE_MULTI_TAB, bool) + state.multiTab = bool + } + }, + actions: { + setLang ({ commit }, lang) { + return new Promise((resolve, reject) => { + commit(APP_LANGUAGE, lang) + loadLanguageAsync(lang).then(() => { + resolve() + }).catch((e) => { + reject(e) + }) + }) + } + } +} + +export default app diff --git a/Waste.WebApi/App/Page/src/store/modules/async-router.js b/Waste.WebApi/App/Page/src/store/modules/async-router.js new file mode 100644 index 0000000..8aaffca --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/modules/async-router.js @@ -0,0 +1,30 @@ +/** + * 向后端请求用户的菜单,动态生成路由 + */ +import { constantRouterMap } from '@/config/router.config' +import { generatorDynamicRouter,generatorDynamicRouter1 } from '@/router/generator-routers' + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [] + }, + mutations: { + SET_ROUTERS: (state, routers) => { + state.addRouters = routers + state.routers = constantRouterMap.concat(routers) + } + }, + actions: { + GenerateRoutes ({ commit }, data) { + return new Promise(resolve => { + generatorDynamicRouter1(data).then(routers => { + commit('SET_ROUTERS', routers) + resolve() + }) + }) + } + } +} + +export default permission diff --git a/Waste.WebApi/App/Page/src/store/modules/permission.js b/Waste.WebApi/App/Page/src/store/modules/permission.js new file mode 100644 index 0000000..a3ab370 --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/modules/permission.js @@ -0,0 +1,76 @@ +import { asyncRouterMap, constantRouterMap } from '@/config/router.config' + +/** + * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 + * + * @param permission + * @param route + * @returns {boolean} + */ +function hasPermission (permission, route) { + if (route.meta && route.meta.permission) { + let flag = false + var permissions = permission.res + for (let i = 0, len = permissions.length; i < len; i++) { + flag = route.meta.permission.includes(permissions[i].name) + if (flag) { + return true + } + } + return false + } + return true +} + +/** + * 单账户多角色时,使用该方法可过滤角色不存在的菜单 + * + * @param roles + * @param route + * @returns {*} + */ +// eslint-disable-next-line +function hasRole(roles, route) { + if (route.meta && route.meta.roles) { + return route.meta.roles.includes(roles.id) + } else { + return true + } +} + +function filterAsyncRouter (routerMap, roles) { + const accessedRouters = routerMap.filter(route => { + if (hasPermission(roles, route)) { + if (route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, roles) + } + return true + } + return false + }) + return accessedRouters +} + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [] + }, + mutations: { + SET_ROUTERS: (state, routers) => { + state.addRouters = routers + state.routers = constantRouterMap.concat(routers) + } + }, + actions: { + GenerateRoutes ({ commit }, data) { + return new Promise(resolve => { + const accessedRouters = filterAsyncRouter(asyncRouterMap, data) + commit('SET_ROUTERS', accessedRouters) + resolve() + }) + } + } +} + +export default permission diff --git a/Waste.WebApi/App/Page/src/store/modules/user - 副本.js b/Waste.WebApi/App/Page/src/store/modules/user - 副本.js new file mode 100644 index 0000000..ff57c03 --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/modules/user - 副本.js @@ -0,0 +1,133 @@ +import storage from 'store' +import { login, UserInfo, logout } from '@/api/login' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import { welcome } from '@/utils/util' + +const user = { + state: { + token: '', + name: '', + welcome: '', + avatar: '', + roles: [], + info: {} + }, + + mutations: { + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, { name, welcome }) => { + state.name = name + state.welcome = welcome + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + }, + SET_ROLES: (state, roles) => { + state.roles = roles + }, + SET_INFO: (state, info) => { + state.info = info + } + }, + + actions: { + // 登录 + Login ({ commit }, userInfo) { + return new Promise((resolve, reject) => { + login(userInfo).then(response => { + if (response.code === 1) { + const result = response.data + storage.set(ACCESS_TOKEN, result, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result) + } + resolve(response) + }).catch(error => { + reject(error) + }) + }) + }, + + // 获取用户信息 + GetInfo ({ commit }) { + return new Promise((resolve, reject) => { + UserInfo().then(response => { + if (response.code === 1) { + const result = response.data + var list = [] + if (result.menulist && result.menulist.length > 0) { + // 遍历菜单进行拼接 + result.menulist.map((per) => { + if (per.parentid === '00000000-0000-0000-0000-000000000000') { + var json = { + name: per.name, + key: per.id, + path: per.path, + parentid: per.parentid, + component: per.component, + children: [], + meta: { + title: per.title, + icon: per.icon, + show:per.show + } + } + if (per.redirect && per.redirect.length > 0) { + json['redirect'] = per.redirect + } + list.push(json) + } + }) + result.menulist.map((per) => { + for (var i = 0; i < list.length; i++) { + if (per.parentid === list[i].key) { + list[i].children.push({ + key: per.id, + path: per.path, + component: per.component, + children: [], + parentid: per.parentid, + meta: { + title: per.title, + icon: per.icon, + show:per.show + } + }) + } + } + }) + commit('SET_ROLES', list) + commit('SET_INFO', result) + commit('SET_NAME', { name: result.realname, welcome: welcome() }) + commit('SET_AVATAR', result.avatar) + resolve(list) + } else { + reject(new Error('getInfo: roles must be a non-null array !')) + } + } + }).catch(error => { + reject(error) + }) + }) + }, + + // 登出 + Logout ({ commit, state }) { + return new Promise((resolve) => { + logout(state.token).then(() => { + resolve() + }).catch(() => { + resolve() + }).finally(() => { + commit('SET_TOKEN', '') + commit('SET_ROLES', []) + storage.remove(ACCESS_TOKEN) + }) + }) + } + + } +} + +export default user diff --git a/Waste.WebApi/App/Page/src/store/modules/user.js b/Waste.WebApi/App/Page/src/store/modules/user.js new file mode 100644 index 0000000..894a54b --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/modules/user.js @@ -0,0 +1,530 @@ +import storage from 'store' +import { + login, + UserInfo, + logout +} from '@/api/login' +import { + ACCESS_TOKEN +} from '@/store/mutation-types' +import { + welcome +} from '@/utils/util' + +const user = { + state: { + token: '', + name: '', + welcome: '', + avatar: '', + roles: [], + info: {} + }, + + mutations: { + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, { + name, + welcome + }) => { + state.name = name + state.welcome = welcome + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + }, + SET_ROLES: (state, roles) => { + state.roles = roles + }, + SET_INFO: (state, info) => { + state.info = info + } + }, + + actions: { + // 登录 + Login({ + commit + }, userInfo) { + return new Promise((resolve, reject) => { + login(userInfo).then(response => { + if (response.code === 1) { + const result = response.data + storage.set(ACCESS_TOKEN, result, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result) + } + resolve(response) + }).catch(error => { + reject(error) + }) + }) + }, + + // 获取用户信息 + GetInfo({ + commit + }) { + return new Promise((resolve, reject) => { + UserInfo().then(response => { + if (response.code === 1) { + // console.log(response) + const data123 = { + menulist: [{ + 'name': 'home', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': 1, + 'icon': 'home', + 'title': '首页', + 'show': true, + 'component': 'home', + 'redirect': '', + 'sortcode': 1, + 'path': '/home', + 'createtime': '2020-09-10 16:14:59', + 'id': 'bf681493-ebbb-41f4-ac44-be02e1a6bd97', + }, + { + 'name': 'device', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': 'cb242636-1645-4b8b-b23c-6b81df0edf82', + 'createtime': '2020-09-10 17:47:52', + 'title': '设备', + 'icon': 'api', + 'show': true, + 'component': 'RouteView', + 'redirect': '/device/list', + 'path': '/device', + 'sortcode': 2 + }, + { + 'name': 'devicelist', + 'parentid': 'cb242636-1645-4b8b-b23c-6b81df0edf82', + 'id': '8f566a86-9859-4f2c-ba9b-98d620afeb5c', + 'title': '设备管理', + 'show': true, + 'createtime': '2020-09-10 17:48:40', + 'component': 'device/list', + 'path': '/device/list', + 'redirect': '/device/list', + 'sortcode': 1, + }, + { + 'name': 'resultlist', + 'parentid': 'cb242636-1645-4b8b-b23c-6b81df0edf82', + 'id': 'e11a4c02-532d-4937-9579-b36902367d0c', + 'title': '测量记录', + 'show': true, + 'createtime': '2020-09-10 17:48:40', + 'component': 'device/result', + 'path': '/device/result', + 'sortcode': 1, + }, + { + 'name': 'Bindcountlist', + 'parentid': 'cb242636-1645-4b8b-b23c-6b81df0edf82', + 'id': '8f566a86-9859-4f2c-ba9b-98d620afeb452', + 'title': '绑定用户关系管理', + 'show': false, + 'createtime': '2020-09-10 17:48:40', + 'component': 'device/Bindcount', + 'path': '/device/Bindcount', + 'sortcode': 1, + }, + // + { + 'name': 'official', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': '09036169-x', + 'createtime': '2020-09-10 17:47:52', + 'title': '公众号设置', + 'icon': 'global', + 'show': true, + 'component': 'RouteView', + 'redirect': '/official/List', + 'path': '/official', + 'sortcode': 2 + }, + { + 'name': 'officiallist', + 'parentid': '09036169-x', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad085f', + 'title': '公众号管理', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'official/List', + 'path': '/official/List', + 'sortcode': 1, + }, + { + 'name': 'officialempower', + 'parentid': '09036169-x', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad0852', + 'title': '公众号授权', + 'show': false, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'official/empower', + 'path': '/official/empower', + 'sortcode': 1, + }, + { + 'name': 'officialtemplate', + 'parentid': '09036169-x', + 'id': '4544dfe7-6d27-43a0-87bb-ce4f21084a6b', + 'title': '模板管理', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'official/template', + 'path': '/official/template', + 'sortcode': 1, + }, + // 营销管理 + { + 'name': 'market', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': '09036169-y', + 'createtime': '2020-09-10 17:47:52', + 'title': '营销管理', + 'icon': 'tags', + 'show': true, + 'component': 'RouteView', + 'redirect': '/market/tag', + 'path': '/market', + 'sortcode': 2 + }, + { + 'name': 'markettag', + 'parentid': '09036169-y', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad085a', + 'title': '标签管理', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'market/tag', + 'path': '/market/tag', + 'sortcode': 1, + }, + { + 'name': 'marketmessage', + 'parentid': '09036169-y', + 'id': '4544dfe7-6d27-43a0-87bb-ce4f21084a6c', + 'title': '消息群发', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'market/message', + 'path': '/market/message', + 'sortcode': 1, + }, + // 用户管理 + { + 'name': 'reguser', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': '09036169-u', + 'createtime': '2020-09-10 17:47:52', + 'title': '用户管理', + 'icon': 'team', + 'show': true, + 'component': 'RouteView', + 'redirect': '/reguser/list', + 'path': '/reguser', + 'sortcode': 2 + }, + { + 'name': 'reguserlist', + 'parentid': '09036169-u', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad085z', + 'title': '注册用户管理', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'reguser/list', + 'path': '/reguser/list', + 'sortcode': 1, + }, + { + 'name': 'reguserbind', + 'parentid': '09036169-u', + 'id': '4544dfe7-6d27-43a0-87bb-ce4f21084a6zz', + 'title': '绑定用户管理', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'reguser/bind', + 'path': '/reguser/bind', + 'sortcode': 1, + }, + { + 'name': 'reguserresultlist', + 'parentid': '09036169-u', + 'id': '4544dfe7-6d27-43a0-87bb-ce4f21084a6cl', + 'title': '用户测量记录', + 'show': false, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'reguser/resultlist', + 'path': '/reguser/resultlist', + 'sortcode': 1, + }, + // 渠道管理 + { + 'name': 'business', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': 1, + 'icon': 'apartment', + 'title': '渠道管理', + 'show': true, + 'component': 'business', + 'redirect': '', + 'sortcode': 1, + 'path': '/business', + 'createtime': '2020-09-10 16:14:59', + 'id': 'bf681493-ebbb-41f4-ac44-be02e1a6bd97', + }, + // + { + 'name': 'report', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': '09036169-s', + 'createtime': '2020-09-10 17:47:52', + 'title': '数据分析', + 'icon': 'project', + 'show': true, + 'component': 'RouteView', + 'redirect': '/report/tag', + 'path': '/report', + 'sortcode': 4 + }, + { + 'name': 'reporttag', + 'parentid': '09036169-s', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad085sj', + 'title': '标签数据分析', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'report/tag', + 'path': '/report/tag', + 'sortcode': 1, + }, + { + 'name': 'reportuser', + 'parentid': '09036169-s', + 'id': '4544dfe7-6d27-43a0-87bb-ce4f21084a6yh', + 'title': '用户画像', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'report/user', + 'path': '/report/user', + 'sortcode': 1, + }, + { + 'name': 'reporthealth', + 'parentid': '09036169-s', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad085jk', + 'title': '健康数据分析', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'report/health', + 'path': '/report/health', + 'sortcode': 1, + }, + { + 'name': 'reportmeasure', + 'parentid': '09036169-s', + 'id': '4544dfe7-6d27-43a0-87bb-ce4f21084a6tj', + 'title': '测量统计', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'report/measure', + 'path': '/report/measure', + 'sortcode': 1, + }, + // 个人中心 + { + 'name': 'user', + 'parentid': '00000000-0000-0000-0000-000000000000', + 'id': '09036169-g', + 'createtime': '2020-09-10 17:47:52', + 'title': '个人中心', + 'icon': 'setting', + 'show': true, + 'component': 'RouteView', + 'redirect': '/user/base', + 'path': '/user', + 'sortcode': 4 + }, + { + 'name': 'userpassword', + 'parentid': '09036169-g', + 'id': '4544dfe7-6d27-43a0-87bb-ce4f21084a6mm', + 'title': '修改密码', + 'show': true, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'user/password', + 'path': '/user/password', + 'sortcode': 1, + }, + { + 'name': 'userchat', + 'parentid': '09036169-g', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad085kf', + 'title': '微信客服', + 'show': true, + 'createtime': '2020-09-10 17:48:40', + 'path': 'https://www.baidu.com/', + 'sortcode': 1, + 'target': '_blank', + }, + { + 'name': 'userbase', + 'parentid': '09036169-g', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad085jb', + 'title': 'QQ客服', + 'show': true, + 'createtime': '2020-09-10 17:48:40', + 'component': 'http://wpa.qq.com/msgrd?v=3&uin=494814623&site=qq&menu=yes', + // 'redirect': '', + 'target': '_blank', + 'path': 'http://wpa.qq.com/msgrd?v=3&uin=494814623&site=qq&menu=yes', + 'sortcode': 1, + }, + // 三级addList + { + 'name': 'addList', + 'parentid': '09036169-x', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad084gh', + 'title': '公众号管理', + 'show': false, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'official/components/addList', + 'path': '/official/components/addList', + 'sortcode': 1, + }, + { + 'name': 'officialdeviceList', + 'parentid': '09036169-x', + 'id': '637e37c1-22fd-4a20-9768-8f1cb6ad084sbbd', + 'title': '设备绑定', + 'show': false, + 'redirect': '', + 'createtime': '2020-09-10 17:48:40', + 'component': 'official/deviceList', + 'path': '/official/deviceList', + 'sortcode': 1, + }, + + ], + realname: '管理员' + } + const result = data123 + var list = [] + if (result.menulist && result.menulist.length > 0) { + // 遍历菜单进行拼接 + result.menulist.map((per) => { + if (per.parentid === '00000000-0000-0000-0000-000000000000') { + var json = { + name: per.name, + key: per.id, + path: per.path, + parentid: per.parentid, + component: per.component, + children: [], + meta: { + title: per.title, + icon: per.icon, + show: per.show, + } + } + if (per.redirect && per.redirect.length > 0) { + json['redirect'] = per.redirect + } + list.push(json) + } + }) + result.menulist.map((per) => { + for (var i = 0; i < list.length; i++) { + if (per.parentid === list[i].key) { + list[i].children.push({ + key: per.id, + path: per.path, + component: per.component, + children: [], + parentid: per.parentid, + meta: { + title: per.title, + icon: per.icon, + show: per.show, + target: per.target, + hideChildren: true, + } + }) + } + // 三级隐藏菜单 + // for (var j = 0; i < list[i].children.length; i++) { + // if (list[i].children[j].key === per.id) { + // list[i].children[j].children.push({ + // key: per.id, + // path: per.path, + // component: per.component, + // children: [], + // parentid: per.parentid, + // meta: { + // title: per.title, + // // show: per.show, + // target: per.target, + // } + // }) + // } + // } + } + }) + commit('SET_ROLES', list) + commit('SET_INFO', result) + commit('SET_NAME', { + name: result.realname, + welcome: welcome() + }) + commit('SET_AVATAR', result.avatar) + resolve(list) + } else { + reject(new Error('getInfo: roles must be a non-null array !')) + } + } + }).catch(error => { + reject(error) + }) + }) + }, + + // 登出 + Logout({ + commit, + state + }) { + return new Promise((resolve) => { + logout(state.token).then(() => { + resolve() + }).catch(() => { + resolve() + }).finally(() => { + commit('SET_TOKEN', '') + commit('SET_ROLES', []) + storage.remove(ACCESS_TOKEN) + }) + }) + } + + } +} + +export default user diff --git a/Waste.WebApi/App/Page/src/store/mutation-types.js b/Waste.WebApi/App/Page/src/store/mutation-types.js new file mode 100644 index 0000000..423696e --- /dev/null +++ b/Waste.WebApi/App/Page/src/store/mutation-types.js @@ -0,0 +1,24 @@ +export const ACCESS_TOKEN = 'wifitoken' + +export const SIDEBAR_TYPE = 'sidebar_type' +export const TOGGLE_MOBILE_TYPE = 'is_mobile' +export const TOGGLE_NAV_THEME = 'nav_theme' +export const TOGGLE_LAYOUT = 'layout' +export const TOGGLE_FIXED_HEADER = 'fixed_header' +export const TOGGLE_FIXED_SIDEBAR = 'fixed_sidebar' +export const TOGGLE_CONTENT_WIDTH = 'content_width' +export const TOGGLE_HIDE_HEADER = 'auto_hide_header' +export const TOGGLE_COLOR = 'color' +export const TOGGLE_WEAK = 'weak' +export const TOGGLE_MULTI_TAB = 'multi_tab' +export const APP_LANGUAGE = 'app_language' + +export const CONTENT_WIDTH_TYPE = { + Fluid: 'Fluid', + Fixed: 'Fixed' +} + +export const NAV_THEME = { + LIGHT: 'light', + DARK: 'dark' +} diff --git a/Waste.WebApi/App/Page/src/utils/axios.js b/Waste.WebApi/App/Page/src/utils/axios.js new file mode 100644 index 0000000..4045eb7 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/axios.js @@ -0,0 +1,35 @@ +// const VueAxios = { +// vm: {}, +// // eslint-disable-next-line no-unused-vars +// install (Vue, instance) { +// if (this.installed) { +// return +// } +// this.installed = true + +// if (!instance) { +// // eslint-disable-next-line no-console +// console.error('You have to install axios') +// return +// } + +// Vue.axios = instance + +// Object.defineProperties(Vue.prototype, { +// axios: { +// get: function get () { +// return instance +// } +// }, +// $http: { +// get: function get () { +// return instance +// } +// } +// }) +// } +// } + +// export { +// VueAxios +// } diff --git a/Waste.WebApi/App/Page/src/utils/domUtil.js b/Waste.WebApi/App/Page/src/utils/domUtil.js new file mode 100644 index 0000000..be93027 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/domUtil.js @@ -0,0 +1,21 @@ +import config from '@/config/defaultSettings' + +export const setDocumentTitle = function (title) { + document.title = title + const ua = navigator.userAgent + // eslint-disable-next-line + const regex = /\bMicroMessenger\/([\d\.]+)/ + if (regex.test(ua) && /ip(hone|od|ad)/i.test(ua)) { + const i = document.createElement('iframe') + i.src = '/favicon.ico' + i.style.display = 'none' + i.onload = function () { + setTimeout(function () { + i.remove() + }, 9) + } + document.body.appendChild(i) + } +} + +export const domTitle = config.title diff --git a/Waste.WebApi/App/Page/src/utils/filter.js b/Waste.WebApi/App/Page/src/utils/filter.js new file mode 100644 index 0000000..45702c6 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/filter.js @@ -0,0 +1,20 @@ +import Vue from 'vue' +import moment from 'moment' +import 'moment/locale/zh-cn' +moment.locale('zh-cn') + +Vue.filter('NumberFormat', function (value) { + if (!value) { + return '0' + } + const intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断 + return intPartFormat +}) + +Vue.filter('dayjs', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return moment(dataStr).format(pattern) +}) + +Vue.filter('moment', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return moment(dataStr).format(pattern) +}) diff --git a/Waste.WebApi/App/Page/src/utils/helper/permission.js b/Waste.WebApi/App/Page/src/utils/helper/permission.js new file mode 100644 index 0000000..f0f6a32 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/helper/permission.js @@ -0,0 +1,51 @@ +export const PERMISSION_ENUM = { + 'add': { key: 'add', label: '新增' }, + 'delete': { key: 'delete', label: '删除' }, + 'edit': { key: 'edit', label: '修改' }, + 'query': { key: 'query', label: '查询' }, + 'get': { key: 'get', label: '详情' }, + 'enable': { key: 'enable', label: '启用' }, + 'disable': { key: 'disable', label: '禁用' }, + 'import': { key: 'import', label: '导入' }, + 'export': { key: 'export', label: '导出' } +} + +function plugin (Vue) { + if (plugin.installed) { + return + } + + !Vue.prototype.$auth && Object.defineProperties(Vue.prototype, { + $auth: { + get () { + const _this = this + return (permissions) => { + const [permission, action] = permissions.split('.') + const permissionList = _this.$store.getters.roles.permissions + return permissionList.find((val) => { + return val.permissionId === permission + }).actionList.findIndex((val) => { + return val === action + }) > -1 + } + } + } + }) + + !Vue.prototype.$enum && Object.defineProperties(Vue.prototype, { + $enum: { + get () { + // const _this = this; + return (val) => { + let result = PERMISSION_ENUM + val && val.split('.').forEach(v => { + result = result && result[v] || null + }) + return result + } + } + } + }) +} + +export default plugin diff --git a/Waste.WebApi/App/Page/src/utils/permissions.js b/Waste.WebApi/App/Page/src/utils/permissions.js new file mode 100644 index 0000000..f8668bb --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/permissions.js @@ -0,0 +1,8 @@ +export function actionToObject (json) { + try { + return JSON.parse(json) + } catch (e) { + console.log('err', e.message) + } + return [] +} diff --git a/Waste.WebApi/App/Page/src/utils/request.js b/Waste.WebApi/App/Page/src/utils/request.js new file mode 100644 index 0000000..733676e --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/request.js @@ -0,0 +1,122 @@ +import axios from 'axios' +import store from '@/store' +import storage from 'store' +import message from 'ant-design-vue/es/message' +import { + ACCESS_TOKEN +} from '@/store/mutation-types' + +// 创建 axios 实例 +const request = axios.create({ + baseURL: 'http://192.168.1.88:8082/api', + timeout: 10000, // 请求超时时间, +}) + +// 异常拦截处理器 + +const errorHandler = (error) => { + if (error.response) { + const data = error.response.data + const token = storage.get(ACCESS_TOKEN) + if (error.response.status === 403) { + message.error({ + message: 'Forbidden', + description: data.message + }) + } + if (error.response.status === 401 && !(data.result && data.result.isLogin)) { + message.error({ + message: 'Unauthorized', + description: '暂无权限' + }) + if (token) { + store.dispatch('Logout').then(() => { + setTimeout(() => { + window.location.reload() + }, 1500) + }) + } + } + } + return Promise.reject(error) +} + +// request interceptor +let loading +const delay = 1000 +let timeout +request.interceptors.request.use(config => { + const token = storage.get(ACCESS_TOKEN) + if (token) { + config.headers['token'] = token + } + if (timeout) { + clearTimeout(timeout) + timeout = null + } + timeout = setTimeout(() => { + loading = message.loading({ + duration: 0, // 持续展示 toast + message: '请求中...', + forbidClick: true + }) + }, delay) + return config + }, + err => Promise.reject(err) +) + +request.interceptors.response.use((response) => { + console.log(response) + if (response.status == 200) { + if (loading) { + loading.clear() + } + if (timeout) { + clearTimeout(timeout) + timeout = null + } + } + return response.data + }, + err => { + console.log(err.response) + if (timeout) { + clearTimeout(timeout) + timeout = null + } + if (loading) { + loading.clear() + } + return Promise.reject(err) + } +) + +//get请求 +function get(url, params) { + return service({ + method: 'get', + url: baseURL, + params: params, + }).then((res) => { + return res.data + }).catch((error) => { + return error + }) +} +//post请求 +function post(url, param) { + return service({ + method: 'post', + url: baseURL, + data: param, + header: { + 'Content-Type': 'application/jsoncharset=UTF-8' + } + }).then((res) => { + return res.data + }).catch((error) => { + return error + }) +} +export default request diff --git a/Waste.WebApi/App/Page/src/utils/routeConvert.js b/Waste.WebApi/App/Page/src/utils/routeConvert.js new file mode 100644 index 0000000..e88b0d6 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/routeConvert.js @@ -0,0 +1,30 @@ +import cloneDeep from 'lodash.clonedeep' + +export function convertRoutes (nodes) { + if (!nodes) return null + + nodes = cloneDeep(nodes) + + let queue = Array.isArray(nodes) ? nodes.concat() : [nodes] + + while (queue.length) { + const levelSize = queue.length + + for (let i = 0; i < levelSize; i++) { + const node = queue.shift() + + if (!node.children || !node.children.length) continue + + node.children.forEach(child => { + // 转化相对路径 + if (child.path[0] !== '/' && !child.path.startsWith('http')) { + child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`) + } + }) + + queue = queue.concat(node.children) + } + } + + return nodes +} diff --git a/Waste.WebApi/App/Page/src/utils/screenLog.js b/Waste.WebApi/App/Page/src/utils/screenLog.js new file mode 100644 index 0000000..74e565b --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/screenLog.js @@ -0,0 +1,5 @@ +/* eslint-disable */ +export const printANSI = () => { + // console.clear() + console.log('ybhdmob') +} diff --git a/Waste.WebApi/App/Page/src/utils/tool.js b/Waste.WebApi/App/Page/src/utils/tool.js new file mode 100644 index 0000000..7c996f8 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/tool.js @@ -0,0 +1,20 @@ +// 时间戳转年/月/日或月/日或时分秒 +function timedata(timestamp, type = 1) { + var date = new Date(timestamp * 1000) // 时间戳为10位需*1000,时间戳为13位的话不需乘1000 + var Y = date.getFullYear() + '/' + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '/' + var D = date.getDate() + var H = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':' + var MI = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':' + var S = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() + if (type == 1) { + return Y + M + D + } else if (type == 2) { + return { + data1: Y + M + D, + data2: H + MI + S + } + } else if (type == 3) { + return M + D + } +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/utils/util.js b/Waste.WebApi/App/Page/src/utils/util.js new file mode 100644 index 0000000..274ff18 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/util.js @@ -0,0 +1,67 @@ +export function timeFix () { + const time = new Date() + const hour = time.getHours() + return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好' +} + +export function welcome () { + const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 DOTA', '我猜你可能累了'] + const index = Math.floor(Math.random() * arr.length) + return arr[index] +} + +/** + * 触发 window.resize + */ +export function triggerWindowResizeEvent () { + const event = document.createEvent('HTMLEvents') + event.initEvent('resize', true, true) + event.eventType = 'message' + window.dispatchEvent(event) +} + +export function handleScrollHeader (callback) { + let timer = 0 + + let beforeScrollTop = window.pageYOffset + callback = callback || function () {} + window.addEventListener( + 'scroll', + event => { + clearTimeout(timer) + timer = setTimeout(() => { + let direction = 'up' + const afterScrollTop = window.pageYOffset + const delta = afterScrollTop - beforeScrollTop + if (delta === 0) { + return false + } + direction = delta > 0 ? 'down' : 'up' + callback(direction) + beforeScrollTop = afterScrollTop + }, 50) + }, + false + ) +} + +export function isIE () { + const bw = window.navigator.userAgent + const compare = (s) => bw.indexOf(s) >= 0 + const ie11 = (() => 'ActiveXObject' in window)() + return compare('MSIE') || ie11 +} + +/** + * Remove loading animate + * @param id parent element id or class + * @param timeout + */ +export function removeLoadingAnimate (id = '', timeout = 1500) { + if (id === '') { + return + } + setTimeout(() => { + document.body.removeChild(document.getElementById(id)) + }, timeout) +} diff --git a/Waste.WebApi/App/Page/src/utils/utils.less b/Waste.WebApi/App/Page/src/utils/utils.less new file mode 100644 index 0000000..ba75a67 --- /dev/null +++ b/Waste.WebApi/App/Page/src/utils/utils.less @@ -0,0 +1,50 @@ +.textOverflow() { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + word-break: break-all; +} + +.textOverflowMulti(@line: 3, @bg: #fff) { + position: relative; + max-height: @line * 1.5em; + margin-right: -1em; + padding-right: 1em; + overflow: hidden; + line-height: 1.5em; + text-align: justify; + &::before { + position: absolute; + right: 14px; + bottom: 0; + padding: 0 1px; + background: @bg; + content: '...'; + } + &::after { + position: absolute; + right: 14px; + width: 1em; + height: 1em; + margin-top: 0.2em; + background: white; + content: ''; + } +} + +// mixins for clearfix +// ------------------------ +.clearfix() { + zoom: 1; + &::before, + &::after { + display: table; + content: ' '; + } + &::after { + clear: both; + height: 0; + font-size: 0; + visibility: hidden; + } +} \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/views/business/components/CreateForm.vue b/Waste.WebApi/App/Page/src/views/business/components/CreateForm.vue new file mode 100644 index 0000000..a9c1c68 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/business/components/CreateForm.vue @@ -0,0 +1,95 @@ + + + diff --git a/Waste.WebApi/App/Page/src/views/business/index.vue b/Waste.WebApi/App/Page/src/views/business/index.vue new file mode 100644 index 0000000..0714f79 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/business/index.vue @@ -0,0 +1,208 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/components/CreateTable.vue b/Waste.WebApi/App/Page/src/views/components/CreateTable.vue new file mode 100644 index 0000000..c80b8aa --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/components/CreateTable.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/device/Bindcount.vue b/Waste.WebApi/App/Page/src/views/device/Bindcount.vue new file mode 100644 index 0000000..af4bc87 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/device/Bindcount.vue @@ -0,0 +1,243 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/device/components/CreateForm.vue b/Waste.WebApi/App/Page/src/views/device/components/CreateForm.vue new file mode 100644 index 0000000..1ee945e --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/device/components/CreateForm.vue @@ -0,0 +1,94 @@ + + + diff --git a/Waste.WebApi/App/Page/src/views/device/components/ServiceTable.vue b/Waste.WebApi/App/Page/src/views/device/components/ServiceTable.vue new file mode 100644 index 0000000..f5bd090 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/device/components/ServiceTable.vue @@ -0,0 +1,149 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/device/list.vue b/Waste.WebApi/App/Page/src/views/device/list.vue new file mode 100644 index 0000000..9bcbfea --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/device/list.vue @@ -0,0 +1,414 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/device/result.vue b/Waste.WebApi/App/Page/src/views/device/result.vue new file mode 100644 index 0000000..295982f --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/device/result.vue @@ -0,0 +1,423 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/exception/404.vue b/Waste.WebApi/App/Page/src/views/exception/404.vue new file mode 100644 index 0000000..3142e7b --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/exception/404.vue @@ -0,0 +1,20 @@ + + + diff --git a/Waste.WebApi/App/Page/src/views/home/index.vue b/Waste.WebApi/App/Page/src/views/home/index.vue new file mode 100644 index 0000000..53d66e8 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/home/index.vue @@ -0,0 +1,329 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/market/components/CreateForm.vue b/Waste.WebApi/App/Page/src/views/market/components/CreateForm.vue new file mode 100644 index 0000000..4ecd9ff --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/market/components/CreateForm.vue @@ -0,0 +1,160 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/market/message.vue b/Waste.WebApi/App/Page/src/views/market/message.vue new file mode 100644 index 0000000..1b7b461 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/market/message.vue @@ -0,0 +1,83 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/market/tag.vue b/Waste.WebApi/App/Page/src/views/market/tag.vue new file mode 100644 index 0000000..184aa39 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/market/tag.vue @@ -0,0 +1,259 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/List.vue b/Waste.WebApi/App/Page/src/views/official/List.vue new file mode 100644 index 0000000..a1db39c --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/List.vue @@ -0,0 +1,283 @@ + + + + \ No newline at end of file diff --git a/Waste.WebApi/App/Page/src/views/official/components/CreateTable.vue b/Waste.WebApi/App/Page/src/views/official/components/CreateTable.vue new file mode 100644 index 0000000..773746b --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/components/CreateTable.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/components/Step1.vue b/Waste.WebApi/App/Page/src/views/official/components/Step1.vue new file mode 100644 index 0000000..3a909a8 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/components/Step1.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/components/Step2.vue b/Waste.WebApi/App/Page/src/views/official/components/Step2.vue new file mode 100644 index 0000000..068f399 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/components/Step2.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/components/Step3.vue b/Waste.WebApi/App/Page/src/views/official/components/Step3.vue new file mode 100644 index 0000000..f1b286e --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/components/Step3.vue @@ -0,0 +1,65 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/components/addList.vue b/Waste.WebApi/App/Page/src/views/official/components/addList.vue new file mode 100644 index 0000000..cc72baa --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/components/addList.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/deviceList.vue b/Waste.WebApi/App/Page/src/views/official/deviceList.vue new file mode 100644 index 0000000..dc26721 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/deviceList.vue @@ -0,0 +1,336 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/empower.vue b/Waste.WebApi/App/Page/src/views/official/empower.vue new file mode 100644 index 0000000..1a00bbb --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/empower.vue @@ -0,0 +1,210 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/official/template.vue b/Waste.WebApi/App/Page/src/views/official/template.vue new file mode 100644 index 0000000..e4d7bab --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/official/template.vue @@ -0,0 +1,197 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/reguser/bind.vue b/Waste.WebApi/App/Page/src/views/reguser/bind.vue new file mode 100644 index 0000000..e5a16b6 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/reguser/bind.vue @@ -0,0 +1,270 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/reguser/components/CreateForm.vue b/Waste.WebApi/App/Page/src/views/reguser/components/CreateForm.vue new file mode 100644 index 0000000..1f4c3be --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/reguser/components/CreateForm.vue @@ -0,0 +1,90 @@ + + + diff --git a/Waste.WebApi/App/Page/src/views/reguser/components/CreateTable.vue b/Waste.WebApi/App/Page/src/views/reguser/components/CreateTable.vue new file mode 100644 index 0000000..e0ec684 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/reguser/components/CreateTable.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/reguser/components/tag.vue b/Waste.WebApi/App/Page/src/views/reguser/components/tag.vue new file mode 100644 index 0000000..d2c926e --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/reguser/components/tag.vue @@ -0,0 +1,86 @@ + + + diff --git a/Waste.WebApi/App/Page/src/views/reguser/list.vue b/Waste.WebApi/App/Page/src/views/reguser/list.vue new file mode 100644 index 0000000..8e66e5d --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/reguser/list.vue @@ -0,0 +1,242 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/reguser/resultlist.vue b/Waste.WebApi/App/Page/src/views/reguser/resultlist.vue new file mode 100644 index 0000000..1342953 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/reguser/resultlist.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/report/components/CreateTable.vue b/Waste.WebApi/App/Page/src/views/report/components/CreateTable.vue new file mode 100644 index 0000000..b100e18 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/report/components/CreateTable.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/report/health.vue b/Waste.WebApi/App/Page/src/views/report/health.vue new file mode 100644 index 0000000..9049744 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/report/health.vue @@ -0,0 +1,107 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/report/measure.vue b/Waste.WebApi/App/Page/src/views/report/measure.vue new file mode 100644 index 0000000..67b1b5c --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/report/measure.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/report/tag.vue b/Waste.WebApi/App/Page/src/views/report/tag.vue new file mode 100644 index 0000000..9049744 --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/report/tag.vue @@ -0,0 +1,107 @@ + + + + diff --git a/Waste.WebApi/App/Page/src/views/report/user.vue b/Waste.WebApi/App/Page/src/views/report/user.vue new file mode 100644 index 0000000..cc4bdee --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/report/user.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/user/Login.vue b/Waste.WebApi/App/Page/src/views/user/Login.vue new file mode 100644 index 0000000..5cd18ce --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/user/Login.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/Waste.WebApi/App/Page/src/views/user/base.vue b/Waste.WebApi/App/Page/src/views/user/base.vue new file mode 100644 index 0000000..e69de29 diff --git a/Waste.WebApi/App/Page/src/views/user/chat.vue b/Waste.WebApi/App/Page/src/views/user/chat.vue new file mode 100644 index 0000000..e69de29 diff --git a/Waste.WebApi/App/Page/src/views/user/password.vue b/Waste.WebApi/App/Page/src/views/user/password.vue new file mode 100644 index 0000000..859564a --- /dev/null +++ b/Waste.WebApi/App/Page/src/views/user/password.vue @@ -0,0 +1,64 @@ + + + + diff --git a/Waste.WebApi/App/Page/tests/unit/.eslintrc.js b/Waste.WebApi/App/Page/tests/unit/.eslintrc.js new file mode 100644 index 0000000..958d51b --- /dev/null +++ b/Waste.WebApi/App/Page/tests/unit/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + jest: true + } +} diff --git a/Waste.WebApi/App/Page/vue.config.js b/Waste.WebApi/App/Page/vue.config.js new file mode 100644 index 0000000..1f84cd9 --- /dev/null +++ b/Waste.WebApi/App/Page/vue.config.js @@ -0,0 +1,130 @@ +const path = require('path') +const webpack = require('webpack') +const GitRevisionPlugin = require('git-revision-webpack-plugin') +const GitRevision = new GitRevisionPlugin() +const buildDate = JSON.stringify(new Date().toLocaleString()) +const createThemeColorReplacerPlugin = require('./config/plugin.config') + +function resolve (dir) { + return path.join(__dirname, dir) +} + +// check Git +function getGitHash () { + try { + return GitRevision.version() + } catch (e) {} + return 'unknown' +} + +const isProd = process.env.NODE_ENV === 'production' + +const assetsCDN = { + // webpack build externals + externals: { + vue: 'Vue', + 'vue-router': 'VueRouter', + vuex: 'Vuex', + axios: 'axios' + }, + css: [], + // https://unpkg.com/browse/vue@2.6.10/ + js: [ + '//cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js', + '//cdn.jsdelivr.net/npm/vue-router@3.1.3/dist/vue-router.min.js', + '//cdn.jsdelivr.net/npm/vuex@3.1.1/dist/vuex.min.js', + '//cdn.jsdelivr.net/npm/axios@0.19.0/dist/axios.min.js' + ] +} + +// vue.config.js +const vueConfig = { + configureWebpack: { + // webpack plugins + plugins: [ + // Ignore all locale files of moment.js + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + new webpack.DefinePlugin({ + APP_VERSION: `"${require('./package.json').version}"`, + GIT_HASH: JSON.stringify(getGitHash()), + BUILD_DATE: buildDate + }) + ], + // if prod, add externals + externals: isProd ? assetsCDN.externals : {} + }, + + chainWebpack: (config) => { + config.resolve.alias + .set('@$', resolve('src')) + + const svgRule = config.module.rule('svg') + svgRule.uses.clear() + svgRule + .oneOf('inline') + .resourceQuery(/inline/) + .use('vue-svg-icon-loader') + .loader('vue-svg-icon-loader') + .end() + .end() + .oneOf('external') + .use('file-loader') + .loader('file-loader') + .options({ + name: 'assets/[name].[hash:8].[ext]' + }) + + // if prod is on + // assets require on cdn + if (isProd) { + config.plugin('html').tap(args => { + args[0].cdn = assetsCDN + return args + }) + } + }, + + css: { + loaderOptions: { + less: { + modifyVars: { + // less vars,customize ant design theme + + // 'primary-color': '#F5222D', + // 'link-color': '#F5222D', + 'border-radius-base': '2px' + }, + // DO NOT REMOVE THIS LINE + javascriptEnabled: true + } + } + }, + + devServer: { + // development server port 8000 + port: 8000 + // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11 + // proxy: { + // '/api': { + // target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro', + // ws: false, + // changeOrigin: true + // } + // } + }, + + // disable source map in production + productionSourceMap: false, + lintOnSave: undefined, + // babel-loader no-ignore node_modules/* + transpileDependencies: [] +} + +// preview.pro.loacg.com only do not use in your production; +if (process.env.VUE_APP_PREVIEW === 'true') { + console.log('VUE_APP_PREVIEW', true) + // add `ThemeColorReplacer` plugin to webpack plugins + vueConfig.configureWebpack.plugins.push(createThemeColorReplacerPlugin()) +} + +module.exports = vueConfig diff --git a/Waste.WebApi/App/Page/webstorm.config.js b/Waste.WebApi/App/Page/webstorm.config.js new file mode 100644 index 0000000..9117455 --- /dev/null +++ b/Waste.WebApi/App/Page/webstorm.config.js @@ -0,0 +1,3 @@ +'use strict' +const webpackConfig = require('@vue/cli-service/webpack.config.js') +module.exports = webpackConfig diff --git a/Waste.WebApi/App/Page/yarn.lock b/Waste.WebApi/App/Page/yarn.lock new file mode 100644 index 0000000..888b9c9 --- /dev/null +++ b/Waste.WebApi/App/Page/yarn.lock @@ -0,0 +1,11474 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ant-design-vue/pro-layout@^0.3.12": + version "0.3.12" + resolved "https://registry.npmjs.org/@ant-design-vue/pro-layout/-/pro-layout-0.3.12.tgz#d667c98286ee0e9b2ba7dc9f82580754f919c458" + integrity sha512-AebZJJlvTx87M2uwGHzReQ2PSk7gXzpg+noMTaj80bbSSCVeijVqLFBV7+NiG0n40kenmmrGzLmF7Lw26/F0Ag== + dependencies: + ant-design-vue "^1.6.2" + classnames "^2.2.6" + insert-css "^2.0.0" + lodash "^4.17.15" + omit.js "^1.0.2" + umi-request "^1.2.11" + vue-container-query "^0.1.0" + vue-copy-to-clipboard "^1.0.3" + +"@ant-design/colors@^3.1.0", "@ant-design/colors@^3.2.1": + version "3.2.2" + resolved "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-3.2.2.tgz#5ad43d619e911f3488ebac303d606e66a8423903" + integrity sha1-WtQ9YZ6RHzSI66wwPWBuZqhCOQM= + dependencies: + tinycolor2 "^1.4.1" + +"@ant-design/icons-vue@^2.0.0": + version "2.0.0" + resolved "https://registry.npm.taobao.org/@ant-design/icons-vue/download/@ant-design/icons-vue-2.0.0.tgz?cache=0&sync_timestamp=1584960103387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Ficons-vue%2Fdownload%2F%40ant-design%2Ficons-vue-2.0.0.tgz#0357f5010a404e9f34a87a4b41b2a08df691dbce" + integrity sha1-A1f1AQpATp80qHpLQbKgjfaR284= + dependencies: + "@ant-design/colors" "^3.1.0" + babel-runtime "^6.26.0" + +"@ant-design/icons@^2.1.1": + version "2.1.1" + resolved "https://registry.npm.taobao.org/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Ficons%2Fdownload%2F%40ant-design%2Ficons-2.1.1.tgz#7b9c08dffd4f5d41db667d9dbe5e0107d0bd9a4a" + integrity sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko= + +"@antv/adjust@~0.1.0": + version "0.1.1" + resolved "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.1.1.tgz?cache=0&sync_timestamp=1582683423454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fadjust%2Fdownload%2F%40antv%2Fadjust-0.1.1.tgz#e263ab0e1a1941a648842fc086cf65a7e3b75e98" + integrity sha1-4mOrDhoZQaZIhC/Ahs9lp+O3Xpg= + dependencies: + "@antv/util" "~1.3.1" + +"@antv/attr@~0.1.2": + version "0.1.2" + resolved "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.1.2.tgz?cache=0&sync_timestamp=1580873452521&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fattr%2Fdownload%2F%40antv%2Fattr-0.1.2.tgz#2eeb122fcaaf851a2d8749abc7c60519d3f77e37" + integrity sha1-LusSL8qvhRoth0mrx8YFGdP3fjc= + dependencies: + "@antv/util" "~1.3.1" + +"@antv/component@~0.3.3": + version "0.3.9" + resolved "https://registry.npm.taobao.org/@antv/component/download/@antv/component-0.3.9.tgz#ed561c639b7738ce03ff63a866f59e251de82a17" + integrity sha1-7VYcY5t3OM4D/2OoZvWeJR3oKhc= + dependencies: + "@antv/attr" "~0.1.2" + "@antv/g" "~3.3.5" + "@antv/util" "~1.3.1" + wolfy87-eventemitter "~5.1.0" + +"@antv/coord@~0.1.0": + version "0.1.0" + resolved "https://registry.npm.taobao.org/@antv/coord/download/@antv/coord-0.1.0.tgz#48a80ae36d07552f96657e7f8095227c63f0c0a9" + integrity sha1-SKgK420HVS+WZX5/gJUifGPwwKk= + dependencies: + "@antv/util" "~1.3.1" + +"@antv/data-set@^0.10.2": + version "0.10.2" + resolved "https://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.10.2.tgz#584a9574e7e0853847cb658d51b9f7345a00032f" + integrity sha1-WEqVdOfghThHy2WNUbn3NFoAAy8= + dependencies: + "@antv/hierarchy" "~0.4.0" + "@antv/util" "~1.3.1" + d3-array "~1.2.0" + d3-composite-projections "~1.2.0" + d3-dsv "~1.0.5" + d3-geo "~1.6.4" + d3-geo-projection "~2.1.2" + d3-hexjson "~1.0.1" + d3-hierarchy "~1.1.5" + d3-sankey "~0.7.1" + d3-voronoi "~1.1.2" + dagre "~0.8.2" + point-at-length "~1.0.2" + regression "~2.0.0" + simple-statistics "~6.1.0" + topojson-client "~3.0.0" + wolfy87-eventemitter "~5.1.0" + +"@antv/g2-brush@^0.0.2": + version "0.0.2" + resolved "https://registry.npm.taobao.org/@antv/g2-brush/download/@antv/g2-brush-0.0.2.tgz#0b65f3ebbf82690202913d0b6759ab2900faa841" + integrity sha1-C2Xz67+CaQICkT0LZ1mrKQD6qEE= + +"@antv/g2-plugin-slider@^2.1.0": + version "2.1.1" + resolved "https://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.1.1.tgz#c20c5f1cf085bea478f8ab1fc84837e45c46a065" + integrity sha1-wgxfHPCFvqR4+KsfyEg35FxGoGU= + +"@antv/g2@~3.5.3": + version "3.5.15" + resolved "https://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.5.15.tgz#5951808f88210f4a45ca1acb38fb25a743b4a578" + integrity sha1-WVGAj4ghD0pFyhrLOPslp0O0pXg= + dependencies: + "@antv/adjust" "~0.1.0" + "@antv/attr" "~0.1.2" + "@antv/component" "~0.3.3" + "@antv/coord" "~0.1.0" + "@antv/g" "~3.3.6" + "@antv/scale" "~0.1.1" + "@antv/util" "~1.3.1" + venn.js "~0.2.20" + wolfy87-eventemitter "~5.1.0" + +"@antv/g@~3.3.5", "@antv/g@~3.3.6": + version "3.3.6" + resolved "https://registry.npm.taobao.org/@antv/g/download/@antv/g-3.3.6.tgz#11fed9ddc9ed4e5a2aa244b7c8abb982a003f201" + integrity sha1-Ef7Z3cntTloqokS3yKu5gqAD8gE= + dependencies: + "@antv/gl-matrix" "~2.7.1" + "@antv/util" "~1.3.1" + d3-ease "~1.0.3" + d3-interpolate "~1.1.5" + d3-timer "~1.0.6" + wolfy87-eventemitter "~5.1.0" + +"@antv/gl-matrix@^2.7.1", "@antv/gl-matrix@~2.7.1": + version "2.7.1" + resolved "https://registry.npm.taobao.org/@antv/gl-matrix/download/@antv/gl-matrix-2.7.1.tgz#acb8e37f7ab3df01345aba4372d7942be42eba14" + integrity sha1-rLjjf3qz3wE0WrpDcteUK+QuuhQ= + +"@antv/hierarchy@~0.4.0": + version "0.4.0" + resolved "https://registry.npm.taobao.org/@antv/hierarchy/download/@antv/hierarchy-0.4.0.tgz#712b5b4477ee0b8b8db174c682b5356b0411aab6" + integrity sha1-cStbRHfuC4uNsXTGgrU1awQRqrY= + dependencies: + "@antv/util" "~1.3.1" + +"@antv/scale@~0.1.1": + version "0.1.5" + resolved "https://registry.npm.taobao.org/@antv/scale/download/@antv/scale-0.1.5.tgz#243266e8b9047cf64b2fdfc40f9834cf0846496e" + integrity sha1-JDJm6LkEfPZLL9/ED5g0zwhGSW4= + dependencies: + "@antv/util" "~1.3.1" + fecha "~2.3.3" + +"@antv/util@~1.3.1": + version "1.3.1" + resolved "https://registry.npm.taobao.org/@antv/util/download/@antv/util-1.3.1.tgz#30a34b201ff9126ec0d58c72c8166a9c3e644ccd" + integrity sha1-MKNLIB/5Em7A1YxyyBZqnD5kTM0= + dependencies: + "@antv/gl-matrix" "^2.7.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz?cache=0&sync_timestamp=1578953126105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4= + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.9.6.tgz?cache=0&sync_timestamp=1588185911086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" + integrity sha1-P2BMQOQgExr/5vLIBS6aJ1riBJs= + dependencies: + browserslist "^4.11.1" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.9.0": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" + integrity sha1-2aofWAq/OyKG70C2kE05CQTGM3Y= + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.6" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.6" + "@babel/parser" "^7.9.6" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.4.0", "@babel/generator@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.9.6.tgz?cache=0&sync_timestamp=1588185906082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" + integrity sha1-VAjIKsXemM2g132BJOmfofIXCkM= + dependencies: + "@babel/types" "^7.9.6" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.8.3": + 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#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha1-YLwLxlf2Ogkk/5pLSgskoTz03u4= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + 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#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha1-yECXpCegYaxWocMOv1S3si0kFQM= + dependencies: + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-compilation-targets@^7.8.7", "@babel/helper-compilation-targets@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.9.6.tgz?cache=0&sync_timestamp=1588185905418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" + integrity sha1-HgW3zMnTjS+LQLRYs4CgTc+t04o= + dependencies: + "@babel/compat-data" "^7.9.6" + browserslist "^4.11.1" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.9.6.tgz?cache=0&sync_timestamp=1588185905095&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.9.6.tgz#965c8b0a9f051801fd9d3b372ca0ccf200a90897" + integrity sha1-llyLCp8FGAH9nTs3LKDM8gCpCJc= + dependencies: + "@babel/helper-function-name" "^7.9.5" + "@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.9.6" + "@babel/helper-split-export-declaration" "^7.8.3" + +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha1-XYQYC1iPVgt4ZO+u6okkPlgxIIc= + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha1-oGVcrVRRw3YLcm66h18c2PqgLBU= + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.8.3": + 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#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha1-pyjcW06J4w/C38fQT6KKkwZT+YI= + dependencies: + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" + integrity sha1-K1OCDTUnUSDhh0qC5aq+E3aSClw= + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.9.5" + +"@babel/helper-get-function-arity@^7.8.3": + 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=1578951938166&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#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha1-uJS5R70AQ4HOY+odufCFR+kgq9U= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha1-Hb6ba1XXjJtBg/yM3G4wzrg7cTQ= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-member-expression-to-functions@^7.8.3": + 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?cache=0&sync_timestamp=1578951939517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha1-f+OVibOcAWMxtrjD9EHo8LFBlJg= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.9.0.tgz?cache=0&sync_timestamp=1584718808099&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha1-Q7NN/hWWGRhwfSRzJ0MTiOn+luU= + dependencies: + "@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.9.0" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.8.3": + 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?cache=0&sync_timestamp=1578951937431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha1-nqKTvhm6vA9S/4yoizTDYRsghnA= + +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.8.3.tgz?cache=0&sync_timestamp=1578951938163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha1-E5dyYH1RuT8j7/5yEFsxnSpMaWU= + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.8.3": + 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#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha1-JzxgDYub9QBhQsHjWIfVVcEu3YY= + dependencies: + "@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-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6", "@babel/helper-replace-supers@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.9.6.tgz?cache=0&sync_timestamp=1588185907352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" + integrity sha1-AxSdfmpVhqtnZJls0x1pgaF+FEQ= + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha1-f4EJkotNq0ZUB2mGr1dSMd62Oa4= + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.8.3": + 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#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha1-ManzAHD5E2inGCzwX4MXgQZfx6k= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha1-kJd6jm+/a0MafcMXUu7iM78FLYA= + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha1-nb2yu1XvFKqgH+jJm2Kb1TUthhA= + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.9.6.tgz?cache=0&sync_timestamp=1588185908061&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" + integrity sha1-CSx3R0NHHQu2x9461GWrPTSG1YA= + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" + +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha1-TptFzLgreWBycbKXmtgse2gWMHk= + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" + integrity sha1-Oxu7MNq+YAzXLbWHIJmDdv9lO8c= + +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + 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#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha1-utMpxnCzgliXIbJ1QMfSiGAcbm8= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@^7.8.3": + 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?cache=0&sync_timestamp=1578953962040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha1-XgZlSvXNBLYIkVqtqbKmeIAERk4= + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-proposal-decorators@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.8.3.tgz?cache=0&sync_timestamp=1578953963051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.8.3.tgz#2156860ab65c5abf068c3f67042184041066543e" + integrity sha1-IVaGCrZcWr8GjD9nBCGEBBBmVD4= + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-decorators" "^7.8.3" + +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha1-OMT+VVdEgm6X4q6TCw+0zAfmYFQ= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-json-strings@^7.8.3": + 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#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha1-2lIWsjipi1ih4F1oUhBLEPmnDWs= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha1-5FciU/3u1lzd7s/as/kor+sv1dI= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha1-XWdpQJaZ7Js7aGhM2BFs7f+Tutg= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + +"@babel/plugin-proposal-object-rest-spread@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.9.6.tgz?cache=0&sync_timestamp=1588185906386&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.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" + integrity sha1-egk1hvyxiwgmbrGnF32mcaxXW2M= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.9.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + 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#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha1-ne6WqxZQ7tiGRq6XNMoWesSpxck= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha1-MdsWsVTDnWuKZFKSRyuYOUwpKlg= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.8" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha1-7jqV6QzcBP6M2S7DJ5+gF9aKDR0= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.8" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha1-qYP7Gusuw/btBCohD2QOkOeG/g0= + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-decorators@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.8.3.tgz?cache=0&sync_timestamp=1578953928175&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda" + integrity sha1-jSwVqfGvYksAJflhaCqdU9MAG9o= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM= + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-json-strings@^7.8.0": + 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#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo= + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.8.3.tgz?cache=0&sync_timestamp=1578953929606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha1-UhsGyDxASA8eWLT9M7kuzrHW6pQ= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak= + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha1-Dj+2Pgm+obEelkZyccgwgAfnxB8= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE= + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha1-YRGiZbz7Ag6579D9/X0mQCue1sE= + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io= + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.8.3.tgz?cache=0&sync_timestamp=1578951935611&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.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha1-Os3s5pXmsTqvV/wpHRqACVDHE5E= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-arrow-functions@^7.8.3": + 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?cache=0&sync_timestamp=1578951935848&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha1-gndsLtDNnhpJlW2uuJYCTJRzuLY= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-async-to-generator@^7.8.3": + 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#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha1-Qwj60NlAnXHq+5sabuNfnWS2QIY= + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + 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?cache=0&sync_timestamp=1578951934748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha1-Q37sW3mbWFIHIISzrl72boNJ6KM= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-block-scoping@^7.8.3": + 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?cache=0&sync_timestamp=1578951934401&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha1-l9Ndq2aFekN8FmNYuR0JBQyGjzo= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.9.5": + version "7.9.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" + integrity sha1-gAWX3biu/CwpPtJ0WcH8yTWibCw= + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" + "@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" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.8.3": + 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?cache=0&sync_timestamp=1578951933993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha1-ltDSi3985OtbEguy4OlDNDyG+Bs= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-destructuring@^7.9.5": + version "7.9.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" + integrity sha1-csl89fOGBK6jq/O5NbDhex23alA= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": + 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#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha1-w8bsXuYSXGmTxcvKINyGIanqem4= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-duplicate-keys@^7.8.3": + 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?cache=0&sync_timestamp=1578951935457&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha1-jRLfMJqlN/JyiZxWXqF2jihuIfE= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + 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#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha1-WBptf1aXDga/UVYM1k9elHtw17c= + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.9.0.tgz?cache=0&sync_timestamp=1584718807470&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha1-DyYOJ9PinNG7MSjaXnbHYapsEI4= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-function-name@^7.8.3": + 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#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha1-J5NzyycyKqrWfCaD53bfxHGW7Ys= + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.8.3.tgz?cache=0&sync_timestamp=1578951935103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha1-rvI5gj2RmU7Hto5VGTUl1229XcE= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.8.3.tgz?cache=0&sync_timestamp=1578951935289&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.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha1-lj/tS2IKx8v2Apx1VCQCn6OkBBA= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-modules-amd@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.9.6.tgz?cache=0&sync_timestamp=1588185902641&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" + integrity sha1-hTnsQsFT0S6jg24OOsMNWq57JY4= + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.9.0", "@babel/plugin-transform-modules-commonjs@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.9.6.tgz?cache=0&sync_timestamp=1588185907042&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" + integrity sha1-ZLdHSkJ57liMrNGQZpXKchaHwnc= + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.9.6.tgz?cache=0&sync_timestamp=1588185909511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" + integrity sha1-IH8UYceKIx1TN6khQOUkIlENgaQ= + dependencies: + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" + integrity sha1-6Qmsridv7CgPm4IaXzjh8ItIBpc= + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + 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#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha1-oqcr/6ICrA4tBQav0JOcXsvEjGw= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + +"@babel/plugin-transform-new-target@^7.8.3": + 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#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha1-YMwq5m2FyVq1QOs0urtkNNTHDEM= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-object-super@^7.8.3": + 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?cache=0&sync_timestamp=1578960811276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha1-67ah56hv+paFi9asAQLWWUQmFyU= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.9.5": + version "7.9.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" + integrity sha1-FzsmV0b14Vsq/lJ+7aZbc2I6B5U= + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha1-MxlDANhTnB7SjGKtUIe6OAe5gmM= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.8.7" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" + integrity sha1-Xkag3KK+4a2ChesFJ+arycN2cvg= + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.8.3.tgz?cache=0&sync_timestamp=1578951936369&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha1-mgY1rE5mXSmxYoN908xQdF398fU= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-runtime@^7.9.0": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.9.6.tgz?cache=0&sync_timestamp=1588185906678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.9.6.tgz#3ba804438ad0d880a17bca5eaa0cdf1edeedb2fd" + integrity sha1-O6gEQ4rQ2IChe8peqgzfHt7tsv0= + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.8.3": + 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?cache=0&sync_timestamp=1578951936720&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha1-KFRSFuAjqDLU06EYXtSSvP6sCMg= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha1-nI/+gXD9+4ixFOy5ILgvtulf5eg= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-sticky-regex@^7.8.3": + 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?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha1-vnoSkPgdrnZ0dUUhmeH3bWF1sQA= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.8.3": + 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#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha1-e/pHMrRV6mpDEwrcC6dn7A5AKoA= + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.8.4": + 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#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha1-7eQGIxXOCq+KZXqSCFjxovNfxBI= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-unicode-regex@^7.8.3": + 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#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha1-DO8247pz5cVyc+/7GC9GuRoeyq0= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/preset-env@^7.9.0": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" + integrity sha1-3wY7J2xkVexvz8blOqzDjamwrqY= + dependencies: + "@babel/compat-data" "^7.9.6" + "@babel/helper-compilation-targets" "^7.9.6" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.6" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" + "@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.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.5" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.9.5" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.6" + "@babel/plugin-transform-modules-commonjs" "^7.9.6" + "@babel/plugin-transform-modules-systemjs" "^7.9.6" + "@babel/plugin-transform-modules-umd" "^7.9.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.9.5" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.6" + browserslist "^4.11.1" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha1-EyQrU7XvjIg8PPfd3VWzbOgPvHI= + dependencies: + "@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@^7.0.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.9.6.tgz?cache=0&sync_timestamp=1588185905751&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" + integrity sha1-qRAutcre3z8x0IqezylK94J+op8= + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.4.0", "@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha1-hrIq8V+CjfsIZHT5ZNzD45xDzis= + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.9.6.tgz?cache=0&sync_timestamp=1588185904779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" + integrity sha1-VUDXV3aXv2GcxXuSqg8cIxqU9EI= + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.6" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": + version "7.9.6" + resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.9.6.tgz?cache=0&sync_timestamp=1588185868018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" + integrity sha1-LFUCtCclHp3hvS3/la3WRtlcyfc= + dependencies: + "@babel/helper-validator-identifier" "^7.9.5" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha1-+GSuhQBND8q29QvpFBxNo2jRZWo= + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1584145510980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha1-XWftQ/P9QaadS5/3tW58DR0KgeU= + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz?cache=0&sync_timestamp=1578129161086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha1-CnCVreoGckPOMoPhtWuKj0U7JCo= + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha1-/elgZMpEbeyMVajC8TCVewcMbgY= + +"@hapi/joi@^15.0.1": + version "15.1.1" + resolved "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc= + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz?cache=0&sync_timestamp=1578129901832&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck= + dependencies: + "@hapi/hoek" "^8.3.0" + +"@intervolga/optimize-cssnano-plugin@^1.0.5": + version "1.0.6" + resolved "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" + integrity sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg= + dependencies: + cssnano "^4.0.0" + cssnano-preset-default "^4.0.0" + postcss "^7.0.0" + +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/console/download/@jest/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha1-ebG8Bvt0qM+wHL3t+UVYSxuXB/A= + dependencies: + "@jest/source-map" "^24.9.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/core/download/@jest/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha1-LOzNC5MYH5xIUOdPKprUPTUTacQ= + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" + micromatch "^3.1.10" + p-each-series "^1.0.0" + realpath-native "^1.1.0" + rimraf "^2.5.4" + slash "^2.0.0" + strip-ansi "^5.0.0" + +"@jest/environment@^24.3.0", "@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/environment/download/@jest/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha1-IeOvotZcBYbL1svv4gi6+t5Eqxg= + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.3.0", "@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha1-uj5r8O7NCaY2BJiWQ00wZjZUDJM= + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/reporters/download/@jest/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha1-hmYO/44rlmHQQqjpigKLjWMaW0M= + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.1" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + node-notifier "^5.4.2" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-24.9.0.tgz?cache=0&sync_timestamp=1588614796959&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fsource-map%2Fdownload%2F%40jest%2Fsource-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha1-DiY6lEML5LQdpoPMwea//ioZFxQ= + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha1-EXluiqnb+I6gJXV7MVJZWtBroMo= + dependencies: + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/test-sequencer/download/@jest/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha1-+PM081tiWk8vNV8v5+YDba0uazE= + dependencies: + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/transform/download/@jest/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha1-SuJ2iyllU/rasJ6ewRlUPJCxbFY= + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.9.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" + micromatch "^3.1.10" + pirates "^4.0.1" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.3.0", "@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.npm.taobao.org/@jest/types/download/@jest/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha1-Y8smy3UA0Gnlo4lEGnxqtekJ/Fk= + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4= + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs= + +"@soda/friendly-errors-webpack-plugin@^1.7.1": + 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#706f64bcb4a8b9642b48ae3ace444c70334d615d" + integrity sha1-cG9kvLSouWQrSK46zkRMcDNNYV0= + dependencies: + chalk "^1.1.3" + error-stack-parser "^2.0.0" + string-width "^2.0.0" + +"@soda/get-current-script@^1.0.0": + version "1.0.0" + resolved "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.0.tgz#623aa40623550e3b94767cffeb096a6fb597ed09" + integrity sha1-YjqkBiNVDjuUdnz/6wlqb7WX7Qk= + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha1-M2utwb7sudrMOL6izzKt9ieoQho= + +"@types/babel__core@^7.1.0": + version "7.1.7" + resolved "https://registry.npm.taobao.org/@types/babel__core/download/@types/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" + integrity sha1-HaytiEA2SlfJjQ3UhVxt03Usa4k= + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.1" + resolved "https://registry.npm.taobao.org/@types/babel__generator/download/@types/babel__generator-7.6.1.tgz?cache=0&sync_timestamp=1588227921408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbabel__generator%2Fdownload%2F%40types%2Fbabel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha1-SQF2ezl+hxGuuZ3405bXunt/DgQ= + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.npm.taobao.org/@types/babel__template/download/@types/babel__template-7.0.2.tgz?cache=0&sync_timestamp=1588227923635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbabel__template%2Fdownload%2F%40types%2Fbabel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha1-T/Y9a1Lt2sHee5daUiPtMuzqkwc= + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.11" + resolved "https://registry.npm.taobao.org/@types/babel__traverse/download/@types/babel__traverse-7.0.11.tgz?cache=0&sync_timestamp=1588227921734&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbabel__traverse%2Fdownload%2F%40types%2Fbabel__traverse-7.0.11.tgz#1ae3010e8bf8851d324878b42acec71986486d18" + integrity sha1-GuMBDov4hR0ySHi0Ks7HGYZIbRg= + dependencies: + "@babel/types" "^7.3.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1588200011932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA= + +"@types/d3-format@*": + version "1.3.1" + resolved "https://registry.npm.taobao.org/@types/d3-format/download/@types/d3-format-1.3.1.tgz#35bf88264bd6bcda39251165bb827f67879c4384" + integrity sha1-Nb+IJkvWvNo5JRFlu4J/Z4ecQ4Q= + +"@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=1588200013267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fevents%2Fdownload%2F%40types%2Fevents-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc= + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz?cache=0&sync_timestamp=1588200288112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU= + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.1" + resolved "https://registry.npm.taobao.org/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.1.tgz?cache=0&sync_timestamp=1588200627185&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-lib-coverage%2Fdownload%2F%40types%2Fistanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha1-QplbRG25pIoRoH7Ag0mahg6ROP8= + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.npm.taobao.org/@types/istanbul-lib-report/download/@types/istanbul-lib-report-3.0.0.tgz?cache=0&sync_timestamp=1588227930185&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-lib-report%2Fdownload%2F%40types%2Fistanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha1-wUwk8Y6oGQwRjudWK3/5mjZVJoY= + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.npm.taobao.org/@types/istanbul-reports/download/@types/istanbul-reports-1.1.1.tgz?cache=0&sync_timestamp=1588227929995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha1-eoy/akBvNsit2HFiWyeOrwsNJVo= + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jest@^24.0.19": + version "24.9.1" + resolved "https://registry.npm.taobao.org/@types/jest/download/@types/jest-24.9.1.tgz#02baf9573c78f1b9974a5f36778b366aa77bd534" + integrity sha1-Arr5Vzx48bmXSl82d4s2aqd71TQ= + dependencies: + jest-diff "^24.3.0" + +"@types/loader-utils@1.1.3": + version "1.1.3" + resolved "https://registry.npm.taobao.org/@types/loader-utils/download/@types/loader-utils-1.1.3.tgz#82b9163f2ead596c68a8c03e450fbd6e089df401" + integrity sha1-grkWPy6tWWxoqMA+RQ+9bgid9AE= + dependencies: + "@types/node" "*" + "@types/webpack" "*" + +"@types/lodash@*": + version "4.14.150" + resolved "https://registry.npm.taobao.org/@types/lodash/download/@types/lodash-4.14.150.tgz?cache=0&sync_timestamp=1588200708707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Flodash%2Fdownload%2F%40types%2Flodash-4.14.150.tgz#649fe44684c3f1fcb6164d943c5a61977e8cf0bd" + integrity sha1-ZJ/kRoTD8fy2Fk2UPFphl36M8L0= + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0= + +"@types/node@*": + version "13.13.4" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-13.13.4.tgz?cache=0&sync_timestamp=1588201510948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.4.tgz#1581d6c16e3d4803eb079c87d4ac893ee7501c2c" + integrity sha1-FYHWwW49SAPrB5yH1KyJPudQHCw= + +"@types/node@8.9": + version "8.9.5" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-8.9.5.tgz?cache=0&sync_timestamp=1588201510948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-8.9.5.tgz#162b864bc70be077e6db212b322754917929e976" + integrity sha1-FiuGS8cL4Hfm2yErMidUkXkp6XY= + +"@types/node@^8.0.53": + version "8.10.60" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-8.10.60.tgz?cache=0&sync_timestamp=1588201510948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-8.10.60.tgz#73eb4d1e1c8aa5dc724363b57db019cf28863ef7" + integrity sha1-c+tNHhyKpdxyQ2O1fbAZzyiGPvc= + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4= + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha1-aQoUdbhPKohP0HzXl8APXzE1bqg= + +"@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?cache=0&sync_timestamp=1588202412220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk= + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha1-CoUdO9lkmPolwzq3J47TvWXwbD4= + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.npm.taobao.org/@types/strip-bom/download/@types/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.npm.taobao.org/@types/strip-json-comments/download/@types/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha1-mqMMBNshKpoGSdaub9UKzMQHSKE= + +"@types/tapable@*": + version "1.0.5" + resolved "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.5.tgz?cache=0&sync_timestamp=1588202412329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.5.tgz#9adbc12950582aa65ead76bffdf39fe0c27a3c02" + integrity sha1-mtvBKVBYKqZerXa//fOf4MJ6PAI= + +"@types/uglify-js@*": + version "3.9.0" + resolved "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.9.0.tgz?cache=0&sync_timestamp=1588202412738&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.0.tgz#4490a140ca82aa855ad68093829e7fd6ae94ea87" + integrity sha1-RJChQMqCqoVa1oCTgp5/1q6U6oc= + dependencies: + source-map "^0.6.1" + +"@types/webpack-sources@*": + version "0.1.7" + resolved "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-0.1.7.tgz?cache=0&sync_timestamp=1588202412807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-0.1.7.tgz#0a330a9456113410c74a5d64180af0cbca007141" + integrity sha1-CjMKlFYRNBDHSl1kGArwy8oAcUE= + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" + +"@types/webpack@*": + version "4.41.12" + resolved "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.12.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.12.tgz#0386ee2a2814368e2f2397abb036c0bf173ff6c3" + integrity sha1-A4buKigUNo4vI5ersDbAvxc/9sM= + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "15.0.0" + resolved "https://registry.npm.taobao.org/@types/yargs-parser/download/@types/yargs-parser-15.0.0.tgz?cache=0&sync_timestamp=1588203262235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs-parser%2Fdownload%2F%40types%2Fyargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha1-yz+fdBhp4gzOMw/765JxWQSDiC0= + +"@types/yargs@^13.0.0": + version "13.0.8" + resolved "https://registry.npm.taobao.org/@types/yargs/download/@types/yargs-13.0.8.tgz?cache=0&sync_timestamp=1588203262060&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" + integrity sha1-o4wi3vLxwgaPiXGss+pzTrPGSpk= + dependencies: + "@types/yargs-parser" "*" + +"@vue/babel-helper-vue-jsx-merge-props@^1.0.0": + 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#048fe579958da408fb7a8b2a3ec050b50a661040" + integrity sha1-BI/leZWNpAj7eosqPsBQtQpmEEA= + +"@vue/babel-plugin-transform-vue-jsx@^1.1.2": + 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#c0a3e6efc022e75e4247b448a8fc6b86f03e91c0" + integrity sha1-wKPm78Ai515CR7RIqPxrhvA+kcA= + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + html-tags "^2.0.0" + lodash.kebabcase "^4.1.1" + svg-tags "^1.0.0" + +"@vue/babel-preset-app@^4.3.1": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.3.1.tgz#bb67aae562983067c5b242c27fb7de17f40cf109" + integrity sha1-u2eq5WKYMGfFskLCf7feF/QM8Qk= + dependencies: + "@babel/core" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" + "@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.9.0" + "@babel/preset-env" "^7.9.0" + "@babel/runtime" "^7.9.2" + "@vue/babel-preset-jsx" "^1.1.2" + babel-plugin-dynamic-import-node "^2.3.0" + core-js "^3.6.4" + core-js-compat "^3.6.4" + +"@vue/babel-preset-jsx@^1.1.2": + version "1.1.2" + resolved "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.2.tgz?cache=0&sync_timestamp=1573270721644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.1.2.tgz#2e169eb4c204ea37ca66c2ea85a880bfc99d4f20" + integrity sha1-LhaetMIE6jfKZsLqhaiAv8mdTyA= + dependencies: + "@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" + +"@vue/babel-sugar-functional-vue@^1.1.2": + 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#f7e24fba09e6f1ee70104560a8808057555f1a9a" + integrity sha1-9+JPugnm8e5wEEVgqICAV1VfGpo= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-inject-h@^1.1.2": + 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#8a5276b6d8e2ed16ffc8078aad94236274e6edf0" + integrity sha1-ilJ2ttji7Rb/yAeKrZQjYnTm7fA= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-v-model@^1.1.2": + 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#1ff6fd1b800223fc9cb1e84dceb5e52d737a8192" + integrity sha1-H/b9G4ACI/ycsehNzrXlLXN6gZI= + dependencies: + "@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" + camelcase "^5.0.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +"@vue/babel-sugar-v-on@^1.1.2": + 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?cache=0&sync_timestamp=1573270721318&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-on%2Fdownload%2F%40vue%2Fbabel-sugar-v-on-1.1.2.tgz#b2ef99b8f2fab09fbead25aad70ef42e1cf5b13b" + integrity sha1-su+ZuPL6sJ++rSWq1w70Lhz1sTs= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" + camelcase "^5.0.0" + +"@vue/cli-overlay@^4.3.1": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.3.1.tgz?cache=0&sync_timestamp=1586274083715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.3.1.tgz#434529c188b628a54773670201667a0b4a361e07" + integrity sha1-Q0UpwYi2KKVHc2cCAWZ6C0o2Hgc= + +"@vue/cli-plugin-babel@^4.0.4": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.3.1.tgz#6e3a6aa18595b98ad5c52898a2850d452404712b" + integrity sha1-bjpqoYWVuYrVxSiYooUNRSQEcSs= + dependencies: + "@babel/core" "^7.9.0" + "@vue/babel-preset-app" "^4.3.1" + "@vue/cli-shared-utils" "^4.3.1" + babel-loader "^8.1.0" + cache-loader "^4.1.0" + thread-loader "^2.1.3" + webpack "^4.0.0" + +"@vue/cli-plugin-eslint@^4.0.4": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.3.1.tgz#2f5e09bd7d1d8c494134b6c71af2b779938d289a" + integrity sha1-L14JvX0djElBNLbHGvK3eZONKJo= + dependencies: + "@vue/cli-shared-utils" "^4.3.1" + eslint-loader "^2.2.1" + globby "^9.2.0" + inquirer "^7.1.0" + webpack "^4.0.0" + yorkie "^2.0.0" + +"@vue/cli-plugin-router@^4.0.4", "@vue/cli-plugin-router@^4.3.1": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.3.1.tgz#0ba589f4e9a1f3e64a8ff6ccd92f7ce2845586bf" + integrity sha1-C6WJ9Omh8+ZKj/bM2S984oRVhr8= + dependencies: + "@vue/cli-shared-utils" "^4.3.1" + +"@vue/cli-plugin-unit-jest@^4.0.4": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-plugin-unit-jest/download/@vue/cli-plugin-unit-jest-4.3.1.tgz#3b6e936454fe16448001558c493b7cc21fbdc4bf" + integrity sha1-O26TZFT+FkSAAVWMSTt8wh+9xL8= + dependencies: + "@babel/core" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@types/jest" "^24.0.19" + "@vue/cli-shared-utils" "^4.3.1" + babel-core "^7.0.0-bridge.0" + babel-jest "^24.9.0" + babel-plugin-transform-es2015-modules-commonjs "^6.26.2" + deepmerge "^4.2.2" + jest "^24.9.0" + jest-environment-jsdom-fifteen "^1.0.2" + jest-serializer-vue "^2.0.2" + jest-transform-stub "^2.0.0" + jest-watch-typeahead "^0.4.2" + ts-jest "^24.2.0" + vue-jest "^3.0.5" + +"@vue/cli-plugin-vuex@^4.0.4", "@vue/cli-plugin-vuex@^4.3.1": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.3.1.tgz#2b73aff56f9e1be31018873d5ed2d59f155e7476" + integrity sha1-K3Ov9W+eG+MQGIc9XtLVnxVedHY= + +"@vue/cli-service@^4.0.4": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.3.1.tgz#94b2121d08e343a55f7ecef260af5257a9ffe7e5" + integrity sha1-lLISHQjjQ6Vffs7yYK9SV6n/5+U= + dependencies: + "@intervolga/optimize-cssnano-plugin" "^1.0.5" + "@soda/friendly-errors-webpack-plugin" "^1.7.1" + "@soda/get-current-script" "^1.0.0" + "@vue/cli-overlay" "^4.3.1" + "@vue/cli-plugin-router" "^4.3.1" + "@vue/cli-plugin-vuex" "^4.3.1" + "@vue/cli-shared-utils" "^4.3.1" + "@vue/component-compiler-utils" "^3.0.2" + "@vue/preload-webpack-plugin" "^1.1.0" + "@vue/web-component-wrapper" "^1.2.0" + acorn "^7.1.0" + acorn-walk "^7.1.1" + address "^1.1.2" + autoprefixer "^9.7.5" + browserslist "^4.11.1" + 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.4.2" + cssnano "^4.1.10" + debug "^4.1.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.2.0" + hash-sum "^2.0.0" + html-webpack-plugin "^3.2.0" + launch-editor-middleware "^2.2.1" + lodash.defaultsdeep "^4.6.1" + lodash.mapvalues "^4.6.0" + lodash.transform "^4.6.0" + mini-css-extract-plugin "^0.9.0" + minimist "^1.2.5" + pnp-webpack-plugin "^1.6.4" + portfinder "^1.0.25" + postcss-loader "^3.0.0" + ssri "^7.1.0" + terser-webpack-plugin "^2.3.5" + thread-loader "^2.1.3" + url-loader "^2.2.0" + vue-loader "^15.9.1" + vue-style-loader "^4.1.2" + webpack "^4.0.0" + webpack-bundle-analyzer "^3.6.1" + webpack-chain "^6.4.0" + webpack-dev-server "^3.10.3" + webpack-merge "^4.2.2" + +"@vue/cli-shared-utils@^4.3.1": + version "4.3.1" + resolved "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.3.1.tgz#a74bf4d53825d4a4b05a84b03e023974871bc38a" + integrity sha1-p0v01Tgl1KSwWoSwPgI5dIcbw4o= + dependencies: + "@hapi/joi" "^15.0.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" + read-pkg "^5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + semver "^6.1.0" + strip-ansi "^6.0.0" + +"@vue/component-compiler-utils@^3.0.2", "@vue/component-compiler-utils@^3.1.0": + version "3.1.2" + resolved "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.1.2.tgz#8213a5ff3202f9f2137fe55370f9e8b9656081c3" + integrity sha1-ghOl/zIC+fITf+VTcPnouWVggcM= + dependencies: + 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" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + optionalDependencies: + prettier "^1.18.2" + +"@vue/eslint-config-standard@^4.0.0": + version "4.0.0" + resolved "https://registry.npm.taobao.org/@vue/eslint-config-standard/download/@vue/eslint-config-standard-4.0.0.tgz#6be447ee674e3b0f733c584098fd9a22e6d76fcd" + integrity sha1-a+RH7mdOOw9zPFhAmP2aIubXb80= + dependencies: + eslint-config-standard "^12.0.0" + eslint-plugin-import "^2.14.0" + eslint-plugin-node "^8.0.0" + eslint-plugin-promise "^4.0.1" + eslint-plugin-standard "^4.0.0" + +"@vue/preload-webpack-plugin@^1.1.0": + version "1.1.1" + resolved "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.1.tgz#18723530d304f443021da2292d6ec9502826104a" + integrity sha1-GHI1MNME9EMCHaIpLW7JUCgmEEo= + +"@vue/test-utils@^1.0.0-beta.29": + version "1.0.0-beta.33" + resolved "https://registry.npm.taobao.org/@vue/test-utils/download/@vue/test-utils-1.0.0-beta.33.tgz#627511afbd4307e7557634f860a1b985bd25d9cd" + integrity sha1-YnURr71DB+dVdjT4YKG5hb0l2c0= + dependencies: + dom-event-types "^1.0.0" + lodash "^4.17.15" + pretty "^2.0.0" + +"@vue/web-component-wrapper@^1.2.0": + version "1.2.0" + resolved "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1" + integrity sha1-uw5G8VhafiibTuYGfcxaauYvHdE= + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1580599461432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ= + dependencies: + "@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@1.9.0": + 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?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q= + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI= + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA= + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc= + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1580599471846&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg= + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc= + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz?cache=0&sync_timestamp=1580600708901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A= + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&sync_timestamp=1580599464343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y= + dependencies: + "@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@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ= + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU= + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha1-BNM7Y2945qaBMifoJAL3Y3tiKas= + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&sync_timestamp=1580599461044&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha1-P+bXnT8PkiGDqoYALELdJWz+6c8= + dependencies: + "@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@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&sync_timestamp=1580600714947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw= + dependencies: + "@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@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&sync_timestamp=1580600719192&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha1-IhEYHlsxMmRDzIES658LkChyGmE= + dependencies: + "@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@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1580599463057&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4= + dependencies: + "@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@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ= + dependencies: + "@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@1.9.0": + version "1.9.0" + resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz?cache=0&sync_timestamp=1580600723640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha1-STXVTIX+9jewDOn1I3dFHQDUeJk= + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A= + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0= + +abab@^2.0.0: + version "2.0.3" + resolved "https://registry.npm.taobao.org/abab/download/abab-2.0.3.tgz?cache=0&sync_timestamp=1573609024450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fabab%2Fdownload%2Fabab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha1-Yj4gdeAustPyR15J+ZyRhGRnkHo= + +abbrev@1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg= + +abs-svg-path@~0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/abs-svg-path/download/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf" + integrity sha1-32Acjo0roQ1KdtYl4japo5wnI78= + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.1.0, acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha1-n6GSat3BHJcwjE5m163Q1Awycuc= + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^5.0.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha1-TGYGkXPW/daO2FI5/CViJhgrLr4= + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha1-Ejy487hMIXHx9/slJhWxx4prGow= + +acorn-walk@^7.1.1: + version "7.1.1" + resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" + integrity sha1-NF8N/61cc15zc9L+yaECPmpEuD4= + +acorn@^5.5.3: + version "5.7.4" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-5.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha1-Po2KmUfQWZoXltECJddDL0pKz14= + +acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7, acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ= + +acorn@^7.1.0, acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha1-41Zo3gtALzWd5RXFSCoaufiaab8= + +add-dom-event-listener@^1.0.2: + version "1.1.0" + resolved "https://registry.npm.taobao.org/add-dom-event-listener/download/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" + integrity sha1-apLbOg3Qq8JU4JXA8dwUrLuq4xA= + dependencies: + object-assign "4.x" + +address@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY= + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA= + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0= + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo= + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5, ajv@^6.9.1: + version "6.12.2" + resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha1-xinF7O0XuvMUQ3kY0tqIyZ1ZWM0= + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha1-46PaS/uubIapwoViXeEkojQCb78= + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-escapes%2Fdownload%2Fansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-escapes%2Fdownload%2Fansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s= + +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-escapes%2Fdownload%2Fansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE= + dependencies: + type-fest "^0.11.0" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha1-kK51xCTQCNJiTFvynq0xd+v881k= + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ant-design-vue@^1.6.2: + version "1.6.2" + resolved "https://registry.npm.taobao.org/ant-design-vue/download/ant-design-vue-1.6.2.tgz#983634caac9cdaca0b3a095b540105b4f76da29f" + integrity sha1-mDY0yqyc2soLOglbVAEFtPdtop8= + dependencies: + "@ant-design/icons" "^2.1.1" + "@ant-design/icons-vue" "^2.0.0" + add-dom-event-listener "^1.0.2" + array-tree-filter "^2.1.0" + async-validator "^3.0.3" + babel-helper-vue-jsx-merge-props "^2.0.3" + babel-runtime "6.x" + classnames "^2.2.5" + component-classes "^1.2.6" + dom-align "^1.10.4" + dom-closest "^0.2.0" + dom-scroll-into-view "^2.0.0" + enquire.js "^2.1.6" + intersperse "^1.0.0" + is-mobile "^2.2.1" + is-negative-zero "^2.0.0" + ismobilejs "^1.0.0" + json2mq "^0.2.0" + lodash "^4.17.5" + moment "^2.21.0" + mutationobserver-shim "^0.3.2" + node-emoji "^1.10.0" + omit.js "^1.0.0" + raf "^3.4.0" + resize-observer-polyfill "^1.5.1" + shallow-equal "^1.0.0" + shallowequal "^1.0.2" + vue-ref "^2.0.0" + warning "^4.0.0" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha1-vLJLTzeTTZqnrBe0ra+J58du8us= + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= + +arch@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/arch/download/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + integrity sha1-j1wnMao1owkpIhuwZA7tZRdeyE4= + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1571657259891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk= + +array-includes@^3.0.3: + version "3.1.1" + resolved "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha1-zdZ+aFK9+cEhVGB4ZzIlXtJFk0g= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + +array-tree-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" + integrity sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA= + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.1: + version "1.2.3" + resolved "https://registry.npm.taobao.org/array.prototype.flat/download/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA= + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs= + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k= + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8= + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha1-3TeelPDbgxCwgpH51kwyCXZmF/0= + +async-validator@^3.0.3: + version "3.2.4" + resolved "https://registry.npm.taobao.org/async-validator/download/async-validator-3.2.4.tgz#4e773a1d0d741016b455b7995b469a47cce0dbe0" + integrity sha1-Tnc6HQ10EBa0VbeZW0aaR8zg2+A= + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8= + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= + +autoprefixer@^9.7.5: + version "9.7.6" + resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.7.6.tgz?cache=0&sync_timestamp=1586208301301&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.7.6.tgz#63ac5bbc0ce7934e6997207d5bb00d68fa8293a4" + integrity sha1-Y6xbvAznk05plyB9W7ANaPqCk6Q= + dependencies: + browserslist "^4.11.1" + caniuse-lite "^1.0.30001039" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.27" + postcss-value-parser "^4.0.3" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.9.1" + resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4= + +axios@^0.19.0: + version "0.19.2" + resolved "https://registry.npm.taobao.org/axios/download/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha1-PqNsXYgY0NX4qKl6bTa4bNwAyyc= + dependencies: + follow-redirects "1.5.10" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.npm.taobao.org/babel-core/download/babel-core-7.0.0-bridge.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-core%2Fdownload%2Fbabel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha1-laSS3dkPm06aSh2hTrM1uHtjTs4= + +babel-eslint@^10.0.1: + version "10.1.0" + resolved "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI= + dependencies: + "@babel/code-frame" "^7.0.0" + "@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-helper-vue-jsx-merge-props@^2.0.3: + 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#22aebd3b33902328e513293a8e4992b384f9f1b6" + integrity sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY= + +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/babel-jest/download/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha1-P8Mny4RnuJ0U17xw4xUQSng8zVQ= + dependencies: + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.9.0" + chalk "^2.4.2" + slash "^2.0.0" + +babel-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz?cache=0&sync_timestamp=1584715910722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha1-xhHVESvVIJq+i5+oTD5NolJ18cM= + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: + 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=1587495903478&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha1-hP2hnJduxcbe/vV/lCez3vZuF6M= + dependencies: + object.assign "^4.1.0" + +babel-plugin-import@^1.12.2: + version "1.13.0" + resolved "https://registry.npm.taobao.org/babel-plugin-import/download/babel-plugin-import-1.13.0.tgz#c532fd533df9db53b47d4d4db3676090fc5c07a5" + integrity sha1-xTL9Uz3521O0fU1Ns2dgkPxcB6U= + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/runtime" "^7.0.0" + +babel-plugin-istanbul@^5.1.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-5.2.0.tgz?cache=0&sync_timestamp=1577063702695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-istanbul%2Fdownload%2Fbabel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha1-30reg9iXqS3wacTZolzyZxKTyFQ= + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + find-up "^3.0.0" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" + +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-24.9.0.tgz?cache=0&sync_timestamp=1588614796976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-jest-hoist%2Fdownload%2Fbabel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha1-T4NwketAfgFEfIhDy+xUbQAC11Y= + dependencies: + "@types/babel__traverse" "^7.0.6" + +babel-plugin-transform-es2015-modules-commonjs@^6.26.0, babel-plugin-transform-es2015-modules-commonjs@^6.26.2: + 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#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha1-WKeThjqefKhwvcWogRF/+sJ9tvM= + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-remove-console@^6.9.4: + version "6.9.4" + resolved "https://registry.npm.taobao.org/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= + +babel-plugin-transform-strict-mode@^6.24.1: + 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#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@6.23.0: + version "6.23.0" + resolved "https://registry.npm.taobao.org/babel-polyfill/download/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + integrity sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0= + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-24.9.0.tgz?cache=0&sync_timestamp=1588614801833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-preset-jest%2Fdownload%2Fbabel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha1-GStSHiIX+x0fZ89z9wwzZlCtPNw= + dependencies: + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.9.0" + +babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + 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@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + 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" + +babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha1-ry87iPpvXB5MY00aD46sT1WzleM= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha1-e95c7RRbbVUakNuH+DxVi060io8= + dependencies: + 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" + +batch-processor@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/batch-processor/download/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" + integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg= + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" + integrity sha1-MlyGGoIryzWKQceKM7jm4ght3n8= + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4= + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg= + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U= + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha1-EDU8npRTNLwFEabZCzj7x8nFBN8= + dependencies: + file-uri-to-path "1.0.0" + +bluebird@^3.1.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io= + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha1-WXn9PxTNUxVl5fot8av/8d+u5yk= + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY= + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY= + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha1-Mmc0ZC9APavDADIJhTu3CtQo70g= + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha1-jWR0wbhwv9q807z8wZNKEOlPFfA= + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw= + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + 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" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha1-KGlFnZqjviRf6P4sofRuLn9U1z8= + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.8.5: + version "4.12.0" + resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha1-BsbVcVoe3mxR/Dn/Z/1kf3QLZW0= + dependencies: + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" + node-releases "^1.1.53" + pkg-up "^2.0.0" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npm.taobao.org/bs-logger/download/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha1-6302UwenLPl0zGzadraDVK0za9g= + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/bser/download/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU= + dependencies: + node-int64 "^0.4.0" + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow= + +buffer-json@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" + integrity sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1586909009855&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY= + +cacache@^12.0.2, cacache@^12.0.3: + version "12.0.4" + resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw= + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw= + dependencies: + 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" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha1-Cn9GQWgxyLZi7jb+TnxZ129marI= + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" + integrity sha1-mUjK41OuwKH8ser9ojAIFuyFOH4= + dependencies: + buffer-json "^2.0.0" + find-cache-dir "^3.0.0" + loader-utils "^1.2.3" + mkdirp "^0.5.1" + neo-async "^2.6.1" + schema-utils "^2.0.0" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA= + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001039, caniuse-lite@^1.0.30001043: + version "1.0.30001051" + resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001051.tgz#8e944abf9c796bc7ea0bec3c3688a250561fc9ac" + integrity sha1-jpRKv5x5a8fqC+w8NoiiUFYfyaw= + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha1-+5U7+uvreB9iiYI52rtCbQilCaQ= + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@^2.3.0: + 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#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc= + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + 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" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ= + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4= + +charenc@~0.0.1: + version "0.0.2" + resolved "https://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha1-M1bMoZyIlUTy16le1JzlCKDs9VI= + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc= + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + 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" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.4" + resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs= + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ= + dependencies: + tslib "^1.9.0" + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc= + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y= + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha1-+TNprouafOAv1B+q0MqDAzGQxGM= + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.5, classnames@^2.2.6: + version "2.2.6" + resolved "https://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4= + +clean-css@4.2.x: + version "4.2.3" + resolved "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g= + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha1-JkMFp65JDR0Dvwybp8kl0XU68wc= + dependencies: + restore-cursor "^3.1.0" + +cli-highlight@^2.1.4: + version "2.1.4" + resolved "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.4.tgz?cache=0&sync_timestamp=1573948719956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.4.tgz#098cb642cf17f42adc1c1145e07f960ec4d7522b" + integrity sha1-CYy2Qs8X9CrcHBFF4H+WDsTXUis= + dependencies: + chalk "^3.0.0" + highlight.js "^9.6.0" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^5.1.1" + yargs "^15.0.0" + +cli-spinners@^2.0.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.3.0.tgz?cache=0&sync_timestamp=1586157490774&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" + integrity sha1-BjIjmktapMlYYQFCw0u3plH8jfU= + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha1-sEM9C06chH7xiGik7xb9X8gnHEg= + +clipboard@^2.0.0: + version "2.0.6" + resolved "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + integrity sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y= + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +clipboardy@^2.3.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" + integrity sha1-PCkDZQxo5GqRs4iYW8J3QofbopA= + dependencies: + arch "^2.1.1" + execa "^1.0.0" + is-wsl "^2.1.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz?cache=0&sync_timestamp=1573943292170&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz?cache=0&sync_timestamp=1573943292170&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha1-NIQi2+gtgAswIu709qwQvy5NG0k= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1573943292170&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U= + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz?cache=0&sync_timestamp=1573943292170&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE= + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone@2.x, clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM= + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM= + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw= + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha1-aBSOf4XUGtdknF+oyBBvCY0inhA= + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= + dependencies: + delayed-stream "~1.0.0" + +commander@*: + version "5.1.0" + resolved "https://registry.npm.taobao.org/commander/download/commander-5.1.0.tgz?cache=0&sync_timestamp=1587781810870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha1-Rqu9FlL44Fm92u+Zu9yyrZzxea4= + +commander@2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1587781810870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1587781810870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78= + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1587781810870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So= + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-classes@^1.2.6: + version "1.2.6" + resolved "https://registry.npm.taobao.org/component-classes/download/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" + integrity sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE= + dependencies: + component-indexof "0.0.3" + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A= + +component-indexof@0.0.3: + version "0.0.3" + resolved "https://registry.npm.taobao.org/component-indexof/download/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" + integrity sha1-EdCRMSI5648yyPJa6csAL/6NPCQ= + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o= + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48= + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ= + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha1-D96NCRIA616AjK8l/mGMAvSOTvo= + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w= + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha1-ZwY871fOts9Jk6KrOlWECujEkzY= + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" + integrity sha1-IasEMjXHGgfUXZqtmFk7DbpWurc= + dependencies: + bluebird "^3.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +container-query-toolkit@^0.1.3: + version "0.1.3" + resolved "https://registry.npm.taobao.org/container-query-toolkit/download/container-query-toolkit-0.1.3.tgz#79ece9fe491d9187b7051247067f1faac6ce00b0" + integrity sha1-eezp/kkdkYe3BRJHBn8fqsbOALA= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70= + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= + +contour_plot@^0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/contour_plot/download/contour_plot-0.0.1.tgz#475870f032b8e338412aa5fc507880f0bf495c77" + integrity sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc= + +convert-source-map@^1.4.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1573003637425&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI= + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz?cache=0&sync_timestamp=1587525865178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo= + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha1-kilzmMrjSTf8r9bsgTnBgFHwteA= + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-to-clipboard@^3.3.1: + version "3.3.1" + resolved "https://registry.npm.taobao.org/copy-to-clipboard/download/copy-to-clipboard-3.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-to-clipboard%2Fdownload%2Fcopy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" + integrity sha1-EVqhqZmP+rYZb5MHatbaO5E2Yq4= + dependencies: + toggle-selection "^1.0.6" + +copy-webpack-plugin@^5.1.1: + version "5.1.1" + resolved "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" + integrity sha1-VIGgPeoRI9iKmIxv+LeCRyFPC4g= + dependencies: + cacache "^12.0.3" + find-cache-dir "^2.1.0" + glob-parent "^3.1.0" + globby "^7.1.1" + is-glob "^4.0.1" + loader-utils "^1.2.3" + minimatch "^3.0.4" + normalize-path "^3.0.0" + p-limit "^2.2.1" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + webpack-log "^2.0.0" + +core-js-compat@^3.6.2, core-js-compat@^3.6.4: + version "3.6.5" + resolved "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw= + dependencies: + browserslist "^4.8.5" + semver "7.0.0" + +core-js@^2.4.0: + version "2.6.11" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= + +core-js@^3.1.2, core-js@^3.6.4: + version "3.6.5" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1572710682964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha1-BA9yaAnFked6F8CjYmykW08Wixo= + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8= + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY= + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8= + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0: + version "7.0.2" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha1-0Nfc+nTokRXHYZ9PchqU4f23FtY= + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@~0.0.1: + version "0.0.2" + resolved "https://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha1-OWz58xN/A+S45TLFj2mCVOAPgOw= + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha1-wZiUD2OnbX42wecQGLABchBUyyI= + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^3.4.2: + version "3.5.3" + resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-3.5.3.tgz#95ac16468e1adcd95c844729e0bb167639eb0bcf" + integrity sha1-lawWRo4a3NlchEcp4LsWdjnrC88= + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.27" + 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" + postcss-value-parser "^4.0.3" + schema-utils "^2.6.6" + semver "^6.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc= + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz?cache=0&sync_timestamp=1573341911322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1573341911322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8= + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha1-mL69YsTB2flg7DQM+fdSLjBwmiI= + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha1-K/8//huz93bPfu/ZHuXLp3oUnus= + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI= + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.npm.taobao.org/css-what/download/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha1-9KjxJCEGRiG0VnVeNKA6LCLfXaE= + +css@^2.1.0: + version "2.2.4" + resolved "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk= + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4= + +cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y= + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI= + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M= + +cssnano@^4.0.0, cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI= + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.3" + resolved "https://registry.npm.taobao.org/csso/download/csso-4.0.3.tgz?cache=0&sync_timestamp=1585052130344&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha1-DZmF3IUsfMKyys+74QeQFNGo6QM= + dependencies: + css-tree "1.0.0-alpha.39" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.npm.taobao.org/cssom/download/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o= + +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.npm.taobao.org/cssom/download/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha1-WmbPk9LQtmHYC/akT7ZfXC5OChA= + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/cssstyle/download/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha1-nTEyginTxWXGHlhrAgQaKPzNzPE= + dependencies: + cssom "0.3.x" + +cssstyle@^2.0.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/cssstyle/download/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha1-/2ZaDdvcMYZLCWR/NBY0Q9kLCFI= + dependencies: + cssom "~0.3.6" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d3-array@1, d3-array@~1.2.0: + version "1.2.4" + resolved "https://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8= + +d3-collection@1: + version "1.0.7" + resolved "https://registry.npm.taobao.org/d3-collection/download/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" + integrity sha1-NJvSqpl32wcQkcExRNXk8WtbMQ4= + +d3-color@1: + version "1.4.1" + resolved "https://registry.npm.taobao.org/d3-color/download/d3-color-1.4.1.tgz?cache=0&sync_timestamp=1587406877710&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-color%2Fdownload%2Fd3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" + integrity sha1-xSACv4hGraRCTVXZeYL+8m6zvIo= + +d3-composite-projections@~1.2.0: + version "1.2.3" + resolved "https://registry.npm.taobao.org/d3-composite-projections/download/d3-composite-projections-1.2.3.tgz#d4283b32fca77ab0aeab92354f7726410f94b1cc" + integrity sha1-1Cg7MvynerCuq5I1T3cmQQ+Uscw= + dependencies: + d3-geo "^1.11.6" + d3-path "^1.0.7" + +d3-dispatch@1: + version "1.0.6" + resolved "https://registry.npm.taobao.org/d3-dispatch/download/d3-dispatch-1.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-dispatch%2Fdownload%2Fd3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" + integrity sha1-ANN7zuTdjNl3Kd2JOgrCnKq6XVg= + +d3-dsv@~1.0.5: + version "1.0.10" + resolved "https://registry.npm.taobao.org/d3-dsv/download/d3-dsv-1.0.10.tgz#4371c489a2a654a297aca16fcaf605a6f31a6f51" + integrity sha1-Q3HEiaKmVKKXrKFvyvYFpvMab1E= + dependencies: + commander "2" + iconv-lite "0.4" + rw "1" + +d3-ease@1, d3-ease@~1.0.3: + version "1.0.6" + resolved "https://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.6.tgz#ebdb6da22dfac0a22222f2d4da06f66c416a0ec0" + integrity sha1-69ttoi36wKIiIvLU2gb2bEFqDsA= + +d3-format@^1.3.0: + version "1.4.4" + resolved "https://registry.npm.taobao.org/d3-format/download/d3-format-1.4.4.tgz#356925f28d0fd7c7983bfad593726fce46844030" + integrity sha1-NWkl8o0P18eYO/rVk3JvzkaEQDA= + +d3-geo-projection@~2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/d3-geo-projection/download/d3-geo-projection-2.1.2.tgz#7df8e1e9d046d631c6509f7e531357d4adc24aa3" + integrity sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM= + dependencies: + commander "2" + d3-array "1" + d3-geo "^1.1.0" + +d3-geo@^1.1.0, d3-geo@^1.11.6: + version "1.12.0" + resolved "https://registry.npm.taobao.org/d3-geo/download/d3-geo-1.12.0.tgz#58ddbdf4d9db5f199db69d1b7c93dca6454a6f24" + integrity sha1-WN299NnbXxmdtp0bfJPcpkVKbyQ= + dependencies: + d3-array "1" + +d3-geo@~1.6.4: + version "1.6.4" + resolved "https://registry.npm.taobao.org/d3-geo/download/d3-geo-1.6.4.tgz#f20e1e461cb1845f5a8be55ab6f876542a7e3199" + integrity sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk= + dependencies: + d3-array "1" + +d3-hexjson@~1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/d3-hexjson/download/d3-hexjson-1.0.1.tgz#6a23111e8359f1e214f5d0afa379c02b2b67df0b" + integrity sha1-aiMRHoNZ8eIU9dCvo3nAKytn3ws= + dependencies: + d3-array "1" + +d3-hierarchy@~1.1.5: + version "1.1.9" + resolved "https://registry.npm.taobao.org/d3-hierarchy/download/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" + integrity sha1-L2vuJMqupD+Nw3VF+gFihVlkeoM= + +d3-interpolate@1: + version "1.4.0" + resolved "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" + integrity sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc= + dependencies: + d3-color "1" + +d3-interpolate@~1.1.5: + version "1.1.6" + resolved "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6" + integrity sha1-LPOVriOBgE3wiqG/dmt/l7X2j7Y= + dependencies: + d3-color "1" + +d3-path@1, d3-path@^1.0.7: + version "1.0.9" + resolved "https://registry.npm.taobao.org/d3-path/download/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha1-SMBQux/owmJJOoyvVSTj6VkXAc8= + +d3-sankey@~0.7.1: + version "0.7.1" + resolved "https://registry.npm.taobao.org/d3-sankey/download/d3-sankey-0.7.1.tgz#d229832268fc69a7fec84803e96c2256a614c521" + integrity sha1-0imDImj8aaf+yEgD6WwiVqYUxSE= + dependencies: + d3-array "1" + d3-collection "1" + d3-shape "^1.2.0" + +d3-selection@^1.0.2, d3-selection@^1.1.0: + version "1.4.1" + resolved "https://registry.npm.taobao.org/d3-selection/download/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" + integrity sha1-mO7bvghfvaW6+i+ePzovTX1iKpg= + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.npm.taobao.org/d3-shape/download/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha1-32OAG+B7yYa8VPY3ibT+UCmStdc= + dependencies: + d3-path "1" + +d3-timer@1, d3-timer@~1.0.6: + version "1.0.10" + resolved "https://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.10.tgz?cache=0&sync_timestamp=1573938297645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-timer%2Fdownload%2Fd3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + integrity sha1-3+dripF0iDGxO22ceT/71QjdneU= + +d3-transition@^1.0.1: + version "1.3.2" + resolved "https://registry.npm.taobao.org/d3-transition/download/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" + integrity sha1-qY7yFRvo2GAFQ0NMHKgBQK4js5g= + dependencies: + d3-color "1" + d3-dispatch "1" + d3-ease "1" + d3-interpolate "1" + d3-selection "^1.1.0" + d3-timer "1" + +d3-voronoi@~1.1.2: + version "1.1.4" + resolved "https://registry.npm.taobao.org/d3-voronoi/download/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" + integrity sha1-3Tx412U9K7NZKErkeGRdlZRMgpc= + +dagre@~0.8.2: + version "0.8.5" + resolved "https://registry.npm.taobao.org/dagre/download/dagre-0.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdagre%2Fdownload%2Fdagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" + integrity sha1-ujCwBV2sErbB/MJHgXRCd30Gr+4= + dependencies: + graphlib "^2.1.8" + lodash "^4.17.15" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0, data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/data-urls/download/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha1-Fe4Fgrql4iu1nHcUDaj5x2lju/4= + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= + dependencies: + ms "2.0.0" + +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE= + dependencies: + ms "2.0.0" + +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: + version "3.2.6" + resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + dependencies: + ms "^2.1.1" + +decamelize@^1.0.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-equal@^1.0.1, deep-equal@~1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1587708810466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz?cache=0&sync_timestamp=1572279720382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha1-EEmdhohEza1P7ghC34x/bwyVp1M= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.npm.taobao.org/deepmerge/download/deepmerge-4.2.2.tgz?cache=0&sync_timestamp=1572279720382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha1-RNLqNnm49NT/ujPwPYZfwee/SVU= + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs= + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +default-gateway@^5.0.5: + version "5.0.5" + resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10" + integrity sha1-T9a9XShV05s0zFpZUFSG6ar8mxA= + dependencies: + execa "^3.3.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha1-1Flono1lS6d+AqgX+HENcCyxbp0= + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha1-no8RciLqRKMf86FWwEm5kFKp8LQ= + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha1-tmtxwxWFIuirV0T3INjKDCr1kWY= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= + +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/diff-sequences/download/diff-sequences-24.9.0.tgz?cache=0&sync_timestamp=1588614801842&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff-sequences%2Fdownload%2Fdiff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha1-VxXWJE4qpl9Iu6C8ly2wsLEelbU= + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha1-QOjumPVaIUlgcUaSHGPhrl89KHU= + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ= + dependencies: + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo= + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE= + dependencies: + esutils "^2.0.2" + +dom-align@^1.10.4: + version "1.11.1" + resolved "https://registry.npm.taobao.org/dom-align/download/dom-align-1.11.1.tgz?cache=0&sync_timestamp=1584440792731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-align%2Fdownload%2Fdom-align-1.11.1.tgz#7592be99a660a36cdedc1d6eeb22b8109d758cae" + integrity sha1-dZK+maZgo2ze3B1u6yK4EJ11jK4= + +dom-closest@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/dom-closest/download/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" + integrity sha1-69n5HRvyLo1vR3h2u80+yQIWwM8= + dependencies: + dom-matches ">=1.0.1" + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g= + dependencies: + utila "~0.4" + +dom-event-types@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/dom-event-types/download/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae" + integrity sha1-WDCgop4b+Df+UKcM2ApZcjKBPK4= + +dom-matches@>=1.0.1: + version "2.0.0" + resolved "https://registry.npm.taobao.org/dom-matches/download/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" + integrity sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw= + +dom-scroll-into-view@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/dom-scroll-into-view/download/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" + integrity sha1-DezIUigB/Y0/HGujVadNOCxfmJs= + +dom-serializer@0: + 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#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E= + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1588595917712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto= + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8= + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha1-H4vf6R9aeAYydOgDtL3O326U+U0= + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA= + dependencies: + webidl-conversions "^4.0.2" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha1-iAUJfpM9ZehVRvcm1g9euItE+AM= + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo= + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha1-w07MKVVtxF8fTCJpe29JBODMT8s= + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha1-P7rwIL/XlIhAcuomsel5HUWmKfA= + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha1-l+YZJZradQ7qPk6j4mvO6lQksWo= + +dotignore@~0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/dotignore/download/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha1-+ULyIA0ow6dvvdbw7p8yV8ii6QU= + dependencies: + minimatch "^3.0.4" + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk= + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +easy-stack@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz#12c91b3085a37f0baa336e9486eac4bf94e3e788" + integrity sha1-EskbMIWjfwuqM26UhurEv5Tj54g= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.npm.taobao.org/editorconfig/download/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha1-vvhMTnX7jcsM5c7o79UcFZmb78U= + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha1-SGYSh1c9zFPjZsehrlLDoSDuybo= + +electron-to-chromium@^1.3.413: + version "1.3.427" + resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.427.tgz#ea43d02908a8c71f47ebb46e09de5a3cf8236f04" + integrity sha1-6kPQKQioxx9H67RuCd5aPPgjbwQ= + +element-resize-detector@1.1.13: + version "1.1.13" + resolved "https://registry.npm.taobao.org/element-resize-detector/download/element-resize-detector-1.1.13.tgz?cache=0&sync_timestamp=1579090861211&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-resize-detector%2Fdownload%2Felement-resize-detector-1.1.13.tgz#f61907e98a91b1ad215f92790bc15113df68444d" + integrity sha1-9hkH6YqRsa0hX5J5C8FRE99oRE0= + dependencies: + batch-processor "^1.0.0" + +elliptic@^6.0.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc= + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha1-VXBmIEatKeLpFucariYKvf9Pang= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha1-WuZKX0UFe682JuwU2gyl5LJDHrA= + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.1" + resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquire.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npm.taobao.org/enquire.js/download/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" + integrity sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ= + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha1-vfpzUplmTfr9NFKe1PhSKidf6lY= + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q= + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg= + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.0: + version "2.0.6" + resolved "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha1-WpmnB716TFinl5AtSNgoA+3mqtg= + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk= + dependencies: + 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" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.11.1, escodegen@^1.9.1: + version "1.14.1" + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.1.tgz?cache=0&sync_timestamp=1580955044375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha1-ugHQyCeLXpWppFNQFCAmZZAnpFc= + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-standard@^12.0.0: + version "12.0.0" + resolved "https://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" + integrity sha1-Y4tMZdsL1aQTGflruh8V3a0hB9k= + +eslint-import-resolver-node@^0.3.2: + version "0.3.3" + resolved "https://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-import-resolver-node%2Fdownload%2Feslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha1-26pStrKBa1C8ZxGvdUIt6AjphAQ= + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-loader@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-loader%2Fdownload%2Feslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" + integrity sha1-KLnBLaVAV68IReKmEScBova/gzc= + dependencies: + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.4.1: + version "2.6.0" + resolved "https://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha1-V569CU9Wr3eX0ZyYZsnJSGYpv6Y= + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-es@^1.3.1: + version "1.4.1" + resolved "https://registry.npm.taobao.org/eslint-plugin-es/download/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" + integrity sha1-EqyuD0lT52ukRL/RsicQgaxiCZg= + dependencies: + eslint-utils "^1.4.2" + regexpp "^2.0.1" + +eslint-plugin-html@^5.0.0: + version "5.0.5" + resolved "https://registry.npm.taobao.org/eslint-plugin-html/download/eslint-plugin-html-5.0.5.tgz#e2388f813f75b2287cde884811eab287de8e0f56" + integrity sha1-4jiPgT91sih83ohIEeqyh96OD1Y= + dependencies: + htmlparser2 "^3.10.0" + +eslint-plugin-import@^2.14.0: + version "2.20.2" + resolved "https://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.20.2.tgz?cache=0&sync_timestamp=1585455648129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha1-kfw4B84Ivkg3FBJyyLmQc5BuWI0= + dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.1" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.0" + read-pkg-up "^2.0.0" + resolve "^1.12.0" + +eslint-plugin-node@^8.0.0: + version "8.0.1" + resolved "https://registry.npm.taobao.org/eslint-plugin-node/download/eslint-plugin-node-8.0.1.tgz?cache=0&sync_timestamp=1585396050025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-node%2Fdownload%2Feslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" + integrity sha1-Va41YAIoY9FB+noReZUyNApoWWQ= + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^5.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-promise@^4.0.1: + version "4.2.1" + resolved "https://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" + integrity sha1-hF/YsiYK2PglZMEiL85ErXHZQYo= + +eslint-plugin-standard@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" + integrity sha1-/wUZ9/+v8RT3bRvXw5lu7w9uILQ= + +eslint-plugin-vue@^5.2.3: + version "5.2.3" + resolved "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961" + integrity sha1-PudZfYI7VHiASy/rqYY7G3QnOWE= + dependencies: + vue-eslint-parser "^5.0.0" + +eslint-scope@^4.0.0, eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha1-ygODMxD2iJoyZHgaqC5j65z+eEg= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1, eslint-utils@^1.4.2: + version "1.4.3" + resolved "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8= + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI= + +eslint@^5.16.0: + version "5.16.0" + resolved "https://registry.npm.taobao.org/eslint/download/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha1-oeOsGq5KP72Clvz496tzFMu2q+o= + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + 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" + 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" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +espree@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/espree/download/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" + integrity sha1-co1UUeD9FWwEOEp62J7VH/VOsl8= + dependencies: + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/espree/download/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha1-XWUm+k/H8HiKXPdbFfMDI+L4H3o= + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= + +esquery@^1.0.1: + version "1.3.1" + resolved "https://registry.npm.taobao.org/esquery/download/esquery-1.3.1.tgz?cache=0&sync_timestamp=1587061286348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc= + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8= + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1586968505635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-5.1.0.tgz?cache=0&sync_timestamp=1586968505635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha1-N0MJ05/ZNa5QDnuS6Ka0xyDllkI= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" + integrity sha1-9o2Ba8KfHsAsU53FjI3UDOcss24= + +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= + +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs= + +events@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" + integrity sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk= + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA= + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI= + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha1-OgGM61JsxvbfK7UEsr/o46STTsU= + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1576749091315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + 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" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749091315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= + dependencies: + 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" + +execa@^3.3.0: + version "3.4.0" + resolved "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1576749091315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha1-wI7UVQ72XYWPrCaf/IVyRG8364k= + dependencies: + 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" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/expect/download/expect-24.9.0.tgz?cache=0&sync_timestamp=1588630813572&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpect%2Fdownload%2Fexpect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha1-t1FltIFwdPpKFXeU9G/p8boVtso= + dependencies: + "@jest/types" "^24.9.0" + ansi-styles "^3.2.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" + +express@^4.16.3, express@^4.17.1: + version "4.17.1" + resolved "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ= + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.2, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= + +external-editor@^2.0.1: + version "2.2.0" + resolved "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha1-BFURz9jRM/OEZnPRBHwVTiFK09U= + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha1-ywP3QL764D6k0oPK7SdBqD8zVJU= + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM= + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-from-css@^0.4.4: + version "0.4.4" + resolved "https://registry.npm.taobao.org/extract-from-css/download/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" + integrity sha1-HqffLnx8brmSL6COitrqSG9vj5I= + dependencies: + css "^2.1.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ= + +fast-diff@1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" + integrity sha1-S2LEK44D3j+EhGC2OQeZIGldAVQ= + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1582318661510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha1-aVOFfDr6R1//ku5gFdUtpwpM050= + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + 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#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha1-XA6aiWjokSwoZjn96XeosgnyUI4= + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha1-/IT7OdJwnPP/bXQ3BhV7tXCKioU= + dependencies: + bser "2.1.1" + +fecha@~2.3.3: + version "2.3.3" + resolved "https://registry.npm.taobao.org/fecha/download/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" + integrity sha1-lI50FX3xoy/RsSw6PDzctuydls0= + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4= + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz?cache=0&sync_timestamp=1581865349068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz?cache=0&sync_timestamp=1581865349068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w= + dependencies: + flat-cache "^2.0.1" + +file-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8= + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90= + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&sync_timestamp=1582340569604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc= + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0= + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-babel-config@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" + integrity sha1-qbezF+tbmGDNqdVHQKjIM3oig6I= + dependencies: + json5 "^0.5.1" + path-exists "^3.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc= + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha1-ibM/rUpGcNqpT4Vff74x1thP6IA= + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha1-SRafHXmTQwZG2mHsxa41XCHJe3M= + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA= + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha1-RXWyHivO50NKqb5mL0t7X5wrUTg= + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug= + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +fmin@0.0.2: + version "0.0.2" + resolved "https://registry.npm.taobao.org/fmin/download/fmin-0.0.2.tgz#59bbb40d43ffdc1c94cd00a568c41f95f1973017" + integrity sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc= + dependencies: + contour_plot "^0.0.1" + json2module "^0.0.3" + rollup "^0.25.8" + tape "^4.5.1" + uglify-js "^2.6.2" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz?cache=0&sync_timestamp=1585479417937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio= + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0: + version "1.11.0" + resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.11.0.tgz?cache=0&sync_timestamp=1585479417937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" + integrity sha1-r6FPCLoSpSljFA/kMhJliJe8Dss= + dependencies: + debug "^3.0.0" + +for-each@~0.3.3: + version "0.3.3" + resolved "https://registry.npm.taobao.org/for-each/download/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha1-abRH6IoKXTLD5whPPxcQA0shN24= + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha1-TxicRKoSO4lfcigE9V6iPq3DSOk= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628575109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs= + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.12" + resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.12.tgz?cache=0&sync_timestamp=1587572647225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" + integrity sha1-234NjsOwtFck/U2D1DVUqPHw3lw= + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +function-bind@^1.1.1, function-bind@~1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk= + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha1-wbJVV189wh1Zv8ec09K0axw6VLU= + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha1-ASA83JJZf5uQkGfD5lbMH008Tck= + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +git-revision-webpack-plugin@^3.0.6: + version "3.0.6" + resolved "https://registry.npm.taobao.org/git-revision-webpack-plugin/download/git-revision-webpack-plugin-3.0.6.tgz#5dd6c6829fae05b405059dea6195b23875d69d4d" + integrity sha1-XdbGgp+uBbQFBZ3qYZWyOHXWnU0= + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.6: + version "7.1.6" + resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= + dependencies: + 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" + +globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4= + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo= + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha1-/QKacGxwPSm90XD0tts6P3p8tj0= + dependencies: + "@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@^1.2.2: + version "1.2.2" + resolved "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2: + version "4.2.4" + resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha1-Ila94U02MpWMRl68ltxGfKB6Kfs= + +graphlib@^2.1.8: + version "2.1.8" + resolved "https://registry.npm.taobao.org/graphlib/download/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" + integrity sha1-V2HUFHN4cAhMkux7XbywWSydNdo= + dependencies: + lodash "^4.17.15" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ= + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha1-hX95zjWVgMNA1DCBzGSJcNC7I04= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha1-HvievT5JllV2de7ZiTEQ3DUPoIA= + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3, has@~1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM= + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo= + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x, he@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha1-hK5l+n6vsWX922FWauFLrwVmTw8= + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= + +highlight.js@^9.6.0: + version "9.18.1" + resolved "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" + integrity sha1-7SGqAB/mJSuxCj121HVzxlOf4Tw= + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha1-YJIH1mEQADOpqUAq096mdzgcGx0= + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c= + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-encoding-sniffer%2Fdownload%2Fhtml-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg= + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.2.1: + version "1.3.1" + resolved "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ= + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npm.taobao.org/html-escaper/download/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha1-39YAJ9o2o238viNiYsAKWCJoFFM= + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw= + dependencies: + 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" + +html-tags@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= + +html-webpack-plugin@^3.2.0: + 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=1588268411154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= + dependencies: + 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" + +htmlparser2@^3.10.0, htmlparser2@^3.3.0: + version "3.10.1" + resolved "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha1-vWedw/WYl7ajS7EHSchVu1OpOS8= + dependencies: + 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" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY= + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + 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#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha1-GDx9xKoUeRUDBkmMIQza+WCApDo= + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.0" + resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha1-2+VfY+daNH2389mZdPJpKjFKajo= + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584198662293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha1-xbHNFPUK6uCatsWf5jujOV/k36M= + +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@~0.4.13: + 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#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc= + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q= + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM= + +ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw= + +ignore@^5.0.2: + version "5.1.4" + resolved "https://registry.npm.taobao.org/ignore/download/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha1-hLez2+ZFUrbvDsqZ9nQ9vsbZet8= + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.2.1" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY= + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha1-VQcL44pZk88Y72236WH1vuXFoJ0= + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE= + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha1-xM78qo5RBRwqQLos6KPScpWvlGc= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4: + version "1.3.5" + resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= + +inquirer@3.0.6: + version "3.0.6" + resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + integrity sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c= + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo= + dependencies: + 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" + +inquirer@^7.1.0: + version "7.1.0" + resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" + integrity sha1-EpigGFmIPhfHJkuChwrhA0+S3Sk= + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +insert-css@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/insert-css/download/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4" + integrity sha1-610Ql7dUL0x56jBg067gfQU4gPQ= + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1583983247512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc= + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +intersperse@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/intersperse/download/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181" + integrity sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE= + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= + dependencies: + loose-envify "^1.0.0" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI= + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY= + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM= + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM= + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5, is-buffer@~1.1.1: + version "1.1.6" + resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha1-76ouqdqg16suoTqXsritUf776L4= + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs= + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw= + dependencies: + ci-info "^1.5.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw= + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + 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" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc= + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + 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=1576729165697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco= + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw= + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-docker/download/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha1-LLDfDnXi0GT+GGTDfN6st7Lc8ls= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ= + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0= + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha1-fRQK3DiarzARqPKipM+m+q3/sRg= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= + dependencies: + is-extglob "^2.1.1" + +is-mobile@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/is-mobile/download/is-mobile-2.2.1.tgz#10f2320012c410cc285feecb13406bd586f1b2f8" + integrity sha1-EPIyABLEEMwoX+7LE0Br1Ybxsvg= + +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI= + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s= + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha1-v+Lcomxp85cmWkAJljYCk1oFOss= + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha1-fJgQWH1lmkDSe8201WFuqwWUlLI= + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc= + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4, is-regex@^1.0.5, is-regex@~1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4= + dependencies: + has "^1.0.3" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha1-venDJoDW+uBBKdasnZIc54FfeOM= + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/is-string/download/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha1-QEk+0ZjvP/R3uMf5L2ROyCpc06Y= + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-svg%2Fdownload%2Fis-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha1-kyHb0pwhLlypnE+peUxxS8r6L3U= + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc= + dependencies: + has-symbols "^1.0.1" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0= + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE= + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@~0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +ismobilejs@^1.0.0: + version "1.1.1" + resolved "https://registry.npm.taobao.org/ismobilejs/download/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" + integrity sha1-xWygro5Sskyg8iul7zIVot27qg4= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isomorphic-fetch@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.5.tgz?cache=0&sync_timestamp=1577062542104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k= + +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha1-pfY9kfC7wMPkee9MXeAnM17G1jA= + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-2.0.8.tgz?cache=0&sync_timestamp=1577062542584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-report%2Fdownload%2Fistanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha1-WoETzXRtQ8SInro2qxDn1QybTzM= + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-3.0.6.tgz?cache=0&sync_timestamp=1577062542893&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-source-maps%2Fdownload%2Fistanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha1-KEmXxIIRdS7EhiU9qX44ed77qMg= + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.2.6: + version "2.2.7" + resolved "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha1-XZOfYjfXtIOTzAlZ6rQM1P0FaTE= + dependencies: + html-escaper "^2.0.0" + +javascript-stringify@^2.0.1: + 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#6ef358035310e35d667c675ed63d3eb7c1aa19e5" + integrity sha1-bvNYA1MQ411mfGde1j0+t8GqGeU= + +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha1-CNjBXreaf6P8mCabwUtFHugvgDk= + dependencies: + "@jest/types" "^24.9.0" + execa "^1.0.0" + throat "^4.0.0" + +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-cli/download/jest-cli-24.9.0.tgz?cache=0&sync_timestamp=1588630792416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-cli%2Fdownload%2Fjest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha1-rS3mLQdHLUGcarwwH8QyuYsQ0q8= + dependencies: + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + import-local "^2.0.0" + is-ci "^2.0.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^13.3.0" + +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-config/download/jest-config-24.9.0.tgz?cache=0&sync_timestamp=1588630789888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-config%2Fdownload%2Fjest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha1-+xu8YMc6Rq8DWQcZ76SCXm5N0bU= + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + micromatch "^3.1.10" + pretty-format "^24.9.0" + realpath-native "^1.1.0" + +jest-diff@^24.3.0, jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-diff/download/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha1-kxt9DVd4obr3RSy4FuMl43JAVdo= + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-docblock@^24.3.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-docblock/download/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha1-eXAgGAK6Vg4cQJLMJcvt9a9ajOI= + dependencies: + detect-newline "^2.1.0" + +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-each/download/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha1-6y2mAuKmEImNvF8fbfO6hrVfiwU= + dependencies: + "@jest/types" "^24.9.0" + chalk "^2.0.1" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + +jest-environment-jsdom-fifteen@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/jest-environment-jsdom-fifteen/download/jest-environment-jsdom-fifteen-1.0.2.tgz#49a0af55e0d32737a6114a1575dd714702ad63b0" + integrity sha1-SaCvVeDTJzemEUoVdd1xRwKtY7A= + dependencies: + "@jest/environment" "^24.3.0" + "@jest/fake-timers" "^24.3.0" + "@jest/types" "^24.3.0" + jest-mock "^24.0.0" + jest-util "^24.0.0" + jsdom "^15.2.1" + +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-24.9.0.tgz?cache=0&sync_timestamp=1588630813018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-environment-jsdom%2Fdownload%2Fjest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha1-SwgGx/yU+V7bNpppzCd47sK3N1s= + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + jsdom "^11.5.1" + +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-24.9.0.tgz?cache=0&sync_timestamp=1588630812866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-environment-node%2Fdownload%2Fjest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha1-Mz0tJ5b5aH8q7r8HQrUZ8zwcv9M= + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-24.9.0.tgz?cache=0&sync_timestamp=1588614797626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-get-type%2Fdownload%2Fjest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha1-FoSgyKUPLkkBtmRK6GH1ee7S7w4= + +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz?cache=0&sync_timestamp=1588630811797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha1-s4pdZCdJNOIfpBeump++t3zqrH0= + dependencies: + "@jest/types" "^24.9.0" + anymatch "^2.0.0" + fb-watchman "^2.0.0" + graceful-fs "^4.1.15" + invariant "^2.2.4" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" + micromatch "^3.1.10" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" + +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-24.9.0.tgz?cache=0&sync_timestamp=1588630790734&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-jasmine2%2Fdownload%2Fjest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha1-H3sb0yQsF3TmKsq7NkbZavw75qA= + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^24.9.0" + is-generator-fn "^2.0.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + throat "^4.0.0" + +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha1-tmXep8dxAMXE99/LFTtlzwfc+Wo= + dependencies: + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha1-9bNmHV5ijf/m3WUlHf2uDofDoHM= + dependencies: + chalk "^2.0.1" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-24.9.0.tgz?cache=0&sync_timestamp=1588630811500&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-message-util%2Fdownload%2Fjest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha1-Un9UoeOA9eICqNEUmw7IcvQxGeM= + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/stack-utils" "^1.0.1" + chalk "^2.0.1" + micromatch "^3.1.10" + slash "^2.0.0" + stack-utils "^1.0.1" + +jest-mock@^24.0.0, jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-mock/download/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha1-wig1VB7jebkIZzrVEIeiGFwT8cY= + dependencies: + "@jest/types" "^24.9.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.npm.taobao.org/jest-pnp-resolver/download/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha1-7NrmBMB3p/vHDe+21RfDwciYkjo= + +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-24.9.0.tgz?cache=0&sync_timestamp=1588614796820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-regex-util%2Fdownload%2Fjest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha1-wT+zOAveIr9ldUMsST6o/jeWVjY= + +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-24.9.0.tgz?cache=0&sync_timestamp=1588630813165&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-resolve-dependencies%2Fdownload%2Fjest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha1-rQVRmJWcTPuopPBmxnOj8HhlB6s= + dependencies: + "@jest/types" "^24.9.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.9.0" + +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-resolve/download/jest-resolve-24.9.0.tgz?cache=0&sync_timestamp=1588630811658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-resolve%2Fdownload%2Fjest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha1-3/BMdoevNMTdflJIktnPd+XRcyE= + dependencies: + "@jest/types" "^24.9.0" + browser-resolve "^1.11.3" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-runner/download/jest-runner-24.9.0.tgz?cache=0&sync_timestamp=1588630813379&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-runner%2Fdownload%2Fjest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha1-V0+v29VEVcKzS0vfQ2WiOFf830I= + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.4.2" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-docblock "^24.3.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-runtime/download/jest-runtime-24.9.0.tgz?cache=0&sync_timestamp=1588630789405&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-runtime%2Fdownload%2Fjest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha1-nxRYOvak9zFKap2fAibhp4HI5Kw= + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + realpath-native "^1.1.0" + slash "^2.0.0" + strip-bom "^3.0.0" + yargs "^13.3.0" + +jest-serializer-vue@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/jest-serializer-vue/download/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" + integrity sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM= + dependencies: + pretty "2.0.0" + +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz?cache=0&sync_timestamp=1588614796801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-serializer%2Fdownload%2Fjest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha1-5tfX75bTHouQeacUdUxdXFgojnM= + +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-24.9.0.tgz?cache=0&sync_timestamp=1588630814102&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-snapshot%2Fdownload%2Fjest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha1-7I6cpPLsDFyHro+SXPl0l7DpUbo= + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-transform-stub@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/jest-transform-stub/download/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d" + integrity sha1-GQGLCFH3VolyFHpdYAdLVfAiWn0= + +jest-util@^24.0.0, jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-util/download/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha1-c5aBTkhTbS6Fo33j5MQx18sUAWI= + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + callsites "^3.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + mkdirp "^0.5.1" + slash "^2.0.0" + source-map "^0.6.0" + +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-validate/download/jest-validate-24.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-validate%2Fdownload%2Fjest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha1-B3XFU2DRc82FTkAYB1bU/1Le+Ks= + dependencies: + "@jest/types" "^24.9.0" + camelcase "^5.3.1" + chalk "^2.0.1" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watch-typeahead@^0.4.2: + version "0.4.2" + resolved "https://registry.npm.taobao.org/jest-watch-typeahead/download/jest-watch-typeahead-0.4.2.tgz#e5be959698a7fa2302229a5082c488c3c8780a4a" + integrity sha1-5b6Vlpin+iMCIppQgsSIw8h4Cko= + dependencies: + ansi-escapes "^4.2.1" + chalk "^2.4.1" + jest-regex-util "^24.9.0" + jest-watcher "^24.3.0" + slash "^3.0.0" + string-length "^3.1.0" + strip-ansi "^5.0.0" + +jest-watcher@^24.3.0, jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-watcher/download/jest-watcher-24.9.0.tgz?cache=0&sync_timestamp=1588630812894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-watcher%2Fdownload%2Fjest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha1-S1bl0c7/AF9biOUo3Jr8jdTtKzs= + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + jest-util "^24.9.0" + string-length "^2.0.0" + +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1588614797364&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U= + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^25.4.0: + version "25.5.0" + resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1588614797364&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha1-JhHQcbec6g9D7lej0RhZOsFUfbE= + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/jest/download/jest-24.9.0.tgz?cache=0&sync_timestamp=1588630791676&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest%2Fdownload%2Fjest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha1-mH0pDAWgi1LFYYjBAC42jtsAcXE= + dependencies: + import-local "^2.0.0" + jest-cli "^24.9.0" + +js-beautify@^1.6.12, js-beautify@^1.6.14: + version "1.11.0" + resolved "https://registry.npm.taobao.org/js-beautify/download/js-beautify-1.11.0.tgz#afb873dc47d58986360093dcb69951e8bcd5ded2" + integrity sha1-r7hz3EfViYY2AJPctplR6LzV3tI= + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~1.0.3" + nopt "^4.0.3" + +js-message@1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" + integrity sha1-IwDSSxrwjondCVvBpMnJz8uJLRU= + +js-queue@2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948" + integrity sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug= + dependencies: + easy-stack "^1.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1586796260005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz?cache=0&sync_timestamp=1586796260005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.13.0, js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.npm.taobao.org/jsdom/download/jsdom-11.12.0.tgz?cache=0&sync_timestamp=1585532008781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsdom%2Fdownload%2Fjsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha1-GoDUDd03ih3lllbp5txaO6hle8g= + dependencies: + 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" + +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.npm.taobao.org/jsdom/download/jsdom-15.2.1.tgz?cache=0&sync_timestamp=1585532008781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsdom%2Fdownload%2Fjsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha1-0v6xrvcYP4a+UhuMaDP/UpbQfsU= + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q= + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json2module@^0.0.3: + version "0.0.3" + resolved "https://registry.npm.taobao.org/json2module/download/json2module-0.0.3.tgz#00fb5f4a9b7adfc3f0647c29cb17bcd1979be9b2" + integrity sha1-APtfSpt638PwZHwpyxe80Zeb6bI= + dependencies: + rw "^1.3.2" + +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/json2mq/download/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + integrity sha1-tje9O6nqvhIsg+lyBIOusQ0skEo= + dependencies: + string-convert "^0.2.0" + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E= + +json5@2.x, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz?cache=0&sync_timestamp=1586045700847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM= + dependencies: + minimist "^1.2.5" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1586045700847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586045700847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4= + dependencies: + minimist "^1.2.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI= + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha1-cpyR4thXt6QZofmqZWhcTDP1hF0= + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npm.taobao.org/kleur/download/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4= + +launch-editor-middleware@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" + integrity sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc= + dependencies: + launch-editor "^2.2.1" + +launch-editor@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" + integrity sha1-hxtaPuOdZoD8wm03kwtu7aidsMo= + dependencies: + chalk "^2.3.0" + shell-quote "^1.6.1" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha1-bvXS32DlL4LrIopMNz6NHzlyU88= + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha1-W4o6d2Xf4AEmHd6RVYnngvjJTR4= + +less-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/less-loader/download/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + integrity sha1-SY3eOmxsT4h0WO6e0/CGoSrRtGY= + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^4.0.1" + +less@^3.0.4: + version "3.11.1" + resolved "https://registry.npm.taobao.org/less/download/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2" + integrity sha1-xr8I454CQE/mswej3/+v3FW9NuI= + dependencies: + clone "^2.1.2" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.4.1" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.83.0" + source-map "~0.6.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I= + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/levenary/download/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha1-hCqe6Y0gdap/ru2+MmeekgX0b3c= + dependencies: + leven "^3.1.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.3" + resolved "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" + integrity sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k= + dependencies: + find-cache-dir "^0.1.1" + mkdirp "^0.5.1" + +loader-runner@^2.3.1, loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c= + +loader-utils@1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.1.0.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha1-xXm140yzSxp07cbB+za/o3HVphM= + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4= + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha1-Gvujlq/WdqbUJQTQpno6frn2KqA= + dependencies: + p-locate "^4.1.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npm.taobao.org/lodash.get/download/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.mapvalues@^4.6.0: + version "4.6.0" + resolved "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= + +lodash.memoize@4.x, lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.npm.taobao.org/lodash.pick/download/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.npm.taobao.org/lodash.toarray/download/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: + version "4.17.19" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz?cache=0&sync_timestamp=1587898912367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo= + dependencies: + chalk "^2.0.1" + +loglevel@^1.6.6: + version "1.6.8" + resolved "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" + integrity sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE= + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA= + dependencies: + yallist "^3.0.2" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU= + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8= + dependencies: + semver "^6.0.0" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.npm.taobao.org/make-error/download/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha1-LrLjfqm2fEiR9oShOUeZr0hM96I= + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo= + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8= + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/md5/download/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" + integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= + dependencies: + charenc "~0.0.1" + crypt "~0.0.1" + is-buffer "~1.1.1" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs= + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha1-hS3GD8ql2qLoz2yRicRA7T4EKXg= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + 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#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg= + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY= + dependencies: + source-map "^0.6.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A= + +merge2@^1.2.3: + version "1.3.0" + resolved "https://registry.npm.taobao.org/merge2/download/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha1-WzZu6DsvFYLEj4fkfPGpNSEDyoE= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha1-cIWbyVyYQJUvNZoGij/En57PrCM= + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha1-8IA1HIZbDcViqEYpZtqlNUPHik0= + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": + version "1.44.0" + resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1587603342053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I= + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8= + dependencies: + mime-db "1.44.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= + +mime@^2.4.4: + version "2.4.5" + resolved "https://registry.npm.taobao.org/mime/download/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" + integrity sha1-2N4uy5KYLe27ZUHJtoQdfyGOoAk= + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI= + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs= + +mini-css-extract-plugin@^0.9.0: + 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=1576856499989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54= + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + dependencies: + brace-expansion "^1.1.7" + +minimist@1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: + version "1.2.5" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc= + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M= + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.2" + resolved "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" + integrity sha1-PctrtKVG4ylpx61xDyx5qGq7qTo= + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" + integrity sha1-dgfOd4RyoYWtbYkIKqIHD3nO3NU= + dependencies: + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha1-6goykfl+C16HdrNj1fChLZTGcCI= + dependencies: + 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 "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY= + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= + dependencies: + minimist "^1.2.5" + +mkdirp@~1.0.3: + version "1.0.4" + resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha1-PrXtYmInVteaXw4qIh3+utdcL34= + +mockjs2@1.0.8: + version "1.0.8" + resolved "https://registry.npm.taobao.org/mockjs2/download/mockjs2-1.0.8.tgz#37ca061d6c3319d888292aef656434380971c94c" + integrity sha1-N8oGHWwzGdiIKSrvZWQ0OAlxyUw= + dependencies: + commander "*" + +moment@^2.21.0, moment@^2.24.0: + version "2.25.3" + resolved "https://registry.npm.taobao.org/moment/download/moment-2.25.3.tgz#252ff41319cf41e47761a1a88cab30edfe9808c0" + integrity sha1-JS/0ExnPQeR3YaGojKsw7f6YCMA= + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha1-oOx72QVcQoL3kMPIL04o2zsxsik= + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mutationobserver-shim@^0.3.2: + version "0.3.5" + resolved "https://registry.npm.taobao.org/mutationobserver-shim/download/mutationobserver-shim-0.3.5.tgz?cache=0&sync_timestamp=1585656350833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmutationobserver-shim%2Fdownload%2Fmutationobserver-shim-0.3.5.tgz#6f35ce85867b21aa1e58f78892d0ab4eee942c0e" + integrity sha1-bzXOhYZ7IaoeWPeIktCrTu6ULA4= + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha1-FjDEKyJR/4HiooPelqVJfqkuXg0= + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI= + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1: + version "2.14.1" + resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz?cache=0&sync_timestamp=1587495810273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha1-174036MQW5FJTDFHCJMV7/iHSwE= + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk= + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576721537540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw= + dependencies: + lower-case "^1.1.1" + +node-cache@^4.1.1: + version "4.2.1" + resolved "https://registry.npm.taobao.org/node-cache/download/node-cache-4.2.1.tgz?cache=0&sync_timestamp=1575843302914&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-cache%2Fdownload%2Fnode-cache-4.2.1.tgz#efd8474dee4edec4138cdded580f5516500f7334" + integrity sha1-79hHTe5O3sQTjN3tWA9VFlAPczQ= + dependencies: + clone "2.x" + lodash "^4.17.15" + +node-emoji@^1.10.0: + version "1.10.0" + resolved "https://registry.npm.taobao.org/node-emoji/download/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha1-iIar0l2ce7YYAqZYUj0fjSqJsto= + dependencies: + lodash.toarray "^4.4.0" + +node-fetch@1.6.3: + version "1.6.3" + resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-1.6.3.tgz?cache=0&sync_timestamp=1587548798776&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-fetch%2Fdownload%2Fnode-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + integrity sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ= + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-1.7.3.tgz?cache=0&sync_timestamp=1587548798776&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-fetch%2Fdownload%2Fnode-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha1-mA9vcthSEaU0fGsrwYxbhMPrR+8= + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk= + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-ipc@^9.1.1: + version "9.1.1" + resolved "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" + integrity sha1-TiRe1pOOZRAOWV68XcNLFujdXWk= + dependencies: + event-pubsub "4.3.0" + js-message "1.0.5" + js-queue "2.0.0" + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU= + dependencies: + 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" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^5.4.2: + version "5.4.3" + resolved "https://registry.npm.taobao.org/node-notifier/download/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha1-y3La+UyTkECY4oucWQ/YZuRkvVA= + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-releases@^1.1.53: + version "1.1.53" + resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" + integrity sha1-LYIb+kme18Xf/F4vKMiOeKCO4/Q= + +nopt@^4.0.3: + version "4.0.3" + resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.3.tgz?cache=0&sync_timestamp=1583704549918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha1-o3XK2dAv2SEnjZVMIlTVqlfhXkg= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU= + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha1-t+zR5e1T2o43pV4cImnguX7XSOo= + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw= + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.7, nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnwsapi%2Fdownload%2Fnwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha1-IEh5qePQaP8qVROcLHcngGgaOLc= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= + +object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1571657171505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^1.1.4: + version "1.3.1" + resolved "https://registry.npm.taobao.org/object-hash/download/object-hash-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-hash%2Fdownload%2Fobject-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8= + +object-inspect@^1.7.0, object-inspect@~1.7.0: + version "1.7.0" + resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc= + +object-is@^1.0.1: + version "1.1.2" + resolved "https://registry.npm.taobao.org/object-is/download/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo= + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha1-Npvx+VktiridcS3O1cuBx8U1Jkk= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4= + +omit.js@^1.0.0, omit.js@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/omit.js/download/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858" + integrity sha1-kaFPDrqEBm36AVvzDkdMR/MLyFg= + dependencies: + babel-runtime "^6.23.0" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8= + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha1-//DzyRYX/mK7UBiWNumayKbfe+U= + dependencies: + mimic-fn "^2.1.0" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk= + dependencies: + is-wsl "^1.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/opencollective-postinstall/download/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha1-Vlfxvt5ptuM6RZObBh61PTxsOok= + +opencollective@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/opencollective/download/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" + integrity sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE= + dependencies: + babel-polyfill "6.23.0" + chalk "1.1.3" + inquirer "3.0.6" + minimist "1.2.0" + node-fetch "1.6.3" + opn "4.0.2" + +opener@^1.5.1: + version "1.5.1" + resolved "https://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" + integrity sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0= + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/opn/download/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + integrity sha1-erwi5kTf9jsKltWrfyeQwPAavJU= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w= + dependencies: + is-wsl "^1.1.0" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.3" + resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1587481412542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha1-vwdSSRBZo+8+1MhQl1Md6f280xg= + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8= + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1584865515583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo= + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-each-series/download/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= + dependencies: + p-reduce "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1586101408834&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.3.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1586101408834&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE= + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ= + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha1-o0KLtwiLOmApL2aRkni3wpetTwc= + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha1-MQko/u+cnsxltosXaTAYpmXOoXU= + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha1-1wTZr4orpoTiYA2aIVmD1BQal50= + dependencies: + aggregate-error "^3.0.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-reduce/download/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1572521210242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha1-MWtMiJPiyNwc+okfQGxLQivr8yg= + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8= + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw= + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parchment@^1.1.4: + version "1.1.4" + resolved "https://registry.npm.taobao.org/parchment/download/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5" + integrity sha1-rt7Xq5OP6SHUw0vDOc4RaLwv/eU= + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha1-ADJxND2ljclMrOSU+u89IUfs6g4= + dependencies: + asn1.js "^4.0.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-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha1-c+URTJhtFD76NxLU6iTbmkJm9g8= + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse-svg-path@~0.1.1: + version "0.1.2" + resolved "https://registry.npm.taobao.org/parse-svg-path/download/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb" + integrity sha1-en7A0esG+lMlx9PgCbhZoJtdSes= + +parse5-htmlparser2-tree-adapter@^5.1.1: + version "5.1.1" + resolved "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-5.1.1.tgz?cache=0&sync_timestamp=1586993715810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5-htmlparser2-tree-adapter%2Fdownload%2Fparse5-htmlparser2-tree-adapter-5.1.1.tgz#e8c743d4e92194d5293ecde2b08be31e67461cbc" + integrity sha1-6MdD1OkhlNUpPs3isIvjHmdGHLw= + dependencies: + parse5 "^5.1.1" + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha1-bXhlbj2o14tOwLkG98CO8d/j9gg= + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/parse5/download/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha1-xZNByXI/QUxFKXVWTHwApo1YrNI= + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg= + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha1-5sTd1+06onxoogzE5Q4aTug7vEo= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha1-UTvb4tO5XXdi6METfvoZXGxhtbM= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha1-zvMdyOCho7sNEFwM2Xzzv0f0428= + dependencies: + pify "^3.0.0" + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha1-l2wgZTBhexTrsyEUI597CTNuk6Y= + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/pirates/download/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha1-ZDqSyviUVm+RsrmG0sZpUKji+4c= + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM= + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM= + dependencies: + find-up "^4.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs= + +pnp-webpack-plugin@^1.6.4: + version "1.6.4" + resolved "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha1-yXEaxNxIpoXauvyG+Lbdn434QUk= + dependencies: + ts-pnp "^1.1.6" + +point-at-length@~1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/point-at-length/download/point-at-length-1.0.2.tgz#9176d8d6d7c8162f12b646f707db9f0ea728125e" + integrity sha1-kXbY1tfIFi8Stkb3B9ufDqcoEl4= + dependencies: + abs-svg-path "~0.1.1" + isarray "~0.0.1" + parse-svg-path "~0.1.1" + +portfinder@^1.0.25: + version "1.0.26" + resolved "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" + integrity sha1-R1ZY1WyjC+1yrH8TeO01C9G2TnA= + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.2" + resolved "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz?cache=0&sync_timestamp=1582014221563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" + integrity sha1-UE780AjKAnMSBWiweSsWzc3oqsE= + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha1-rgYLzpPteUrHEmTwgTLVUJVr04E= + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8= + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha1-H7q9LCRr/2qq15l7KwkY9NevQDM= + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha1-P+EzzTyCKC5VD8myORdqkge3hOs= + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha1-yMlR6fc+2UKAGUWERKAq2Qu592U= + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha1-ZSrvipZybwKfXj4AFG7npOdV/1c= + dependencies: + postcss "^7.0.0" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM= + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0= + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ= + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha1-NivqT/Wh+Y5AdacTxsslrv75plA= + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY= + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE= + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ= + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g= + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha1-gYcZoa4doyX5gyRGsBE27rSTzX4= + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.2: + 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#e8a6561be914aaf3c052876377524ca90dbb7915" + integrity sha1-6KZWG+kUqvPAUodjd1JMqQ27eRU= + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.16" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha1-OFyuATzHdD9afXYC0Qc6iequYu4= + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA= + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha1-izWt067oOhNrBHHg1ZvlilAoXdQ= + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha1-Db4EpM6QY9RmftK+R2u4MMglk1o= + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8= + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw= + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw= + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha1-jgCcoqOUnNr4rSPmtquZy159KNk= + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs= + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE= + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI= + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4= + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha1-f9QuvqXpyBRgljniwuhK4nC6SN8= + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha1-F++kBerMbge+NBSlyi0QdGgdTik= + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1582039646348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA= + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz?cache=0&sync_timestamp=1582039646348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw= + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha1-F7mXvHEbMzurFDqu07jT1uPTglg= + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w= + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE= + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3: + version "4.1.0" + resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss= + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.29" + resolved "https://registry.npm.taobao.org/postcss/download/postcss-7.0.29.tgz#d3a903872bd52280b83bce38cdc83ce55c06129e" + integrity sha1-06kDhyvVIoC4O844zcg85VwGEp4= + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prettier@^1.18.2: + version "1.19.1" + resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha1-99f1/4qc2HKnvkyhQglZVqYHl8s= + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-24.9.0.tgz?cache=0&sync_timestamp=1588630811763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-format%2Fdownload%2Fpretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha1-EvrDGzcBmk7qPBGqmpWet2KKp8k= + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + +pretty@2.0.0, pretty@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +private@^0.1.8: + version "0.1.8" + resolved "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078= + dependencies: + asap "~2.0.3" + +prompts@^2.0.1: + version "2.3.2" + resolved "https://registry.npm.taobao.org/prompts/download/prompts-2.3.2.tgz?cache=0&sync_timestamp=1584535655273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprompts%2Fdownload%2Fprompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha1-SAVy2J7POVZtK9P+LJ/Mt8TAsGg= + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA= + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk= + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ= + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4= + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= + +qs@^6.9.1: + version "6.9.4" + resolved "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha1-kJCykNH5FyjTwi5UhDykSupatoc= + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha1-YOWl/WSn+L+k0qsu1v30yFutFU4= + +quill-delta@^3.6.2: + version "3.6.3" + resolved "https://registry.npm.taobao.org/quill-delta/download/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032" + integrity sha1-sZ/SuJQSMBxg4f8hPY2GDqwPEDI= + dependencies: + deep-equal "^1.0.1" + extend "^3.0.2" + fast-diff "1.1.2" + +quill@^1.3.4: + version "1.3.7" + resolved "https://registry.npm.taobao.org/quill/download/quill-1.3.7.tgz?cache=0&sync_timestamp=1586557308175&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquill%2Fdownload%2Fquill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8" + integrity sha1-2lsvOixHDpMjQM2/NmjJ8h+Shug= + dependencies: + clone "^2.1.1" + deep-equal "^1.0.1" + eventemitter3 "^2.0.3" + extend "^3.0.2" + parchment "^1.1.4" + quill-delta "^3.6.2" + +raf@^3.4.0: + version "3.4.1" + resolved "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk= + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo= + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha1-ySGW/IarQr6YPxvzF3giSTHWFFg= + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha1-oc5vucm8NWylLoklarWQWeE9AzI= + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.8.4: + version "16.13.1" + resolved "https://registry.npm.taobao.org/react-is/download/react-is-16.13.1.tgz?cache=0&sync_timestamp=1586484609601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ= + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg= + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.1.1: + version "5.2.0" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w= + dependencies: + "@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@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= + dependencies: + 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" + +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg= + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha1-DodiKjMlqjPokihcr4tOhGUppSU= + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +realpath-native@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/realpath-native/download/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha1-IAMpT+oj+wZy8kduviL89Jii1lw= + dependencies: + util.promisify "^1.0.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha1-5d5xEdZV57pgwFfb6f83yH5lzew= + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha1-SoVuxLVuQHfFV1icroXnpMiGmhE= + +regenerator-runtime@^0.10.0: + version "0.10.5" + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz?cache=0&sync_timestamp=1584052481783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1584052481783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= + +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz?cache=0&sync_timestamp=1584052481783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc= + +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha1-UmaFeJZRjRYWp4oEeTN6MOqXTMc= + dependencies: + "@babel/runtime" "^7.8.4" + private "^0.1.8" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw= + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388141321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha1-jRnTHPYySCtYkEn4KB+T28uk0H8= + +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha1-/L9FjFBDGwu3tF1pZ7gZLZHz2Tg= + dependencies: + regenerate "^1.4.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.2.0" + +regjsgen@^0.5.1: + version "0.5.1" + resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw= + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI= + dependencies: + jsesc "~0.5.0" + +regression@~2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/regression/download/regression-2.0.1.tgz#8d29c3e8224a10850c35e337e85a8b2fac3b0c87" + integrity sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc= + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk= + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha1-6aPAgbUTgN/qZ3M2Bh/qh5qCnuk= + dependencies: + lodash "^4.17.15" + +request-promise-native@^1.0.5, request-promise-native@^1.0.7, request-promise-native@^1.0.8: + 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=1572829683581&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest-promise-native%2Fdownload%2Frequest-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha1-pFW5YLgm5E4r+Jma9k3/K/5YyzY= + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.83.0, request@^2.87.0, request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM= + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resize-observer-lite@^0.2.3: + version "0.2.3" + resolved "https://registry.npm.taobao.org/resize-observer-lite/download/resize-observer-lite-0.2.3.tgz#b557f378e2ce9b9aab1dc71a91047bd7ed1d8915" + integrity sha1-tVfzeOLOm5qrHccakQR71+0diRU= + dependencies: + element-resize-detector "1.1.13" + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.x, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.8.1: + version "1.17.0" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha1-sllBtUloIxzC0bt2p5y38sC/hEQ= + dependencies: + path-parse "^1.0.6" + +resolve@~1.15.1: + version "1.15.1" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha1-J73N7/6vLWJEuVuw+fS0ZTRR8+g= + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha1-OfZ8VLOnpYzqUjbZXPADQjljH34= + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.npm.taobao.org/resumer/download/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= + dependencies: + through "~2.3.4" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs= + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw= + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup@^0.25.8: + version "0.25.8" + resolved "https://registry.npm.taobao.org/rollup/download/rollup-0.25.8.tgz#bf6ce83b87510d163446eeaa577ed6a6fc5835e0" + integrity sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA= + dependencies: + chalk "^1.1.1" + minimist "^1.2.0" + source-map-support "^0.3.2" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ= + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU= + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rw@1, rw@^1.3.2: + version "1.3.3" + resolved "https://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/rx/download/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= + +rxjs@^6.4.0, rxjs@^6.5.3: + version "6.5.5" + resolved "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha1-xciE4wlMjP7jG/J+uH5UzPyH+ew= + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk= + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.npm.taobao.org/sane/download/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha1-7Ygf2SJzOmxGG8GJ3CtsAG8//e0= + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.npm.taobao.org/saxes/download/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha1-1Z0f0zLskq2YouCy7mRHAjhLHFs= + dependencies: + xmlchars "^2.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1587138120194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A= + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.6.6: + version "2.6.6" + resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.6.6.tgz?cache=0&sync_timestamp=1587138120194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" + integrity sha1-KZ/mvUozZdwj2Z/URsr/jx1sMww= + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +selfsigned@^1.10.7: + version "1.10.7" + resolved "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs= + dependencies: + node-forge "0.9.0" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc= + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha1-XzyjV2HkfgWyBsba/yz4FPAxa44= + +semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= + +send@0.17.1: + version "0.17.1" + resolved "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg= + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz?cache=0&sync_timestamp=1581860621656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha1-7OxTsOAxe9yV73arcHS3OEeF+mE= + +serialize-javascript@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-3.0.0.tgz?cache=0&sync_timestamp=1581860621656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-3.0.0.tgz#492e489a2d77b7b804ad391a5f5d97870952548e" + integrity sha1-SS5Imi13t7gErTkaX12XhwlSVI4= + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk= + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha1-oY1AUw5vB95CKMfe/kInr4ytAFs= + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM= + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-equal@^1.0.0: + version "1.2.1" + resolved "https://registry.npm.taobao.org/shallow-equal/download/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha1-TBar+lYEOqINBQMk76aJQLDaedo= + +shallowequal@^1.0.2: + version "1.1.0" + resolved "https://registry.npm.taobao.org/shallowequal/download/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha1-GI1SHelbkIdAT9TctosT3wrk5/g= + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo= + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI= + +shell-quote@^1.6.1: + version "1.7.2" + resolved "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha1-1rkYHBpI05cyTISHHvvPxz/AZUs= + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz?cache=0&sync_timestamp=1585280715057&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= + +simple-statistics@~6.1.0: + version "6.1.1" + resolved "https://registry.npm.taobao.org/simple-statistics/download/simple-statistics-6.1.1.tgz#e3a0799ffc49914d6f421c5a4ac585f6a13e2bad" + integrity sha1-46B5n/xJkU1vQhxaSsWF9qE+K60= + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.4: + version "1.0.5" + resolved "https://registry.npm.taobao.org/sisteransi/download/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha1-E01oEpd1ZDfMBcoBNw06elcQde0= + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q= + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY= + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha1-bBdfhv8UvbByRWPo88GwIaKGhTs= + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI= + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0= + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U= + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0= + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ= + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha1-GQhmvs51U+H48mei7oLGBrVQmho= + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.3.2: + version "0.3.3" + resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.3.3.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.3.3.tgz#34900977d5ba3f07c7757ee72e73bb1a9b53754f" + integrity sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8= + dependencies: + source-map "0.1.32" + +source-map-support@^0.5.6, source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha1-qYti+G3K9PZzmWSMCFKRq56P7WE= + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.1.32: + version "0.1.32" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.1.32.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" + integrity sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ= + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0= + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha1-meEZt6XaAOBUkcn6M4t5BII7QdA= + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ= + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha1-ANSGOmQArXXfkzYaFghgXl3NzzE= + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.1: + version "4.0.2" + resolved "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970491493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha1-t09GYgOj7aRSwCSSuR+56EonZ3s= + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha1-fLCd2jqGWFcFxks5pkZgOGguj+I= + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg= + dependencies: + figgy-pudding "^3.5.1" + +ssri@^7.0.0, ssri@^7.1.0: + version "7.1.0" + resolved "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha1-ksJBv23oI2W1x/tL126XVSLhKU0= + dependencies: + figgy-pudding "^3.5.1" + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88= + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha1-M+ujiXeIVYvr/C2wWdwVjsNs67g= + +stackframe@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/stackframe/download/stackframe-1.1.1.tgz?cache=0&sync_timestamp=1578260297790&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71" + integrity sha1-/+8KMxixtgw7WFZJiaylZgcp7HE= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + 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#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +store@^2.0.12: + version "2.0.12" + resolved "https://registry.npm.taobao.org/store/download/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" + integrity sha1-jFNOKguDH3K3X8XxEZhXxE711ZM= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041194718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs= + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha1-6+J6DDibBPvMIzZClS4Qcxr6m64= + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw= + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha1-1wiCgVWasneEJCebCHfaPDktWj0= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/string-length/download/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/string-length/download/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha1-EH74wjRW4Yeoq9SmEWL/SsbiWDc= + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE= + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha1-lSGCxGzHssMT0VluYjmSvRY7crU= + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trim@~1.2.1: + version "1.2.1" + resolved "https://registry.npm.taobao.org/string.prototype.trim/download/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" + integrity sha1-FBIz3/Msgr+tgGhNfl8Iae4Pt4I= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz?cache=0&sync_timestamp=1586465374694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.2.tgz?cache=0&sync_timestamp=1585584322600&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimleft%2Fdownload%2Fstring.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha1-RAiqLl1t3QyagHObCH+8BnwDs8w= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha1-x28c7zDyG7rYr+uNsVEUls+w8qM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz?cache=0&sync_timestamp=1586465375114&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4= + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + 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#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + 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#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + 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#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + 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#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI= + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0= + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/strip-indent/download/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-json-comments@^2.0.0, strip-json-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&sync_timestamp=1586159975241&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU= + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM= + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E= + dependencies: + has-flag "^4.0.0" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433263159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc= + dependencies: + 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.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I= + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha1-EpLRlQDOP4YFOwXw6Ofko7shB54= + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha1-ofzMBrWNth/XpF2i2kT186Pme6I= + +tape@^4.5.1: + version "4.13.2" + resolved "https://registry.npm.taobao.org/tape/download/tape-4.13.2.tgz#eb419b9d9bc004025b1a81a5b63093e07f425629" + integrity sha1-60GbnZvABAJbGoGltjCT4H9CVik= + dependencies: + deep-equal "~1.1.1" + defined "~1.0.0" + dotignore "~0.1.2" + for-each "~0.3.3" + function-bind "~1.1.1" + glob "~7.1.6" + has "~1.0.3" + inherits "~2.0.4" + is-regex "~1.0.5" + minimist "~1.2.0" + object-inspect "~1.7.0" + resolve "~1.15.1" + resumer "~0.0.0" + string.prototype.trim "~1.2.1" + through "~2.3.8" + +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha1-Xsry29xfuZdF/QZ5H0b8ndscmnw= + dependencies: + 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" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^2.3.5: + version "2.3.6" + resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.6.tgz#a4014b311a61f87c6a1b217ef4f5a75bd0665a69" + integrity sha1-pAFLMRph+HxqGyF+9PWnW9BmWmk= + dependencies: + 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 "^3.0.0" + source-map "^0.6.1" + terser "^4.6.12" + webpack-sources "^1.4.3" + +terser@^4.1.2, terser@^4.6.12: + version "4.6.13" + resolved "https://registry.npm.taobao.org/terser/download/terser-4.6.13.tgz?cache=0&sync_timestamp=1588561614797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.6.13.tgz#e879a7364a5e0db52ba4891ecde007422c56a916" + integrity sha1-6HmnNkpeDbUrpIkezeAHQixWqRY= + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.npm.taobao.org/test-exclude/download/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha1-w9Ph4xHrfuQF4JLawQrv0JCR6sA= + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + dependencies: + any-promise "^1.0.0" + +thread-loader@^2.1.3: + version "2.1.3" + resolved "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" + integrity sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo= + dependencies: + loader-runner "^2.3.1" + loader-utils "^1.1.0" + neo-async "^2.6.0" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0= + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6, through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30= + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8= + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM= + +tinycolor2@^1.4.1: + version "1.4.1" + resolved "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + +tmp@^0.0.33: + version "0.0.33" + 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#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha1-bTQzWIl2jSGyvNoKonfO07G/rfk= + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz?cache=0&sync_timestamp=1580550317222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550317222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4= + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.npm.taobao.org/toggle-selection/download/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM= + +topojson-client@~3.0.0: + version "3.0.1" + resolved "https://registry.npm.taobao.org/topojson-client/download/topojson-client-3.0.1.tgz#774c0343b44fc4ec29c3a2274d7a1a9c3b213cd9" + integrity sha1-d0wDQ7RPxOwpw6InTXoanDshPNk= + dependencies: + commander "2" + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1584646121003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha1-zZ+yoKodWhK0c72fuW+j3P9lreI= + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-3.0.1.tgz?cache=0&sync_timestamp=1584646121003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha1-nfT1fnOcJpMKAYGEiH9K233Kc7I= + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz?cache=0&sync_timestamp=1582173420117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftr46%2Fdownload%2Ftr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha1-8shUBoALmw90yfdGW4HqrSQSUvg= + +ts-jest@^24.2.0: + version "24.3.0" + resolved "https://registry.npm.taobao.org/ts-jest/download/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869" + integrity sha1-uXgU4+qzWeqEChrBEt6uaKpECGk= + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha1-pQCtCEsHmPHDBxrzkeZZEshrypI= + +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/tsconfig/download/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha1-hFOIdaTcIW5cSlQys6Tew9VOkbc= + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +tslib@^1.10.0, tslib@^1.9.0: + version "1.11.1" + resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha1-6xXRKIJ/vuKEFUnhcfRe0zisfjU= + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364203962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E= + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha1-jSojcNPfiG61yQraHFv2GIrPg4s= + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha1-mtlWPY6zrN+404WX0q8dgV9qdV8= + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^2.6.2: + version "2.8.29" + resolved "https://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +umi-request@^1.2.11: + version "1.2.19" + resolved "https://registry.npm.taobao.org/umi-request/download/umi-request-1.2.19.tgz?cache=0&sync_timestamp=1582015205176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fumi-request%2Fdownload%2Fumi-request-1.2.19.tgz#57ec16322506674f2d6392d553119829cedb1589" + integrity sha1-V+wWMiUGZ08tY5LVUxGYKc7bFYk= + dependencies: + isomorphic-fetch "^2.2.1" + qs "^6.9.1" + +unicode-canonical-property-names-ecmascript@^1.0.4: + 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#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha1-JhmADEyCWADv3YNDr33Zkzy+KBg= + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw= + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + 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#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha1-DZH2AO7rMJaqlisdb8iIduZOpTE= + +unicode-property-aliases-ecmascript@^1.0.4: + 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=1583945910569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ= + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc= + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA= + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha1-uqvOkQg/xk6UWw861hPiZPfNTmw= + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583530825899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ= + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^2.2.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" + integrity sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs= + dependencies: + loader-utils "^1.2.3" + mime "^2.4.4" + schema-utils "^2.5.0" + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha1-qKg1NejACjFuQDpdtKwbm4U64ng= + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8= + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA= + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha1-a693dLgO6w91INi4HQeYKlmruu4= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE= + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha1-4rgApT56Kbk1BsPPQRANFsTErY4= + +venn.js@~0.2.20: + version "0.2.20" + resolved "https://registry.npm.taobao.org/venn.js/download/venn.js-0.2.20.tgz#3f0e50cc75cba1f58692a8a32f67bd7aaf1aa6fa" + integrity sha1-Pw5QzHXLofWGkqijL2e9eq8apvo= + dependencies: + d3-selection "^1.0.2" + d3-transition "^1.0.1" + fmin "0.0.2" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +viser-vue@^2.4.6: + version "2.4.8" + resolved "https://registry.npm.taobao.org/viser-vue/download/viser-vue-2.4.8.tgz#3fdb058445cba59c1ccee9cc9c2024bec29926d4" + integrity sha1-P9sFhEXLpZwczunMnCAkvsKZJtQ= + dependencies: + "@types/node" "*" + viser "^2.0.0" + vue "^2.5.3" + +viser@^2.0.0: + version "2.4.9" + resolved "https://registry.npm.taobao.org/viser/download/viser-2.4.9.tgz#57f4c70f5702fb80e38843f29025cea575cbc60a" + integrity sha1-V/THD1cC+4DjiEPykCXOpXXLxgo= + dependencies: + "@antv/g2" "~3.5.3" + "@antv/g2-brush" "^0.0.2" + "@antv/g2-plugin-slider" "^2.1.0" + "@types/d3-format" "*" + "@types/lodash" "*" + "@types/node" "^8.0.53" + d3-format "^1.3.0" + lodash "^4.17.4" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870717730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha1-eGQcSIuObKkadfUR56OzKobl3aA= + +vue-clipboard2@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.2.1.tgz#9f06690af1c98aef344be1fc4beb00cdc5307ee1" + integrity sha1-nwZpCvHJiu80S+H8S+sAzcUwfuE= + dependencies: + clipboard "^2.0.0" + +vue-container-query@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/vue-container-query/download/vue-container-query-0.1.0.tgz#8210b49388f2350aa4afda92df5caca18ff220a1" + integrity sha1-ghC0k4jyNQqkr9qS31ysoY/yIKE= + dependencies: + container-query-toolkit "^0.1.3" + resize-observer-lite "^0.2.3" + vue "^2.5.17" + +vue-copy-to-clipboard@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/vue-copy-to-clipboard/-/vue-copy-to-clipboard-1.0.3.tgz#b415302b343b9185add4fc579c0721a16c8e65ac" + integrity sha512-FSgewqG+2NwNsAnKOZqZ6GZqNvrbauVh/Y5z+xkbu9AmFqiWlQLKaFc+7BcsYCVZ2TaQnhjcHbDycVRVGFJypQ== + dependencies: + copy-to-clipboard "^3.3.1" + +vue-cropper@0.4.9: + version "0.4.9" + resolved "https://registry.npm.taobao.org/vue-cropper/download/vue-cropper-0.4.9.tgz#fe650f32516ecf29014bbd4a9079191c8dc5a5ae" + integrity sha1-/mUPMlFuzykBS71KkHkZHI3Fpa4= + +vue-eslint-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-5.0.0.tgz?cache=0&sync_timestamp=1573306368916&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" + integrity sha1-APTk2pTsl0uCGib/DtD3p4QCuKE= + dependencies: + 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" + +vue-hot-reload-api@^2.3.0: + version "2.3.4" + resolved "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" + integrity sha1-UylVzB6yCKPZkLOp+acFdGV+CPI= + +vue-i18n@^8.17.4: + version "8.17.4" + resolved "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.17.4.tgz#d314df7a3fa0780f86cff46a02752668f89b3935" + integrity sha1-0xTfej+geA+Gz/RqAnUmaPibOTU= + +vue-jest@^3.0.5: + version "3.0.5" + resolved "https://registry.npm.taobao.org/vue-jest/download/vue-jest-3.0.5.tgz?cache=0&sync_timestamp=1585992692488&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-jest%2Fdownload%2Fvue-jest-3.0.5.tgz#d6f124b542dcbff207bf9296c19413f4c40b70c9" + integrity sha1-1vEktULcv/IHv5KWwZQT9MQLcMk= + dependencies: + 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-loader@^15.9.1: + version "15.9.2" + resolved "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.2.tgz?cache=0&sync_timestamp=1588347759078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.2.tgz#ae01f5f4c9c6a04bff4483912e72ef91a402c1ae" + integrity sha1-rgH19MnGoEv/RIORLnLvkaQCwa4= + dependencies: + "@vue/component-compiler-utils" "^3.1.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + +vue-quill-editor@^3.0.6: + version "3.0.6" + resolved "https://registry.npm.taobao.org/vue-quill-editor/download/vue-quill-editor-3.0.6.tgz#1f85646211d68a31a80a72cb7f45bb2f119bc8fb" + integrity sha1-H4VkYhHWijGoCnLLf0W7LxGbyPs= + dependencies: + object-assign "^4.1.1" + quill "^1.3.4" + +vue-ref@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/vue-ref/download/vue-ref-2.0.0.tgz#483084d732abed11da796778a8266a3af0ea1a9c" + integrity sha1-SDCE1zKr7RHaeWd4qCZqOvDqGpw= + +vue-router@^3.1.2: + version "3.1.6" + resolved "https://registry.npm.taobao.org/vue-router/download/vue-router-3.1.6.tgz#45f5a3a3843e31702c061dd829393554e4328f89" + integrity sha1-RfWjo4Q+MXAsBh3YKTk1VOQyj4k= + +vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: + version "4.1.2" + resolved "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" + integrity sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg= + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-svg-component-builder@2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/vue-svg-component-builder/download/vue-svg-component-builder-2.0.3.tgz#c4e0a19073587ab882fd6f72bb7b3b63b4396801" + integrity sha1-xOChkHNYeriC/W9yu3s7Y7Q5aAE= + +vue-svg-component-runtime@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/vue-svg-component-runtime/download/vue-svg-component-runtime-1.0.1.tgz#c4c241cdf92fead742ef33133b997ff42d8b9ee6" + integrity sha1-xMJBzfkv6tdC7zMTO5l/9C2LnuY= + +vue-svg-icon-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/vue-svg-icon-loader/download/vue-svg-icon-loader-2.1.1.tgz#7b999ccb0647ce3b3903bfbf535fe247e11b032a" + integrity sha1-e5mcywZHzjs5A7+/U1/iR+EbAyo= + dependencies: + "@types/loader-utils" "1.1.3" + "@types/node" "8.9" + loader-utils "1.1.0" + vue-svg-component-builder "2.0.3" + +vue-template-compiler@^2.6.10: + version "2.6.11" + resolved "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" + integrity sha1-wEcE749JixUxMAGJk+VjCdRpgIA= + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU= + +vue@^2.5.17, vue@^2.5.3, vue@^2.6.10: + version "2.6.11" + resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5" + integrity sha1-dllNh31LEiNEBuhONSdcbVFBJcU= + +vuex@^3.1.1: + version "3.3.0" + resolved "https://registry.npm.taobao.org/vuex/download/vuex-3.3.0.tgz#665b4630ea1347317139fcc5cb495aab3ec5e513" + integrity sha1-ZltGMOoTRzFxOfzFy0laqz7F5RM= + +w3c-hr-time@^1.0.1: + 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#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha1-ConN9cwVgi35w2BUNnaWPgzDCM0= + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/w3c-xmlserializer/download/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha1-MEhcp9cKb9BSQgo9Ev2Q5jOc55Q= + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +wangeditor@^3.1.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/wangeditor/download/wangeditor-3.1.1.tgz#fbd3c1d4976923c9edebb85b29d30b35512ad039" + integrity sha1-+9PB1JdpI8nt67hbKdMLNVEq0Dk= + +warning@^4.0.0: + version "4.0.3" + resolved "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha1-Fungd+uKhtavfWSqHgX9hbRnjKM= + dependencies: + loose-envify "^1.0.0" + +watchpack@^1.6.1: + version "1.6.1" + resolved "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" + integrity sha1-KA2gqHGFkhdAEMB4x1hadM2M0OI= + dependencies: + chokidar "^2.1.8" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha1-wdjRSTFtPqhShIiVy2oL/oh7h98= + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + 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#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha1-qFWYCx8LazWbodXZ+zmulB+qY60= + +webpack-bundle-analyzer@^3.6.1: + version "3.7.0" + resolved "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.7.0.tgz?cache=0&sync_timestamp=1586846559504&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.7.0.tgz#84da434e89442899b884d9ad38e466d0db02a56f" + integrity sha1-hNpDTolEKJm4hNmtOORm0NsCpW8= + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.15" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-chain@^6.4.0: + version "6.4.0" + resolved "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.4.0.tgz?cache=0&sync_timestamp=1580740803516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.4.0.tgz#22f0b27b6a9bc9ee3cba4f9e6513cf66394034e2" + integrity sha1-IvCye2qbye48uk+eZRPPZjlANOI= + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + +webpack-dev-middleware@^3.7.2: + version "3.7.2" + resolved "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM= + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.10.3: + version "3.10.3" + resolved "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha1-81lFA2gT5X71gsJCDve0cOFNOvA= + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.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" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.25" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.4.0" + spdy "^4.0.1" + 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" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8= + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha1-onxS6ng9E5iv0gh/VH17nS9DY00= + dependencies: + lodash "^4.17.15" + +webpack-sources@*, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha1-7t2OwLko+/HL/plOItLYkPMwqTM= + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-theme-color-replacer@^1.3.12: + version "1.3.12" + resolved "https://registry.npm.taobao.org/webpack-theme-color-replacer/download/webpack-theme-color-replacer-1.3.12.tgz#0593a3149310c0e5b6b85afeccd61925b1b8e86b" + integrity sha1-BZOjFJMQwOW2uFr+zNYZJbG46Gs= + dependencies: + webpack-sources "*" + +webpack@^4.0.0: + version "4.43.0" + resolved "https://registry.npm.taobao.org/webpack/download/webpack-4.43.0.tgz?cache=0&sync_timestamp=1588187519205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha1-xIVHsR1WMiTFYdrRFyyKoLimeOY= + dependencies: + "@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.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + 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.6.1" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha1-otTg1PTxFvHmKX66WLBdQwEA6fk= + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA= + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@>=0.10.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha1-/IBORYzEYACbGiuWa8iBfSV4rvs= + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78= + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha1-8t8Cv/F2/WUHDfdK1cy7WhmZZag= + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha1-wsSS8eymEpiO/T0iZr4bn8YXDQY= + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE= + dependencies: + isexe "^2.0.0" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +wolfy87-eventemitter@~5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwolfy87-eventemitter%2Fdownload%2Fwolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011" + integrity sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE= + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag= + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha1-H9H2cjXVttD+54EFYAG/tpTAOwk= + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha1-6Tk7oHEC5skaOyIUePAlfNKFblM= + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@2.4.1: + version "2.4.1" + resolved "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.1.tgz?cache=0&sync_timestamp=1582584103455&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite-file-atomic%2Fdownload%2Fwrite-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + integrity sha1-0LBUY8GIroBDlv1asqNwBir4dSk= + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM= + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.npm.taobao.org/ws/download/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha1-3/7xSGa46NyRM1glFNG++vlumA8= + dependencies: + async-limiter "~1.0.0" + +ws@^6.0.0, ws@^6.2.1: + version "6.2.1" + resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha1-RC/fCkftZPWbal2P8TD0dI7VJPs= + dependencies: + async-limiter "~1.0.0" + +ws@^7.0.0: + version "7.2.5" + resolved "https://registry.npm.taobao.org/ws/download/ws-7.2.5.tgz#abb1370d4626a5a9cd79d8de404aa18b3465d10d" + integrity sha1-q7E3DUYmpanNedjeQEqhizRl0Q0= + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo= + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.npm.taobao.org/xmlchars/download/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs= + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha1-le+U+F7MgdAHwmThkKEg8KPIVms= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= + +yargs-parser@10.x: + version "10.1.0" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha1-cgImW4n36eny5XZeD+c1qQXtuqg= + dependencies: + camelcase "^4.1.0" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ= + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha1-Ew8JcC667vJlDVTObj5XBvek+zg= + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.1: + version "18.1.3" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A= + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@12.0.5: + version "12.0.5" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM= + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.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 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha1-rX/+/sGqWVZayRX4Lcyzipwxot0= + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.0.0: + version "15.3.1" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha1-lQW0cnY5Y+VK/mAUitJ6MwgY6Ys= + dependencies: + 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 "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yorkie@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" + integrity sha1-kkEZEtQ1IU4SxRwq4Qk+VLa7g9k= + dependencies: + execa "^0.8.0" + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0" diff --git a/Waste.sln b/Waste.sln new file mode 100644 index 0000000..0f7cc67 --- /dev/null +++ b/Waste.sln @@ -0,0 +1,67 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31112.23 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Waste.Core", "Waste.Core\Waste.Core.csproj", "{66BD6750-82F0-4FF3-97B8-51A87BD096A9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Waste.Application", "Waste.Application\Waste.Application.csproj", "{197E483B-0F80-488C-9669-7A1056CDD69E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Waste.Web.Core", "Waste.Web.Core\Waste.Web.Core.csproj", "{CB3D9507-2A96-47E1-9924-84F17CCB6039}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Waste.Domain", "Waste.Domain\Waste.Domain.csproj", "{966E7406-6933-475B-81BA-7BA6C1B95255}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1、doc", "1、doc", "{8F5D063C-E957-4637-98DD-62A1E7C25DA0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2、src", "2、src", "{A10953C4-FF58-42A1-AAEF-7B68018F5EDB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Waste.Doc", "Waste.Doc\Waste.Doc.csproj", "{1AC0354D-4FF7-4F32-8F8C-8954F08EEC93}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Waste.Web", "Waste.Web\Waste.Web.csproj", "{E4BA657F-E571-4C0F-A1DA-1468A5B5ADF0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {66BD6750-82F0-4FF3-97B8-51A87BD096A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66BD6750-82F0-4FF3-97B8-51A87BD096A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66BD6750-82F0-4FF3-97B8-51A87BD096A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66BD6750-82F0-4FF3-97B8-51A87BD096A9}.Release|Any CPU.Build.0 = Release|Any CPU + {197E483B-0F80-488C-9669-7A1056CDD69E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {197E483B-0F80-488C-9669-7A1056CDD69E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {197E483B-0F80-488C-9669-7A1056CDD69E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {197E483B-0F80-488C-9669-7A1056CDD69E}.Release|Any CPU.Build.0 = Release|Any CPU + {CB3D9507-2A96-47E1-9924-84F17CCB6039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB3D9507-2A96-47E1-9924-84F17CCB6039}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB3D9507-2A96-47E1-9924-84F17CCB6039}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB3D9507-2A96-47E1-9924-84F17CCB6039}.Release|Any CPU.Build.0 = Release|Any CPU + {966E7406-6933-475B-81BA-7BA6C1B95255}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {966E7406-6933-475B-81BA-7BA6C1B95255}.Debug|Any CPU.Build.0 = Debug|Any CPU + {966E7406-6933-475B-81BA-7BA6C1B95255}.Release|Any CPU.ActiveCfg = Release|Any CPU + {966E7406-6933-475B-81BA-7BA6C1B95255}.Release|Any CPU.Build.0 = Release|Any CPU + {1AC0354D-4FF7-4F32-8F8C-8954F08EEC93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AC0354D-4FF7-4F32-8F8C-8954F08EEC93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AC0354D-4FF7-4F32-8F8C-8954F08EEC93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AC0354D-4FF7-4F32-8F8C-8954F08EEC93}.Release|Any CPU.Build.0 = Release|Any CPU + {E4BA657F-E571-4C0F-A1DA-1468A5B5ADF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4BA657F-E571-4C0F-A1DA-1468A5B5ADF0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4BA657F-E571-4C0F-A1DA-1468A5B5ADF0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4BA657F-E571-4C0F-A1DA-1468A5B5ADF0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {66BD6750-82F0-4FF3-97B8-51A87BD096A9} = {A10953C4-FF58-42A1-AAEF-7B68018F5EDB} + {197E483B-0F80-488C-9669-7A1056CDD69E} = {A10953C4-FF58-42A1-AAEF-7B68018F5EDB} + {CB3D9507-2A96-47E1-9924-84F17CCB6039} = {A10953C4-FF58-42A1-AAEF-7B68018F5EDB} + {966E7406-6933-475B-81BA-7BA6C1B95255} = {A10953C4-FF58-42A1-AAEF-7B68018F5EDB} + {1AC0354D-4FF7-4F32-8F8C-8954F08EEC93} = {8F5D063C-E957-4637-98DD-62A1E7C25DA0} + {E4BA657F-E571-4C0F-A1DA-1468A5B5ADF0} = {A10953C4-FF58-42A1-AAEF-7B68018F5EDB} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {086B267B-9152-4816-8D48-30032ACB8A2C} + EndGlobalSection +EndGlobal