From b26b8e723fbc6d355c0b1e5b3dd755a92aeb7685 Mon Sep 17 00:00:00 2001 From: hzh <1349027303@qq.com> Date: Thu, 19 Aug 2021 21:36:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=BA=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.vscode/launch.json | 33 + .../.vscode/tasks.json | 42 + .../.gitignore | 2 + .../Controllers/AddRessController.cs | 188 + .../Controllers/BrandController.cs | 170 + .../Controllers/CarouselsController.cs | 53 + .../Controllers/CommodityController.cs | 392 + .../FileUploadProcessingController.cs | 49 + .../Controllers/SalesController.cs | 285 + .../Controllers/ShopTypeController.cs | 249 + .../Controllers/ShoppingCartController.cs | 307 + .../Controllers/SpecificationsController.cs | 180 + .../Controllers/SupplierController.cs | 171 + .../Controllers/UserinfoController.cs | 149 + .../Controllers/UsersController.cs | 443 + .../Controllers/WeatherForecastController.cs | 39 + .../Database/DbInit.cs | 72 + .../ElectronicMallProject.Backend.Api.csproj | 18 + .../Entity/Account.cs | 10 + .../Entity/AddRess.cs | 24 + .../Entity/AuditInfo.cs | 71 + .../Entity/BaseInit.cs | 15 + .../Entity/Brand.cs | 12 + .../Entity/Carousels.cs | 10 + .../Entity/Comment.cs | 14 + .../Entity/Commodity.cs | 30 + .../Entity/CommodityDisplayColumn.cs | 10 + .../Entity/DetailsChart.cs | 9 + .../Entity/Imgs.cs | 8 + .../Entity/Logistics.cs | 10 + .../Entity/Sales.cs | 38 + .../Entity/Shop.cs | 10 + .../Entity/ShopType.cs | 25 + .../Entity/ShoppingCart.cs | 10 + .../Entity/Specifications.cs | 10 + .../Entity/Supplier.cs | 14 + .../Entity/UserInfo.cs | 24 + .../Entity/UserRole.cs | 10 + .../Entity/Users.cs | 18 + .../Filters/AuditLogActionFilter.cs | 162 + ...274\345\225\206\345\223\201Id.Designer.cs" | 848 ++ ...\346\240\274\345\225\206\345\223\201Id.cs" | 487 + .../Migrations/DbInitModelSnapshot.cs | 846 ++ .../Params/ChangeAddRess.cs | 20 + .../Params/ChangeSales.cs | 38 + .../Params/ChangeShopType.cs | 24 + .../Params/ChangeSpecifications.cs | 8 + .../Params/ChangeUserInfo.cs | 25 + .../Params/ChangeUsers.cs | 8 + .../Params/CreateAddRess.cs | 20 + .../Params/CreateBrand.cs | 13 + .../Params/CreateCommodity.cs | 16 + .../Params/CreateSales.cs | 38 + .../Params/CreateShoppingCart.cs | 8 + .../Params/CreateSpecifications.cs | 9 + .../Params/CreateUserInfo.cs | 25 + .../Params/CreateUserRole.cs | 7 + .../Params/CreateUsers.cs | 10 + .../Params/LoginUsers.cs | 8 + .../Params/RefreshToken.cs | 8 + .../Params/TokenParameter.cs | 17 + .../Program.cs | 26 + .../Properties/launchSettings.json | 30 + .../Repository/EfRepository.cs | 152 + .../Repository/IRepository.cs | 73 + .../Startup.cs | 112 + .../Utils/FilesHelper.cs | 44 + .../Utils/JsonHelper.cs | 20 + .../Utils/TokenHeper.cs | 61 + .../WeatherForecast.cs | 15 + .../appsettings.Development.json | 9 + .../appsettings.json | 16 + .../files/132738091215263822.jpg | Bin 0 -> 23798 bytes .../files/132738277393262558.jpg | Bin 0 -> 67626 bytes .../sale.http | 93 + .../ElectronicMallProject.Backend.sln | 34 + ElectronicMallProject.Backend/commodity.http | 214 + ElectronicMallProject.Backend/iloveyou.http | 101 + .../picturefile.http | 10 + ElectronicMallProject.Backend/shopping.http | 37 + ElectronicMallProject.Frontend/.gitignore | 23 + ElectronicMallProject.Frontend/README.md | 24 + .../babel.config.js | 6 + ElectronicMallProject.Frontend/package.json | 48 + .../public/favicon.ico | Bin 0 -> 4286 bytes .../public/index.html | 19 + ElectronicMallProject.Frontend/src/App.vue | 32 + .../src/Location/positionLocation.js | 31 + .../src/api/Commodity.js | 33 + .../src/api/LoginAndRegister.js | 9 + .../src/assets/logo.png | Bin 0 -> 6849 bytes .../src/components/Frontpage/Layout.vue | 63 + .../Frontpage/SearchBar/SearchBar.vue | 232 + .../Frontpage/Slideshow/Slideshow.vue | 33 + .../components/Frontpage/TopBar/TopBar.vue | 208 + .../components/Frontpage/Views/Category.vue | 359 + .../Frontpage/Views/CommodityDetails.vue | 369 + .../Frontpage/Views/GenerateOrderAndPay.vue | 139 + .../components/Frontpage/Views/GuessLike.vue | 23 + .../src/components/Frontpage/Views/Home.vue | 15 + .../src/components/Frontpage/Views/Login.vue | 167 + .../components/Frontpage/Views/Recommend.vue | 210 + .../components/Frontpage/Views/Register.vue | 147 + .../Frontpage/Views/ShoppingCart.vue | 256 + .../src/imgs/6D Mark II(1).jpg | Bin 0 -> 13779 bytes .../src/imgs/6D Mark II(2).jpg | Bin 0 -> 142494 bytes .../src/imgs/6D Mark II(3).jpg | Bin 0 -> 79481 bytes .../src/imgs/6D Mark II(4).jpg | Bin 0 -> 112002 bytes ElectronicMallProject.Frontend/src/main.js | 25 + .../src/router/index.js | 33 + .../src/router/routes.js | 54 + .../src/utils/auth.js | 55 + .../src/utils/index.js | 8 + ElectronicMallProject.Frontend/yarn.lock | 9113 +++++++++++++++++ 114 files changed, 18650 insertions(+) create mode 100644 ElectronicMallProject.Backend/.vscode/launch.json create mode 100644 ElectronicMallProject.Backend/.vscode/tasks.json create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/.gitignore create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/AddRessController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/BrandController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CarouselsController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CommodityController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/FileUploadProcessingController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SalesController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShopTypeController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShoppingCartController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SpecificationsController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SupplierController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UserinfoController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UsersController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/WeatherForecastController.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Database/DbInit.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/ElectronicMallProject.Backend.Api.csproj create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Account.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AddRess.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AuditInfo.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/BaseInit.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Brand.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Carousels.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Comment.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Commodity.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/CommodityDisplayColumn.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/DetailsChart.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Imgs.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Logistics.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Sales.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Shop.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShopType.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShoppingCart.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Specifications.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Supplier.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserInfo.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserRole.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Users.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Filters/AuditLogActionFilter.cs create mode 100644 "ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.Designer.cs" create mode 100644 "ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.cs" create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/DbInitModelSnapshot.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeAddRess.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSales.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeShopType.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSpecifications.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUserInfo.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUsers.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateAddRess.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateBrand.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateCommodity.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSales.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateShoppingCart.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSpecifications.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserInfo.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserRole.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUsers.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/LoginUsers.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/RefreshToken.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/TokenParameter.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Program.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Properties/launchSettings.json create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/EfRepository.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/IRepository.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Startup.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/FilesHelper.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/JsonHelper.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/TokenHeper.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/WeatherForecast.cs create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.Development.json create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.json create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/files/132738091215263822.jpg create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/files/132738277393262558.jpg create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/sale.http create mode 100644 ElectronicMallProject.Backend/ElectronicMallProject.Backend.sln create mode 100644 ElectronicMallProject.Backend/commodity.http create mode 100644 ElectronicMallProject.Backend/iloveyou.http create mode 100644 ElectronicMallProject.Backend/picturefile.http create mode 100644 ElectronicMallProject.Backend/shopping.http create mode 100644 ElectronicMallProject.Frontend/.gitignore create mode 100644 ElectronicMallProject.Frontend/README.md create mode 100644 ElectronicMallProject.Frontend/babel.config.js create mode 100644 ElectronicMallProject.Frontend/package.json create mode 100644 ElectronicMallProject.Frontend/public/favicon.ico create mode 100644 ElectronicMallProject.Frontend/public/index.html create mode 100644 ElectronicMallProject.Frontend/src/App.vue create mode 100644 ElectronicMallProject.Frontend/src/Location/positionLocation.js create mode 100644 ElectronicMallProject.Frontend/src/api/Commodity.js create mode 100644 ElectronicMallProject.Frontend/src/api/LoginAndRegister.js create mode 100644 ElectronicMallProject.Frontend/src/assets/logo.png create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Layout.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/SearchBar/SearchBar.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Slideshow/Slideshow.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/TopBar/TopBar.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/Category.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/CommodityDetails.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/GenerateOrderAndPay.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/GuessLike.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/Home.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/Login.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/Recommend.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/Register.vue create mode 100644 ElectronicMallProject.Frontend/src/components/Frontpage/Views/ShoppingCart.vue create mode 100644 ElectronicMallProject.Frontend/src/imgs/6D Mark II(1).jpg create mode 100644 ElectronicMallProject.Frontend/src/imgs/6D Mark II(2).jpg create mode 100644 ElectronicMallProject.Frontend/src/imgs/6D Mark II(3).jpg create mode 100644 ElectronicMallProject.Frontend/src/imgs/6D Mark II(4).jpg create mode 100644 ElectronicMallProject.Frontend/src/main.js create mode 100644 ElectronicMallProject.Frontend/src/router/index.js create mode 100644 ElectronicMallProject.Frontend/src/router/routes.js create mode 100644 ElectronicMallProject.Frontend/src/utils/auth.js create mode 100644 ElectronicMallProject.Frontend/src/utils/index.js create mode 100644 ElectronicMallProject.Frontend/yarn.lock diff --git a/ElectronicMallProject.Backend/.vscode/launch.json b/ElectronicMallProject.Backend/.vscode/launch.json new file mode 100644 index 0000000..6552a5d --- /dev/null +++ b/ElectronicMallProject.Backend/.vscode/launch.json @@ -0,0 +1,33 @@ +{ + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "${workspaceFolder}/ElectronicMallProject.Backend.Api/bin/Debug/netcoreapp3.1/ElectronicMallProject.Backend.Api.dll", + "args": [], + "cwd": "${workspaceFolder}/ElectronicMallProject.Backend.Api", + "stopAtEntry": false, + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/.vscode/tasks.json b/ElectronicMallProject.Backend/.vscode/tasks.json new file mode 100644 index 0000000..c0c8acf --- /dev/null +++ b/ElectronicMallProject.Backend/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/ElectronicMallProject.Backend.Api/ElectronicMallProject.Backend.Api.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/ElectronicMallProject.Backend.Api/ElectronicMallProject.Backend.Api.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "${workspaceFolder}/ElectronicMallProject.Backend.Api/ElectronicMallProject.Backend.Api.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/.gitignore b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/.gitignore new file mode 100644 index 0000000..2e9693e --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/.gitignore @@ -0,0 +1,2 @@ +obj +bin \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/AddRessController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/AddRessController.cs new file mode 100644 index 0000000..f85f30a --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/AddRessController.cs @@ -0,0 +1,188 @@ +using ElectronicMallProject.Backend.Api.Database; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Params; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + //地址控制器 + [ApiController] + [Route("[controller]")] + + public class AddRessController:ControllerBase + { + private readonly IRepository
_addressRepository; + + public AddRessController(IRepository
addressRepository) + { + _addressRepository = addressRepository; + } + + + //获取地址表数据 + [HttpGet] + public dynamic getAddRess() + { + var address = _addressRepository.Table; + + return new + { + code = 200, + data = address, + msg = "请求成功" + }; + } + + //添加地址表数据 + [HttpPost] + public dynamic postAddRess(CreateAddRess createAddRess) + { + //省 + var province = createAddRess.Province.Trim(); + + //市 + var city = createAddRess.City.Trim(); + + //区 + var district = createAddRess.District.Trim(); + + //街道 + var street = createAddRess.Street.Trim(); + + //详细地址 + var detailedaddress = createAddRess.Detailedaddress.Trim(); + + //号码 + var number = createAddRess.Number.Trim(); + + //收件人 + var addressee = createAddRess.Addressee.Trim(); + + + var address = _addressRepository.Table; + + var res = new AddRess + { + Province = province, + City = city, + District = district, + Street = street, + Detailedaddress = detailedaddress, + Number = number, + Addressee = addressee + }; + + _addressRepository.Insert(res); + + return new + { + code = 200, + data = "", + msg = "添加成功" + }; + } + + + //修改地址表信息 + [HttpPut("{id}")] + public dynamic putAddRess(int id , ChangeAddRess changeAddRess) + { + var address = _addressRepository.GetById(id); + + //省 + var Province = changeAddRess.Province.Trim(); + + //市 + var city = changeAddRess.City.Trim(); + + //区 + var district = changeAddRess.District.Trim(); + + //街道 + var street = changeAddRess.Street.Trim(); + + //详细地址 + var detailedaddress = changeAddRess.Detailedaddress.Trim(); + + //号码 + var number = changeAddRess.Number.Trim(); + + //收件人 + var addressee = changeAddRess.Addressee.Trim(); + + + + address.Province = changeAddRess.Province; + address.City = changeAddRess.City; + address.District = changeAddRess.District; + address.Street = changeAddRess.Street; + address.Detailedaddress = changeAddRess.Detailedaddress; + address.Number = changeAddRess.Number; + address.Addressee = changeAddRess.Addressee; + + _addressRepository.Updated(address); + + return new + { + code = 200, + data = address, + msg = "修改成功" + }; + } + + + //冻结信息 + [HttpPut("{id}/freeze")] + public dynamic freezeAddRess(int id) + { + var address = _addressRepository.GetById(id); + + if (address == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该记录不存在" + }; + } + address.IsActived = false; + _addressRepository.Updated(address); + + return new + { + Code = 200, + Data = address, + Msg = "冻结成功" + }; + } + + //启用 + [HttpPut("{id}/enable")] + public dynamic enableAddRess(int id) + { + var address = _addressRepository.GetById(id); + + if (address == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该记录不存在" + }; + } + address.IsActived = true; + _addressRepository.Updated(address); + + return new + { + Code = 200, + Data = address, + Msg = "启用成功" + }; + } + + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/BrandController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/BrandController.cs new file mode 100644 index 0000000..ea0e5ca --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/BrandController.cs @@ -0,0 +1,170 @@ +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; +using System.Linq; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + //品牌控制器 + [ApiController] + [Route("[controller]")] + public class BrandController : ControllerBase + { + private IRepository _brandRepository; + + public BrandController(IRepository brandRepository) + { + _brandRepository = brandRepository; + } + + + //查看所有品牌 + [HttpGet, Route("BrandGet")] + public dynamic brandGet() + { + var brand = _brandRepository.Table; + + return new + { + Code = 200, + Data = brand, + Msg = "获取所有品牌成功" + }; + } + + //添加品牌 + [HttpPost, Route("AddBrand")] + public dynamic AddPost(CreateBrand brand) + { + var brandname = brand.BrandName.Trim(); + var logoimgid = brand.logoImgId; + var coverimgid = brand.coverImgId; + + if (string.IsNullOrEmpty(brandname)) + { + return new + { + Code = 104, + Data = "", + Msg = "品牌名不能为空" + }; + } + + var addbrand = _brandRepository.Table; + + var ishavebrandname = addbrand.Where(x => x.BrandName.Equals(brandname)).ToList(); + + if (ishavebrandname.Count() == 0) + { + var res = new Brand + { + BrandName = brandname, + logoImgId = logoimgid + }; + + _brandRepository.Insert(res); + + return new + { + Code = 200, + Data = res, + Msg = "添加品牌成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "该品牌已存在" + }; + } + } + + //修改品牌 + [HttpPut, Route("{id}/updatebrand")] + public dynamic updateBrandPut(int id, CreateBrand brand) + { + var brandname = brand.BrandName.Trim(); + var logoimgid = brand.logoImgId; + var coverimgid = brand.coverImgId; + + var updatebrand = _brandRepository.GetById(id); + + if (updatebrand == null) + { + return new + { + Code = 104, + Data = "", + Msg = "修改品牌不存在" + }; + } + + updatebrand.BrandName = brand.BrandName; + updatebrand.logoImgId = brand.logoImgId; + + _brandRepository.Updated(updatebrand); + + return new + { + Code = 200, + Data = updatebrand, + Msg = "修改品牌成功" + }; + } + + //冻结商品类型 + [HttpPut, Route("{id}/frozenbrand")] + public dynamic frozenPut(int id) + { + var frozenbrand = _brandRepository.GetById(id); + + if (frozenbrand == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该品牌不存在" + }; + } + frozenbrand.IsActived = false; + _brandRepository.Updated(frozenbrand); + + return new + { + Code = 200, + Data = frozenbrand, + Msg = "冻结品牌成功" + }; + } + + //是否启用商品类型 + [HttpPut, Route("{id}/enablebrand")] + public dynamic enablePut(int id) + { + var enablebrand = _brandRepository.GetById(id); + + if (enablebrand == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该品牌不存在" + }; + } + enablebrand.IsActived = true; + _brandRepository.Updated(enablebrand); + + return new + { + Code = 200, + Data = enablebrand, + Msg = "启用品牌成功" + }; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CarouselsController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CarouselsController.cs new file mode 100644 index 0000000..7614618 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CarouselsController.cs @@ -0,0 +1,53 @@ +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; +using System.Collections; +using System.Linq; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + //轮播图控制器 + [ApiController] + [Route("[controller]")] + + public class CarouselsController : ControllerBase + { + private readonly IRepository _carouselsRepository; + private readonly IRepository _imgsRepository; + + public CarouselsController(IRepository carouselsRepository, IRepository imgsRepository) + { + _carouselsRepository = carouselsRepository; + _imgsRepository = imgsRepository; + } + + [HttpGet, Route("imgget")] + public dynamic imgGet() + { + var carousels = _carouselsRepository.Table.ToList(); + var imgs = _imgsRepository.Table; + + ArrayList arr = new ArrayList(); + + foreach (var item in carousels) + { + var img = imgs.Where(x => x.Id.Equals(item.ImgsId)).FirstOrDefault(); + + var tmp = new + { + id = item.Id, + CommodityId = item.CommodityId, + ImgsPath = img != null ? img.ImgsPath : "" + }; + arr.Add(tmp); + } + + return new + { + Code = 200, + Data = arr, + Msg = "获取轮播图成功" + }; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CommodityController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CommodityController.cs new file mode 100644 index 0000000..3c54c44 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/CommodityController.cs @@ -0,0 +1,392 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; +using System.Linq; +using System.Collections; +using System.Collections.Generic; + +//商品控制器 +namespace ElectronicMallProject.Backend.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class CommodityController : ControllerBase + { + //图片 + private IRepository _imgRepository; + //商品 + private IRepository _commodityRepository; + //类型 + private IRepository _shoptypeRepository; + //品牌 + private IRepository _brandRepository; + //规格 + private IRepository _specificationsRepository; + private IConfiguration _configuration; + + public CommodityController(IRepository imgRepository, IRepository commodityRepository, IRepository shoptypeRepository, + IRepository brandRepository, IRepository specificationsRepository, IConfiguration configuration) + { + _imgRepository = imgRepository; + _commodityRepository = commodityRepository; + _shoptypeRepository = shoptypeRepository; + _brandRepository = brandRepository; + _specificationsRepository = specificationsRepository; + _configuration = configuration; + // _salesRepository = salesRepository; + } + + //查询所有商品 + [HttpGet] + public dynamic Get() + { + var commodity = _commodityRepository.Table.ToList(); + + ArrayList list = new ArrayList(); + + foreach (var item in commodity) + { + var imgpath = _imgRepository.Table.Where(x => x.Id == item.ImgId).FirstOrDefault(); + + var brandid = _brandRepository.Table.Where(x => x.Id == item.BrandId).FirstOrDefault(); + + var res = new + { + Id = item.Id, + isActived = item.IsActived, + isDeleted = item.IsDeleted, + createdTime = item.CreatedTime, + updatedTime = item.UpdatedTime, + displayOrder = item.DisplayOrder, + remarks = item.Remarks, + CommodityName = item.CommodityName, + CommodityCurrentPrice = item.CommodityCurrentPrice, + SpecificationsId = item.SpecificationsId, + ProductDetails = item.ProductDetails, + ProductStocks = item.ProductStocks, + SupplierId = item.SupplierId, + ShopTypeId = item.ShopTypeId, + imgpath = imgpath.ImgsPath, + brandname = brandid.BrandName + }; + list.Add(res); + } + + + return new + { + Code = 200, + Data = list, + Msg = "查询所有商品成功" + }; +} + + +// [HttpGet("{id}")] +// public dynamic GetComName(int id) +// { + +// ArrayList list = new ArrayList(); +// } + + +//添加商品 +[HttpPost, Route("Addcommodity")] +public dynamic AddPost(CreateCommodity create) +{ + var commodityname = create.CommodityName.Trim(); + var commoditytype = create.CommodityType.Trim(); + var commoditycurrentprice = create.CommodityCurrentPrice; + var specificationsid = create.SpecificationsId; + var productdetails = create.ProductDetails.Trim(); + var productstocks = create.ProductStocks; + var imgid = create.ImgId; + var supplierid = create.SupplierId; + var brandid = create.BrandId; + var shoptypeid = create.ShopTypeId; + + if (string.IsNullOrEmpty(commodityname) && string.IsNullOrEmpty(commoditytype) && + string.IsNullOrEmpty(commoditycurrentprice.ToString()) && string.IsNullOrEmpty(specificationsid.ToString()) && + string.IsNullOrEmpty(productdetails) && string.IsNullOrEmpty(productstocks.ToString()) && + string.IsNullOrEmpty(imgid.ToString()) && string.IsNullOrEmpty(supplierid.ToString()) && + string.IsNullOrEmpty(brandid.ToString()) && string.IsNullOrEmpty(shoptypeid.ToString())) + { + return new + { + Code = 104, + Data = "", + Msg = "请填写完整" + }; + } + + var addcommodity = _commodityRepository.Table; + + var ishavecreate = addcommodity.Where(x => x.CommodityName.Equals(commodityname)).ToList(); + + if (ishavecreate.Count() == 0) + { + var res = new Commodity + { + CommodityName = commodityname, + CommodityType = commoditytype, + CommodityCurrentPrice = commoditycurrentprice, + SpecificationsId = specificationsid, + ProductDetails = productdetails, + ProductStocks = productstocks, + ImgId = imgid, + SupplierId = supplierid, + BrandId = brandid, + ShopTypeId = shoptypeid + }; + _commodityRepository.Insert(res); + + return new + { + Code = 200, + Data = res, + Msg = "添加商品成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "该商品已存在" + }; + } +} + +//卖出商品减库存 +[HttpPut, Route("{id}/reducestock")] +public dynamic ReducePut(int id, CreateCommodity commodity) +{ + var commodityname = commodity.CommodityName.Trim(); + var commodityquantity = commodity.ProductStocks; + + if (!string.IsNullOrEmpty(commodityname) && !string.IsNullOrEmpty(commodityquantity.ToString())) + { + var reducestock = _commodityRepository.GetById(id); + + if (reducestock == null) + { + return new + { + Code = 104, + Data = "", + Msg = "出库商品不存在" + }; + } + + reducestock.ProductStocks = reducestock.ProductStocks - commodity.ProductStocks; + + _commodityRepository.Updated(reducestock); + + return new + { + Code = 200, + Data = reducestock, + Msg = "商品出库成功" + }; + } + return ""; +} + + +//修改商品 +[HttpPut, Route("{id}/Updatecommodity")] +public dynamic UpdatePut(int id, CreateCommodity commodity) +{ + var commodityname = commodity.CommodityName.Trim(); + var commoditytype = commodity.CommodityType.Trim(); + var commoditycurrentprice = commodity.CommodityCurrentPrice; + var specificationsid = commodity.SpecificationsId; + var productdetails = commodity.ProductDetails.Trim(); + var productstocks = commodity.ProductStocks; + var imgid = commodity.ImgId; + var supplierid = commodity.SupplierId; + var brandid = commodity.BrandId; + var shoptypeid = commodity.ShopTypeId; + + if (!string.IsNullOrEmpty(commodityname) && !string.IsNullOrEmpty(commoditytype) && + !string.IsNullOrEmpty(commoditycurrentprice.ToString()) && !string.IsNullOrEmpty(specificationsid.ToString()) && + !string.IsNullOrEmpty(productdetails) && !string.IsNullOrEmpty(productstocks.ToString()) && + !string.IsNullOrEmpty(imgid.ToString()) && !string.IsNullOrEmpty(supplierid.ToString()) && + !string.IsNullOrEmpty(brandid.ToString()) && !string.IsNullOrEmpty(shoptypeid.ToString())) + { + var updatecommodity = _commodityRepository.GetById(id); + + if (updatecommodity == null) + { + return new + { + Code = 104, + Data = "", + Msg = "修改商品不存在" + }; + } + + updatecommodity.CommodityName = commodity.CommodityName; + updatecommodity.CommodityType = commodity.CommodityType; + updatecommodity.CommodityCurrentPrice = commodity.CommodityCurrentPrice; + updatecommodity.SpecificationsId = commodity.SpecificationsId; + updatecommodity.ProductDetails = commodity.ProductDetails; + updatecommodity.ProductStocks = commodity.ProductStocks; + updatecommodity.ImgId = commodity.ImgId; + updatecommodity.SupplierId = commodity.SupplierId; + updatecommodity.BrandId = commodity.BrandId; + updatecommodity.ShopTypeId = commodity.ShopTypeId; + + _commodityRepository.Updated(updatecommodity); + + return new + { + Code = 200, + Data = updatecommodity, + Msg = "修改商品成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "修改商品失败" + }; + } +} + + +//冻结商品 +[HttpPut, Route("{id}/frozencommodity")] +public dynamic frozenPut(int id) +{ + var frozencommodity = _commodityRepository.GetById(id); + + if (frozencommodity == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该商品不存在" + }; + } + frozencommodity.IsActived = false; + _commodityRepository.Updated(frozencommodity); + + return new + { + Code = 200, + Data = frozencommodity, + Msg = "冻结商品成功" + }; +} + +//启用商品 +[HttpPut, Route("{id}/enablecommodity")] +public dynamic enablePut(int id) +{ + var enablecommodity = _commodityRepository.GetById(id); + + if (enablecommodity == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该商品不存在" + }; + } + enablecommodity.IsActived = true; + _commodityRepository.Updated(enablecommodity); + + return new + { + Code = 200, + Data = enablecommodity, + Msg = "启用商品成功" + }; +} + + +//查看商品表和图片 +[HttpGet, Route("CommodityImgGet")] +public dynamic imgGet() +{ + var commodity = _commodityRepository.Table.ToList(); + + ArrayList list = new ArrayList(); + + foreach (var item in commodity) + { + var img = _imgRepository.Table.Where(x => x.Id == item.ImgId).FirstOrDefault(); + + var res = new + { + CommodityName = item.CommodityName, + CommodityType = item.CommodityType, + CommodityCurrentPrice = item.CommodityCurrentPrice, + SpecificationsId = item.SpecificationsId, + ProductDetails = item.ProductDetails, + ProductStocks = item.ProductStocks, + ImgId = item.ImgId, + SupplierId = item.SupplierId, + BrandId = item.BrandId, + ShopTypeId = item.ShopTypeId, + imgPath = img.ImgsPath + }; + list.Add(res); + } + return new + { + Code = 200, + Data = list, + Msg = "查询成功" + }; +} + + +//查看商品所有分类具体到型号 +[HttpGet, Route("{id}")] +public dynamic seeGet(int id) +{ + var commoditys = _commodityRepository.Table; + //商品中含有该品牌 + // var brand = commodity.Where(x => x.BrandId == id).ToList(); + //商品中含有该规格 + // var specifications = commoditys.Where(x =>x.SpecificationsId == id).ToList(); + + //对应商品 + var commodity = commoditys.Where(x => x.Id == id).FirstOrDefault(); + //商品类型表 + var shoptypes = _shoptypeRepository.Table; + //品牌表 + var brands = _brandRepository.Table; + //规格表 + var specifications = _specificationsRepository.Table; + + + //对应商品类型 + var shoptype = shoptypes.Where(x => x.Id == commodity.ShopTypeId).FirstOrDefault(); + //对应品牌 + var brand = brands.Where(x => x.Id == commodity.BrandId).FirstOrDefault(); + //对应规格 + var specification = specifications.Where(x => x.Id == commodity.SpecificationsId).FirstOrDefault(); + + + + + return new + { + Code = 200, + Data = new { shoptype = shoptype, brand = brand, specification = specification }, + Msg = "查询成功" + }; + +} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/FileUploadProcessingController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/FileUploadProcessingController.cs new file mode 100644 index 0000000..d1131e7 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/FileUploadProcessingController.cs @@ -0,0 +1,49 @@ +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Repository; +using ElectronicMallProject.Backend.Api.Entity; +using Microsoft.AspNetCore.Hosting; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + //文件上传控制器 + [ApiController] + [Route("[controller]")] + public class FileUploadProcessingController : ControllerBase + { + private readonly IRepository _imgsRepository; + private readonly IWebHostEnvironment _iWebHostEnvironment; + + public FileUploadProcessingController(IRepository imgsRepository, IWebHostEnvironment iWebHostEnvironment) + { + _imgsRepository = imgsRepository; + _iWebHostEnvironment = iWebHostEnvironment; + } + + //文件上传 + [HttpPost,Route("FileUpload")] + public dynamic FileUpload () + { + var file=Request.Form.Files; + var filePath= FilesHelper.UpImgs(file,_iWebHostEnvironment,_imgsRepository); + + var sql = new Imgs + { + ImgsPath = filePath + }; + _imgsRepository.Insert(sql); + + return sql; + } + + //查看图片 + [HttpGet,Route("imgs")] + public dynamic Getimgs() + { + var imgs = _imgsRepository.Table; + + return new { + imgs + }; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SalesController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SalesController.cs new file mode 100644 index 0000000..929a800 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SalesController.cs @@ -0,0 +1,285 @@ + +using ElectronicMallProject.Backend.Api.Repository; +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Params; +using System.Linq; +using System.Collections; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + + //销售控制器 + [ApiController] + [Route("[controller]")] + public class SalesController : ControllerBase + { + private readonly IRepository _salesRepository; + private readonly IRepository _commodityRepository; + private readonly IRepository _usersRepository; + private readonly IRepository _shoppingcartRepository; + + public SalesController(IRepository salesRepository , IRepository commodityRepository , IRepository usersRepository , IRepository shoppingResitory) + + { + _salesRepository = salesRepository; + _commodityRepository = commodityRepository; + _usersRepository = usersRepository; + _shoppingcartRepository = shoppingResitory; + } + + + //获取表数据 + [HttpGet] + public dynamic getSales() + { + var sales = _salesRepository.Table; + return new + { + code = 200, + data = sales, + msg = "请求成功" + }; + } + + + //订单表商品表连接查询 + [HttpGet("{id}")] + public dynamic GetCom(int id) + { + + var uu = _salesRepository.Table.Where(x => x.UserId == id).ToList(); + + ArrayList list = new ArrayList(); + foreach (var item in uu) + { + var children = _commodityRepository.Table.Where(x => x.Id == item.CommodityId).FirstOrDefault(); + var otherUserId = _shoppingcartRepository.Table.Where(x => x.UserId != id).FirstOrDefault(); + + var otherId = otherUserId.UserId; + + var res = new + { + Id = item.Id, + SalesNumber = item.SalesNumber, + Date = item.Date, + NumberOfSingleProductItems = item.NumberOfSingleProductItems, + TotalNumberOfObjects = item.TotalNumberOfObjects, + SingleAmount = item.SingleAmount, + TotalMoney = item.TotalMoney, + PaymentMethod = item.PaymentMethod.Trim(), + UserId = item.UserId, + CommodityId = item.CommodityId, + LogisticsInformation = item.LogisticsInformation.Trim(), + DeliveryTime = item.DeliveryTime, + SalesStatus = item.SalesStatus.Trim(), + PaymentStatus = item.PaymentStatus.Trim(), + PaymentAmount = item.PaymentAmount, + BuyerStatus = item.BuyerStatus, + IsActived = item.IsActived, + IsDeleted = item.IsDeleted, + Remarks = item.Remarks, + UpdatedTime = item.UpdatedTime, + CommodityName = children.CommodityName, + CommodityCurrentPrice = children.CommodityCurrentPrice, + otherUserId = otherId + }; + list.Add(res); + } + + // var result = from commodity in _commodityRepository join sales in _salesRepository + // on commodity.id equals sales.CommodityId select new (commodity , sales); + + return new + { + Code = 200, + Data = list, + Msg = "请求成功" + }; + } + + + //添加 + [HttpPost] + public dynamic postSales(CreateSales createSales) + { + //订单号 + var salesNumber = createSales.SalesNumber.Trim(); + //日期 + var date = createSales.Date; + //单个商品物件数 + var numberOfSingleProductItems = createSales.NumberOfSingleProductItems; + //总物件数 + var totalNumberOfObjects = createSales.TotalNumberOfObjects; + //单笔金额 + var singleAmount = createSales.SingleAmount; + //总金额 + var totalMoney = createSales.TotalMoney; + //支付方式 + var paymentMethod = createSales.PaymentMethod.Trim(); + //用户Id + var userId = createSales.UserId; + //商品Id + var commodityId = createSales.CommodityId; + //物流信息 + var logisticsInformation = createSales.LogisticsInformation.Trim(); + //发货时间 + var deliveryTime = createSales.DeliveryTime; + //订单状态 + var salesStatus = createSales.SalesStatus.Trim(); + //支付状态 + var paymentStatus = createSales.PaymentStatus.Trim(); + //实际付款金额 + var paymentAmount = createSales.PaymentAmount; + //买家状态 + var buyerStatus = createSales.BuyerStatus; + + var addSales = new Sales + { + SalesNumber = salesNumber, + Date = date, + NumberOfSingleProductItems = numberOfSingleProductItems, + TotalNumberOfObjects = totalNumberOfObjects, + SingleAmount = singleAmount, + TotalMoney = totalMoney, + PaymentMethod = paymentMethod, + UserId = userId, + CommodityId = commodityId, + LogisticsInformation = logisticsInformation, + DeliveryTime = deliveryTime, + SalesStatus = salesStatus, + PaymentStatus = paymentStatus, + PaymentAmount = paymentAmount, + BuyerStatus = buyerStatus, + }; + _salesRepository.Insert(addSales); + + return new + { + code = 200, + data = "", + msg = "添加成功" + }; + } + + + [HttpPut("{id}")] + public dynamic putSales(int id , ChangeSales changesales) + { + var salesForId = _salesRepository.GetById(id); + + //订单号 + var SalesNumber = changesales.SalesNumber.Trim(); + //日期 + var Date = changesales.Date; + //单个商品物件数 + var NumberOfSingleProductItems = changesales.NumberOfSingleProductItems; + //总物件数 + var TotalNumberOfObjects = changesales.TotalNumberOfObjects; + //单笔金额 + var SingleAmount = changesales.SingleAmount; + //总金额 + var TotalMoney = changesales.TotalMoney; + //支付方式 + var PaymentMethod = changesales.PaymentMethod.Trim(); + //用户Id + var UserId = changesales.UserId; + //商品Id + var CommodityId = changesales.CommodityId; + //物流信息 + var LogisticsInformation = changesales.LogisticsInformation.Trim(); + //发货时间 + var DeliveryTime = changesales.DeliveryTime; + //订单状态 + var SalesStatus = changesales.SalesStatus.Trim(); + //支付状态 + var PaymentStatus = changesales.PaymentStatus.Trim(); + //实际付款金额 + var PaymentAmount = changesales.PaymentAmount; + //买家状态 + var BuyerStatus = changesales.BuyerStatus; + + + salesForId.SalesNumber = changesales.SalesNumber; + salesForId.Date = changesales.Date; + salesForId.NumberOfSingleProductItems = changesales.NumberOfSingleProductItems; + salesForId.TotalNumberOfObjects = changesales.TotalNumberOfObjects; + salesForId.SingleAmount = changesales.SingleAmount; + salesForId.TotalMoney = changesales.TotalMoney; + salesForId.PaymentMethod = changesales.PaymentMethod; + salesForId.UserId = changesales.UserId; + salesForId.CommodityId = changesales.CommodityId; + salesForId.LogisticsInformation = changesales.LogisticsInformation; + salesForId.DeliveryTime = changesales.DeliveryTime; + salesForId.SalesStatus = changesales.SalesStatus; + salesForId.PaymentAmount = changesales.PaymentAmount; + salesForId.BuyerStatus = changesales.BuyerStatus; + + + _salesRepository.Updated(salesForId); + + return new + { + code = 200, + data = salesForId, + msg = "修改成功" + }; + } + + + //冻结销售信息 + [HttpPut("{id}/freeze")] + public dynamic freezeSales(int id) + { + var sales = _salesRepository.GetById(id); + + if (sales == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该记录不存在" + }; + } + sales.IsActived = false; + _salesRepository.Updated(sales); + + return new + { + Code = 200, + Data = sales, + Msg = "冻结成功" + }; + } + + + [HttpPut("{id}/enable")] + public dynamic enableSales(int id) + { + var sales = _salesRepository.GetById(id); + + if (sales == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该记录不存在" + }; + } + sales.IsActived = true; + _salesRepository.Updated(sales); + + return new + { + Code = 200, + Data = sales, + Msg = "启用成功" + }; + } + + } +} + + diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShopTypeController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShopTypeController.cs new file mode 100644 index 0000000..02d6bb8 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShopTypeController.cs @@ -0,0 +1,249 @@ +using Microsoft.AspNetCore.Mvc; +using System.Linq; +using ElectronicMallProject.Backend.Api.Entity; +using Microsoft.Extensions.Configuration; +using ElectronicMallProject.Backend.Api.Repository; +using System.Collections; + +//商品类型控制器 +namespace ElectronicMallProject.Backend.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class ShopTypeController : ControllerBase + { + //商品类型表 + private IRepository _shoptyperepository; + private IConfiguration _configuration; + + public ShopTypeController(IRepository shoptyperepository, IConfiguration configuration) + { + _shoptyperepository = shoptyperepository; + _configuration = configuration; + } + + + //获取所有商品类型 + [HttpGet, Route("get")] + public dynamic Get() + { + var shop = _shoptyperepository.Table; + return new + { + Code = 200, + Data = shop, + Msg = "获取所有商品类型成功" + }; + } + + //通过id获取商品类型 + [HttpGet, Route("{id}/getshop")] + public dynamic shopGet(int id) + { + var shop = _shoptyperepository.GetById(id); + + return new + { + Code = 200, + Data = shop, + Msg = "获取所有商品类型成功" + }; + } + + //添加商品类型 + [HttpPost, Route("addshop")] + public dynamic addPost(ChangeShopType shopType) + { + var shoptypename = shopType.ShopTypeName.Trim(); + var superiorshoptypeid = shopType.SuperiorShopTypeId; + var measure = shopType.Measure.Trim(); + var shoptypeiconid = shopType.ShopTypeIconId; + var filterproperties = shopType.FilterProperties.Trim(); + var keyword = shopType.keyword.Trim(); + + if (string.IsNullOrEmpty(shoptypename) && string.IsNullOrEmpty(superiorshoptypeid.ToString())) + { + return new + { + Code = 104, + Data = "", + Msg = "请填写完整" + }; + } + + var shoptype = _shoptyperepository.Table; + + var ishaveshoptypename = shoptype.Where(x => x.ShopTypeName.Equals(shoptypename)).ToList(); + + if (ishaveshoptypename.Count() == 0) + { + var res = new ShopType + { + ShopTypeName = shoptypename, + SuperiorShopTypeId = superiorshoptypeid, + Measure = measure, + ShopTypeIconId = shoptypeiconid, + FilterProperties = filterproperties, + keyword = keyword + }; + + _shoptyperepository.Insert(res); + + return new + { + Code = 200, + Data = res, + Msg = "添加商品类型成功" + }; + } + + return new + { + Code = 104, + Data = "", + Msg = "该商品类型已存在" + }; + + } + + //修改商品类型 + [HttpPut, Route("{id}/updateshop")] + public dynamic updateshopPut(int id, ChangeShopType shopType) + { + var shoptypename = shopType.ShopTypeName.Trim(); + var superiorshoptypeid = shopType.SuperiorShopTypeId; + var measure = shopType.Measure.Trim(); + var shoptypeiconid = shopType.ShopTypeIconId; + var filterproperties = shopType.FilterProperties.Trim(); + var keyword = shopType.keyword.Trim(); + + if (!string.IsNullOrEmpty(shoptypename) && !string.IsNullOrEmpty(superiorshoptypeid.ToString()) ) + { + var updateshop = _shoptyperepository.GetById(id); + + if (updateshop == null) + { + return new + { + Code = 104, + Data = "", + Msg = "修改商品类型不存在" + }; + } + + updateshop.ShopTypeName = shopType.ShopTypeName; + updateshop.SuperiorShopTypeId = shopType.SuperiorShopTypeId; + updateshop.Measure = shopType.Measure; + updateshop.FilterProperties = shopType.FilterProperties; + updateshop.keyword = shopType.keyword; + + _shoptyperepository.Updated(updateshop); + + return new + { + Code = 200, + Data = updateshop, + Msg = "修改商品类型成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "修改商品类型失败" + }; + } + + } + + //冻结商品类型 + [HttpPut, Route("{id}/frozenshop")] + public dynamic frozenPut(int id) + { + var frozenshop = _shoptyperepository.GetById(id); + + if (frozenshop == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该商品类型不存在" + }; + } + frozenshop.IsActived = false; + _shoptyperepository.Updated(frozenshop); + + return new + { + Code = 200, + Data = frozenshop, + Msg = "冻结商品类型成功" + }; + } + + //是否启用商品类型 + [HttpPut, Route("{id}/enableshop")] + public dynamic enablePut(int id) + { + var enableshop = _shoptyperepository.GetById(id); + + if (enableshop == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该商品类型不存在" + }; + } + enableshop.IsActived = !enableshop.IsActived; + _shoptyperepository.Updated(enableshop); + + return new + { + Code = 200, + Data = enableshop, + Msg = "启用商品类型成功" + }; + } + + //通过商品id查询上一级和本级 + [HttpGet,Route("{id}")] + public dynamic GradeGet(int id) + { + var shop = _shoptyperepository.Table; + var Grade = _shoptyperepository.Table.Where(x=>x.SuperiorShopTypeId == id).ToList(); + ArrayList list = new ArrayList(); + foreach (var item in Grade) + { + var children = _shoptyperepository.Table.Where(x=>x.SuperiorShopTypeId == item.Id).ToList(); + var res = new { + Id = item.Id, + SuperiorShopTypeId = item.SuperiorShopTypeId, + ShopTypeName= item.ShopTypeName, + ShopTypeIconId = item.ShopTypeIconId, + IsActived = item.IsActived, + IsDeleted = item.IsDeleted, + keyword = item.keyword, + Measure = item.Measure, + Remarks = item.Remarks, + UpdatedTime = item.UpdatedTime, + children = children + }; + list.Add(res); + } + + return new + { + Code = 200, + Data = list, + Msg = "查询成功" + }; + + } + } + +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShoppingCartController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShoppingCartController.cs new file mode 100644 index 0000000..29a93aa --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/ShoppingCartController.cs @@ -0,0 +1,307 @@ +using System.Linq; +using ElectronicMallProject.Backend.Api.Repository; +using Microsoft.Extensions.Configuration; +using ElectronicMallProject.Backend.Api.Entity; +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Params; +using System.Collections; +using Microsoft.EntityFrameworkCore; + +//购物车表 +namespace ElectronicMallProject.Backend.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class ShoppingCartController : ControllerBase + + { + //图片表 + private IRepository _imgRepository; + //购物车 + private IRepository _shoppingcartRepository; + //规格表 + private IRepository _specificationsRepository; + //商品表 + private IRepository _commodityRepository; + //品牌表 + private IRepository _brandRepository; + //类型表 + private IRepository _shoptypeRepository; + private IConfiguration _configuration; + + public ShoppingCartController(IRepository imgRepository,IRepository shoptypeRepository,IRepository brandRepository, + IRepository shoppingcartRepository, IConfiguration configuration , + IRepository specificationsRepository ,IRepository commodityRepository) + { + _imgRepository = imgRepository; + _shoptypeRepository = shoptypeRepository; + _brandRepository = brandRepository; + _shoppingcartRepository = shoppingcartRepository; + _configuration = configuration; + _specificationsRepository = specificationsRepository; + _commodityRepository = commodityRepository; + } + + //查询所有购物车 + [HttpGet] + public dynamic Get() + { + var shoppingcart = _shoppingcartRepository.Table; + + return new + { + Card = 200, + Data = shoppingcart, + Msg = "查询购物车成功" + }; + } + + //通过用户Id后去该用户购物车记录 + [HttpGet("{id}/uid")] + public dynamic getByUid(int id) + { + var shop = _shoppingcartRepository.Table.Where(x => x.UserId == id).ToList(); + + return new + { + code = 200, + data = shop, + msg = "请求成功" + }; + } + + //通过用户Id查找该用户购物车记录同时获取商品表,类型表,品牌表 + [HttpGet,Route("{id}/getuserId")] + public dynamic UserIdGet(int id) + { + var shoppingCart = _shoppingcartRepository.Table.Where(x =>x.UserId ==id).ToList(); + ArrayList list = new ArrayList(); + foreach (var item in shoppingCart) + { + var commoditys = _commodityRepository.Table.Where(x =>x.Id == item.CommodityId).ToList(); + foreach (var commodity in commoditys) + { + var ShopType = _shoptypeRepository.Table.Where(x =>x.Id == commodity.ShopTypeId).FirstOrDefault(); + var brand = _brandRepository.Table.Where(x=>x.Id == commodity.BrandId).FirstOrDefault(); + var specification = _specificationsRepository.Table.Where(x=>x.Id == commodity.SpecificationsId).FirstOrDefault(); + var img = _imgRepository.Table.Where(x =>x.Id == commodity.ImgId).FirstOrDefault(); + + var res = new + { + Id= commodity.Id, + CommodityName = commodity.CommodityName, + IsActived = commodity.IsActived, + IsDeleted = commodity.IsDeleted, + Remarks = commodity.Remarks, + UpdatedTime = commodity.UpdatedTime, + CommodityCurrentPrice = commodity.CommodityCurrentPrice, + ShopType=ShopType.ShopTypeName, + brand = brand.BrandName, + specification = specification.SpecificationsName, + imgpath = img.ImgsPath + }; + list.Add(res); + } + } + return new + { + code = 200, + data = list, + msg = "请求成功" + }; + } + + + //通过用户Id查找该用户购物车记录同时获取商品表信息 + [HttpGet("{id}")] + public dynamic getByUserId(int id) + { + var shoppingcart = _shoppingcartRepository.Table.Where(x => x.UserId == id).ToList(); + + + ArrayList list = new ArrayList(); + + foreach (var item in shoppingcart) + { + var commoditys = _commodityRepository.Table.Where(x => x.Id == item.CommodityId).ToList(); + + foreach (var commodity in commoditys) + { + var specification = _specificationsRepository.Table.Where(x =>x.Id == commodity.SpecificationsId).ToList(); + var res = new { + Id= commodity.Id, + CommodityName = commodity.CommodityName, + IsActived = commodity.IsActived, + IsDeleted = commodity.IsDeleted, + Remarks = commodity.Remarks, + UpdatedTime = commodity.UpdatedTime, + CommodityCurrentPrice = commodity.CommodityCurrentPrice, + SpecificationsId = specification + }; + list.Add(res); + } + // var res = new + // { + // Id = item.Id, + // CommodityId = item.CommodityId, + // UserId = item.UserId, + // IsActived = item.IsActived, + // IsDeleted = item.IsDeleted, + // Remarks = item.Remarks, + // UpdatedTime = item.UpdatedTime, + // children = children, + // }; + + } + return new + { + code = 200, + data = list, + msg = "请求成功" + }; + } + + //添加到购物车 + [HttpPost, Route("Addshoppingcart")] + public dynamic AddPost(CreateShoppingCart ShoppingCart) + { + var CommodityId = ShoppingCart.CommodityId; + var UserId = ShoppingCart.UserId; + + if (string.IsNullOrEmpty(CommodityId.ToString()) && string.IsNullOrEmpty(UserId.ToString())) + { + return new + { + Card = 104, + Data = "", + Msg = "请填写完整" + }; + } + + var shoppingcart = _shoppingcartRepository.Table; + var commoditys =_commodityRepository.Table; + + // var ishaveCommodityId = commoditys.Where(x => x.Id.Equals(CommodityId)).ToList(); + + // if (ishaveCommodityId.Count() == 0) + // { + var res = new ShoppingCart + { + CommodityId = CommodityId, + UserId = UserId + }; + + _shoppingcartRepository.Insert(res); + + return new + { + Code = 200, + Data = res, + Msg = "添加购物车成功" + }; + // } + // return new + // { + // Code = 104, + // Data = "", + // Msg = "该购物车已存在" + // }; + + } + + //修改购物车 + [HttpPut, Route("{id}/Updateshoppingcart")] + public dynamic UpdatePut(int id, CreateShoppingCart shoppingCart) + { + var CommodityId = shoppingCart.CommodityId; + var UserId = shoppingCart.UserId; + + if (string.IsNullOrEmpty(CommodityId.ToString()) && string.IsNullOrEmpty(UserId.ToString())) + { + return new + { + Code = 104, + Data = "", + Msg = "请填写完整" + }; + } + + var updateshoppingcart = _shoppingcartRepository.GetById(id); + + if (updateshoppingcart == null) + { + return new + { + Code = 104, + Data = "", + Msg = "找不到该购物车" + }; + } + + updateshoppingcart.CommodityId = shoppingCart.CommodityId; + updateshoppingcart.UserId = shoppingCart.UserId; + + _shoppingcartRepository.Updated(updateshoppingcart); + + return new + { + Code = 200, + Data = updateshoppingcart, + Msg = "修改购物车成功" + }; + } + + //冻结购物车 + [HttpPut, Route("{id}/frozenshoppingcart")] + public dynamic frozenPut(int id) + { + var frozenshoppingcart = _shoppingcartRepository.GetById(id); + + if (frozenshoppingcart == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该购物车不存在" + }; + } + frozenshoppingcart.IsActived = false; + _shoppingcartRepository.Updated(frozenshoppingcart); + + return new + { + Code = 200, + Data = frozenshoppingcart, + Msg = "冻结购物车成功" + }; + } + + //启用购物车 + [HttpPut, Route("{id}/enableshoppingcart")] + public dynamic enablePut(int id) + { + var enableshoppingcart = _shoppingcartRepository.GetById(id); + + if (enableshoppingcart == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该购物车不存在" + }; + } + enableshoppingcart.IsActived = true; + _shoppingcartRepository.Updated(enableshoppingcart); + + return new + { + Code = 200, + Data = enableshoppingcart, + Msg = "启用购物车成功" + }; + } + + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SpecificationsController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SpecificationsController.cs new file mode 100644 index 0000000..1f34626 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SpecificationsController.cs @@ -0,0 +1,180 @@ +using Microsoft.AspNetCore.Mvc; +using System.Linq; +using ElectronicMallProject.Backend.Api.Entity; +using Microsoft.Extensions.Configuration; +using ElectronicMallProject.Backend.Api.Repository; + + +//规格控制器 +namespace ElectronicMallProject.Backend.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class SpecificationsController : ControllerBase + { + private IRepository _specificationsRepository; + private IConfiguration _configuration; + + public SpecificationsController(IRepository specificationsRepository, IConfiguration configuration) + { + _specificationsRepository = specificationsRepository; + _configuration = configuration; + } + + //查询所有规格 + [HttpGet] + public dynamic Get() + { + var specifications = _specificationsRepository.Table; + + return new + { + Code = 200, + Data = specifications, + Msg = "查询规格成功" + }; + } + + //添加规格 + [HttpPost, Route("Addspecifications")] + public dynamic AddPost(CreateSpecifications specifications) + { + var specificationsname = specifications.SpecificationsName.Trim(); + var commodityid = specifications.CommodityId; + + if (string.IsNullOrEmpty(specificationsname) && string.IsNullOrEmpty(commodityid.ToString())) + { + return new + { + Code = 104, + Data = "", + Msg = "规格名称不能为空" + }; + } + + var Addspecifications = _specificationsRepository.Table; + + var ishavespecifications = Addspecifications.Where(x => x.SpecificationsName.Equals(specificationsname)).ToList(); + + if (ishavespecifications.Count() == 0) + { + var res = new Specifications + { + SpecificationsName = specificationsname, + CommodityId = commodityid + }; + + _specificationsRepository.Insert(res); + + return new + { + Code = 200, + Data = res, + Msg = "添加规格成功" + }; + } + return ""; + } + + //修改规格 + [HttpPut, Route("{id}/updatespecifications")] + public dynamic UpdatePut(int id, CreateSpecifications specifications) + { + var specificationsname = specifications.SpecificationsName.Trim(); + var commodityid = specifications.CommodityId; + + if (!string.IsNullOrEmpty(specificationsname) && !string.IsNullOrEmpty(commodityid.ToString())) + { + var updatespecifications = _specificationsRepository.GetById(id); + + if (updatespecifications == null) + { + return new + { + Code = 200, + Data = "", + Msg = "要修改的规格不存在" + }; + } + + updatespecifications.SpecificationsName = specifications.SpecificationsName; + updatespecifications.CommodityId = specifications.CommodityId; + + _specificationsRepository.Updated(updatespecifications); + + return new + { + Code = 200, + Data = updatespecifications, + Msg = "修改规格成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "修改规格失败" + }; + } + + } + + //冻结规格 + [HttpPut, Route("{id}/frozenspecifications")] + public dynamic frozenPut(int id) + { + var frozenspecifications = _specificationsRepository.GetById(id); + + if (frozenspecifications == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该规格不存在" + }; + } + + frozenspecifications.IsActived = false; + + _specificationsRepository.Updated(frozenspecifications); + + return new + { + Code = 200, + Data = frozenspecifications, + Msg = "冻结规格成功" + }; + } + + //启用规格 + [HttpPut, Route("{id}/enablespecifications")] + public dynamic enablePut(int id) + { + var enablespecifications = _specificationsRepository.GetById(id); + + if (enablespecifications == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该规格不存在" + }; + } + + enablespecifications.IsActived = true; + + _specificationsRepository.Updated(enablespecifications); + + return new + { + Code = 200, + Data = enablespecifications, + Msg = "启用规格成功" + }; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SupplierController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SupplierController.cs new file mode 100644 index 0000000..d8292de --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/SupplierController.cs @@ -0,0 +1,171 @@ +using System.Linq; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using ElectronicMallProject.Backend.Api.Params; + +//供应商控制器 +namespace ElectronicMallProject.Backend.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class SupplierController : ControllerBase + { + //供应商表 + private IRepository _specificationsRepository; + private IConfiguration _configuration; + public SupplierController(IRepository specificationsRepository, IConfiguration configuration) + { + _specificationsRepository = specificationsRepository; + + _configuration = configuration; + } + + //获取所有供应商 + [HttpGet, Route("Get")] + public dynamic Get() + { + var specifications = _specificationsRepository.Table; + return new + { + Code = 200, + Data = specifications, + Msg = "获取所有供应商成功" + }; + } + + //添加供应商 + [HttpPost, Route("Addspecifications")] + public dynamic SpecificationsPost(CreateSpecifications specifications) + { + var specificationsname = specifications.SpecificationsName.Trim(); + + if (string.IsNullOrEmpty(specificationsname)) + { + return new + { + Code = 104, + Data = specificationsname, + Msg = "请输入供应商" + }; + } + + var Specifications = _specificationsRepository.Table; + var ishaveSpecifications = Specifications.Where(x => x.SpecificationsName.Equals(specificationsname)).ToList(); + + if (ishaveSpecifications.Count() == 0) + { + var res = new Specifications + { + SpecificationsName = specificationsname + }; + _specificationsRepository.Insert(res); + + return new + { + Code = 200, + Data = res, + Msg = "添加供应商成功" + }; + } + + return ""; + } + + //修改供应商 + [HttpPut, Route("{id}/Changespecifications")] + public dynamic Put(int id, ChangeSpecifications change) + { + var specificationsname = change.SpecificationsName.Trim(); + + if (!string.IsNullOrEmpty(specificationsname)) + { + var specifications = _specificationsRepository.GetById(id); + + if (specifications == null) + { + return new + { + Code = 104, + Data = "", + Msg = "修改供应商不存在" + }; + } + + specifications.SpecificationsName = change.SpecificationsName; + + _specificationsRepository.Updated(specifications); + + return new + { + Code = 200, + Data = specifications, + Msg = "修改供应商成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "修改供应商失败" + }; + } + } + + + //冻结供应商 + [HttpPut, Route("{id}/Frozenspecifications")] + public dynamic frozenPut(int id) + { + var specifications = _specificationsRepository.GetById(id); + + if (specifications == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该供应商不存在" + }; + } + specifications.IsActived = false; + _specificationsRepository.Insert(specifications); + + return new + { + Code = 200, + Data = specifications, + Msg = "冻结用户成功" + }; + } + + //启用供应商 + [HttpPut, Route("{id}/Enablespecifications")] + public dynamic enablePut(int id) + { + var specifications = _specificationsRepository.GetById(id); + + if (specifications == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该供应商不存在" + }; + } + specifications.IsActived = true; + _specificationsRepository.Updated(specifications); + + return new + { + Code = 200, + Data = specifications, + Msg = "启用供应商成功" + }; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UserinfoController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UserinfoController.cs new file mode 100644 index 0000000..e573a90 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UserinfoController.cs @@ -0,0 +1,149 @@ +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Params; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + //用户信息控制器 + [ApiController] + [Route("[controller]")] + public class UserinfoController : ControllerBase + { + private readonly IRepository _userInfoRepository; + + public UserinfoController(IRepository userInfoRepository) + { + _userInfoRepository = userInfoRepository; + } + + + //获取用户信息表 + [HttpGet] + public dynamic getUserInfo() + { + var userInfo = _userInfoRepository.Table; + + return new + { + code = 200, + data = userInfo, + msg = "请求成功" + }; + } + + [HttpPost] + public dynamic postUserInfo(CreateUserInfo createUserInfo) + { + var userId = createUserInfo.UserId; + var imgId = createUserInfo.ImgId; + var cardType = createUserInfo.CardType; + var cardNumber = createUserInfo.CardNumber; + var sex = createUserInfo.Sex; + var phoneNum = createUserInfo.phoneNumber; + + var res = new UserInfo + { + UserId = userId, + ImgId = imgId, + CardType = cardType, + CardNumber = cardNumber, + Sex = sex, + phoneNumber = phoneNum + }; + + + _userInfoRepository.Insert(res); + + return new + { + code = 200, + data = "", + msg = "添加成功" + }; + } + + [HttpPut("{id}")] + public dynamic putUserInfo(int id,ChangeUserInfo changeUserInfo) + { + var UserId = changeUserInfo.UserId; + var ImgId = changeUserInfo.ImgId; + var CardType = changeUserInfo.CardType; + var CardNumber = changeUserInfo.CardNumber; + var Sex = changeUserInfo.Sex; + var phoneNumber = changeUserInfo.phoneNumber; + + var ui = _userInfoRepository.GetById(id); + + ui.UserId = changeUserInfo.UserId; + ui.ImgId = changeUserInfo.ImgId; + ui.CardType = changeUserInfo.CardType; + ui.CardNumber = changeUserInfo.CardNumber; + ui.Sex = changeUserInfo.Sex; + ui.phoneNumber = changeUserInfo.phoneNumber; + + _userInfoRepository.Updated(ui); + + return new + { + code = 200, + data = ui, + msg = "修改成功" + }; + } + + + //冻结用户信息 + [HttpPut("{id}/freeze")] + public dynamic freezeUserInfo(int id) + { + var userInfo = _userInfoRepository.GetById(id); + + if (userInfo == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该用户信息不存在" + }; + } + userInfo.IsActived = false; + _userInfoRepository.Updated(userInfo); + + return new + { + Code = 200, + Data = userInfo, + Msg = "冻结用户成功" + }; + } + + + [HttpPut("{id}/enable")] + //启用用户信息 + public dynamic enableUserInfo(int id) + { + var userInfo = _userInfoRepository.GetById(id); + + if (userInfo == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该用户信息不存在" + }; + } + userInfo.IsActived = true; + _userInfoRepository.Updated(userInfo); + + return new + { + Code = 200, + Data = userInfo, + Msg = "启用用户成功" + }; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UsersController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UsersController.cs new file mode 100644 index 0000000..7b2d4a6 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/UsersController.cs @@ -0,0 +1,443 @@ +using Microsoft.AspNetCore.Mvc; +using ElectronicMallProject.Backend.Api.Repository; +using ElectronicMallProject.Backend.Api.Entity; +using System.Linq; +using Microsoft.Extensions.Configuration; +using ElectronicMallProject.Backend.Api.Params; +using ElectronicMallProject.Backend.Api.Utils; +using Microsoft.AspNetCore.Authorization; +using System.Collections; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class UsersController : ControllerBase + { + + private IRepository _usersRepository; + private IConfiguration _configuration; + private readonly IRepository _salesRepository; + private readonly IRepository _commodityRepository; + private TokenParameter _tokenparameter; + public UsersController(IRepository usersRepository, IConfiguration configuration, IRepository salesRepository, IRepository commodityRepository) + { + _usersRepository = usersRepository; + + _configuration = configuration; + + _salesRepository = salesRepository; + + _commodityRepository = commodityRepository; + + _tokenparameter = _configuration.GetSection("TokenParameter").Get(); + } + + //获取所有用户 + [HttpGet, Route("get")] + public dynamic Get() + { + var Users = _usersRepository.Table; + return new + { + Code = 200, + Data = Users, + Msg = "获取用户成功" + }; + } + + // [HttpGet("{id}")] + // public dynamic getById(int id) + // { + // var ss = _salesRepository.Table.Where(x => x.CommodityId == id).ToList(); + + // var uu = _salesRepository.Table.Where(x => x.UserId == id).ToList(); + + // ArrayList list = new ArrayList(); + + + // } + + //获取管理员用户 + [HttpGet, Route("getadmin")] + public dynamic AdminGet() + { + var user = _usersRepository.Table; + var userrole = user.Where(x => x.UserRole.Equals("管理员")).FirstOrDefault(); + + if (userrole == null) + { + var res = new + { + Code = 104, + Data = "", + Msg = "没有找到管理员" + }; + return JsonHelper.Serialize(res); + } + else + { + return new + { + Code = 200, + Data = userrole, + Msg = "获取管理员成功" + }; + + } + + } + + //获取商家用户 + [HttpGet, Route("getbusiness")] + public dynamic BusinessGet() + { + var user = _usersRepository.Table; + var userrole = user.Where(x => x.UserRole.Equals("商家")).FirstOrDefault(); + + if (userrole == null) + { + return new + { + Code = 104, + Data = "", + Msg = "没有找到商家" + }; + } + else + { + return new + { + Code = 200, + Data = userrole, + Msg = "获取商家成功" + }; + + } + } + + //获取用户 + [HttpGet, Route("getusers")] + public dynamic UsersGet() + { + var user = _usersRepository.Table; + var userrole = user.Where(x => x.UserRole.Equals("用户")); + + if (userrole == null) + { + return new + { + Code = 104, + Data = "", + Msg = "没有找到用户" + }; + } + else + { + return new + { + Code = 200, + Data = userrole, + Msg = "获取用户成功" + }; + + } + } + + //用户登录 + [HttpPost, Route("userslogin")] + public dynamic Post(LoginUsers loginusers) + { + var username = loginusers.UserName.Trim(); + var password = loginusers.PassWord.Trim(); + var user = _usersRepository.Table.Where(x => x.UserName == username && x.PassWord == password).FirstOrDefault(); + + if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password)) + { + if (user == null) + { + return new + { + Code = 104, + Data = "", + Msg = "用户名或密码错误" + }; + } + + var token = TokenHelper.GenUserToken(_tokenparameter, user.UserName); + var refreshToken = "123456789"; + + if (user.IsActived == false) + { + return new + { + Code = 105, + Data = "", + Msg = "该用户已被封号" + }; + } + else + { + if (user.UserRole == "用户") + { + return new + { + Code = 200, + Data = new { Token = token, refreshToken = refreshToken, user = user }, + Msg = "用户登陆成功" + }; + } + else if (user.UserRole == "商家") + { + return new + { + Code = 200, + Data = new { Token = token, refreshToken = refreshToken, user = user }, + Msg = "商家登陆成功" + }; + } + return new + { + Code = 200, + Data = new { Token = token, refreshToken = refreshToken, user = user }, + Msg = "管理员登陆成功" + }; + } + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "用户名密码不能为空" + }; + } + } + + //用户注册 + [HttpPost, Route("userregistry")] + public dynamic Post(CreateUsers newUser) + { + var username = newUser.UserName.Trim(); + var password = newUser.PassWord.Trim(); + var repassword = newUser.RePassword.Trim(); + var userrole = newUser.UserRole.Trim(); + + if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password) && !string.IsNullOrEmpty(repassword) && !string.IsNullOrEmpty(userrole)) + { + if (!password.Equals(repassword)) + { + return new + { + Code = 104, + Data = "", + Msg = "两次密码输入不一致" + }; + } + var user = _usersRepository.Table; + var ishaveuser = user.Where(x => x.UserName.Equals(username)).ToList(); + + //注册用户 + if (ishaveuser.Count() == 0) + { + var res = new Users + { + UserName = username, + PassWord = password, + UserRole = userrole + }; + + _usersRepository.Insert(res); + + return new + { + Code = 200, + Data = res, + Msg = "注册用户成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "该用户已注册" + }; + } + } + else + { + //用户名密码不能为空 + return new + { + Code = 104, + Data = "", + Msg = "用户名密码不能为空" + }; + } + } + + //修改用户密码 + [HttpPut, Route("{id}/changeusers")] + public dynamic Put(int id, ChangeUsers changeusers) + { + var username = changeusers.UserName.Trim(); + var password = changeusers.PassWord.Trim(); + + if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password)) + { + var user = _usersRepository.GetById(id); + if (user == null) + { + return new + { + Code = 104, + Data = "", + Msg = "要修改的用户不存在" + }; + } + user.UserName = changeusers.UserName; + user.PassWord = changeusers.PassWord; + + _usersRepository.Updated(user); + + return new + + { + Code = 200, + Data = user, + Msg = "修改用户成功" + }; + } + else + { + return new + { + Code = 104, + Data = "", + Msg = "用户名密码不能为空" + }; + } + } + + //分配用户角色 + [HttpPut, Route("{id}/distributionrole")] + public dynamic distributionPut(int id, CreateUserRole create) + { + var userrole = create.UserRole.Trim(); + + if (!string.IsNullOrEmpty(userrole)) + { + var user = _usersRepository.GetById(id); + + if (user == null) + { + return new + { + Code = 104, + Data = "", + Msg = "要分配角色的用户不存在" + }; + } + + user.UserRole = create.UserRole; + + _usersRepository.Updated(user); + + return new + { + Code = 200, + Data = user, + Msg = "分配用户角色成功" + }; + } + return ""; + } + + //冻结用户 + [HttpPut, Route("{id}/frozenusers")] + public dynamic frozenPut(int id) + { + var user = _usersRepository.GetById(id); + + if (user == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该用户不存在" + }; + } + user.IsActived = false; + _usersRepository.Updated(user); + + return new + { + Code = 200, + Data = user, + Msg = "冻结用户成功" + }; + } + + + //启用用户 + [HttpPut, Route("{id}/enableusers")] + public dynamic enablePut(int id) + { + var user = _usersRepository.GetById(id); + + if (user == null) + { + return new + { + Code = 104, + Data = "", + Msg = "该用户不存在" + }; + } + user.IsActived = true; + _usersRepository.Updated(user); + + return new + { + Code = 200, + Data = user, + Msg = "启用用户成功" + }; + } + + //刷新重新获取token + [AllowAnonymous] + [HttpPost, Route("userRefreshToken")] + public dynamic UserRefreshTokenPost(RefreshTokenDTO refresh) + { + var users = _usersRepository.Table; + var user = TokenHelper.ValidateToken(_tokenparameter, refresh); + + if (string.IsNullOrEmpty(user)) + { + return new + { + Code = 104, + Data = "", + Msg = "userRefreshToken验证失败" + }; + } + + var token = TokenHelper.GenUserToken(_tokenparameter, user); + + var refreshToken = "123456789"; + + return new + { + Code = 200, + Data = new { token = token, refreshToken = refreshToken, users = users }, + Msg = "刷新重新获取token,refreshToken成功" + }; + } + + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/WeatherForecastController.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..df6c036 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Controllers/WeatherForecastController.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet] + public IEnumerable Get() + { + var rng = new Random(); + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateTime.Now.AddDays(index), + TemperatureC = rng.Next(-20, 55), + Summary = Summaries[rng.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Database/DbInit.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Database/DbInit.cs new file mode 100644 index 0000000..6c92da7 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Database/DbInit.cs @@ -0,0 +1,72 @@ +using ElectronicMallProject.Backend.Api.Entity; +using Microsoft.EntityFrameworkCore; + +namespace ElectronicMallProject.Backend.Api.Database +{ + public class DbInit : DbContext + { + public DbInit() + { + + } + + public DbInit(DbContextOptions options) : base(options) + { + + } + + public DbSet users { get; set; } + public DbSet account { get; set; } + public DbSet
address { get; set; } + + //审计日志 + public DbSet auditinfo { get; set; } + public DbSet brand { get; set; } + public DbSet carousels { get; set; } + public DbSet comment { get; set; } + public DbSet commodity { get; set; } + public DbSet commoditydisplaycolumn { get; set; } + public DbSet imgs { get; set; } + public DbSet logistics { get; set; } + public DbSet sales { get; set; } + public DbSet shop { get; set; } + public DbSet shoppingcart { get; set; } + public DbSet shoptypes { get; set; } + public DbSet Specifications { get; set; } + public DbSet supplier { get; set; } + public DbSet userinfo { get; set; } + + + + + protected override void OnConfiguring(DbContextOptionsBuilder options) + { + options.UseNpgsql(@"server=47.113.121.34;database=EMMS;uid=postgres;pwd=XiongYY200012152841735357***;"); + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + // 初始化一个管理员用户 虽然Id是自动生成,但此处必须明确指定 + modelBuilder.Entity().HasData( + new Users + { + Id = 1, + UserName = "admin", + PassWord = "113", + PhoneNumber = "13174562456", + Address = null, + CustomerOrderAddress = null, + UserRole = "管理员", + IsActived = true, + IsDeleted = false, + CreatedTime = System.DateTime.Now, + UpdatedTime = System.DateTime.Now, + DisplayOrder = 0, + Remarks = null + } + ); + base.OnModelCreating(modelBuilder); + } + + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/ElectronicMallProject.Backend.Api.csproj b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/ElectronicMallProject.Backend.Api.csproj new file mode 100644 index 0000000..30a1293 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/ElectronicMallProject.Backend.Api.csproj @@ -0,0 +1,18 @@ + + + + netcoreapp3.1 + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Account.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Account.cs new file mode 100644 index 0000000..62c74b7 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Account.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Account:BaseInit + { + //账户余额 + public int AccountBalance {get;set;} + //用户Id + public int UserId{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AddRess.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AddRess.cs new file mode 100644 index 0000000..a3ebb7f --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AddRess.cs @@ -0,0 +1,24 @@ +using ElectronicMallProject.Backend.Api.Entity; + +namespace ElectronicMallProject.Backend.Api.Database +{ + + //收件地址表 + public class AddRess : BaseInit + { + //省 + public string Province { get; set; } + //市 + public string City { get; set; } + //区 + public string District { get; set; } + //街道 + public string Street { get; set; } + //详细地址 + public string Detailedaddress { get; set; } + //号码 + public string Number { get; set; } + //收件人 + public string Addressee { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AuditInfo.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AuditInfo.cs new file mode 100644 index 0000000..b214e0d --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/AuditInfo.cs @@ -0,0 +1,71 @@ +using System; +using ElectronicMallProject.Backend.Api; + +namespace ElectronicMallProject.Backend.Api.Entity +{ + /// + /// 角色实体 + /// + public class AuditInfo : BaseInit + { + /// + /// 调用参数 + /// + public string Parameters { get; set; } + + /// + /// 浏览器信息 + /// + public string BrowserInfo { get; set; } + + /// + /// 客户端信息 + /// + public string ClientName { get; set; } + + /// + /// 客户端IP地址 + /// + public string ClientIpAddress { get; set; } + + /// + /// 执行耗时 + /// + public int ExecutionDuration { get; set; } + + /// + /// 执行时间 + /// + public DateTime ExecutionTime { get; set; } + + /// + /// 返回内容 + /// + public string ReturnValue { get; set; } + + /// + /// 异常对象 + /// + public string Exception { get; set; } + + /// + /// 方法名 + /// + public string MethodName { get; set; } + + /// + /// 服务名 + /// + public string ServiceName { get; set; } + + /// + /// 调用者信息 + /// + public string UserInfo { get; set; } + + /// + /// 自定义数据 + /// + public string CustomData { get; set; } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/BaseInit.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/BaseInit.cs new file mode 100644 index 0000000..35fa1c8 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/BaseInit.cs @@ -0,0 +1,15 @@ +using System; + +namespace ElectronicMallProject.Backend.Api.Entity +{ + public abstract class BaseInit + { + public int Id {get;set;} + public bool IsActived {get;set;} + public bool IsDeleted {get;set;} + public DateTime CreatedTime {get;set;} + public DateTime UpdatedTime {get;set;} + public int DisplayOrder {get;set;} + public string Remarks {get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Brand.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Brand.cs new file mode 100644 index 0000000..b844a06 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Brand.cs @@ -0,0 +1,12 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + //品牌 + public class Brand : BaseInit + { + //品牌表 + public string BrandName { get; set; } + //品牌logo图id + public int logoImgId { get; set; } + } +} + diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Carousels.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Carousels.cs new file mode 100644 index 0000000..9cf6366 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Carousels.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Carousels:BaseInit + { + //图片Id + public int ImgsId{get;set;} + //商品Id + public int CommodityId{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Comment.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Comment.cs new file mode 100644 index 0000000..b6e8b3c --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Comment.cs @@ -0,0 +1,14 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Comment:BaseInit + { + //评论内容 + public string Content{get;set;} + //评论用户Id + public int ComUserId{get;set;} + //回复用户Id + public int ReplyUserId{get;set;} + //商品展示栏Id + public int CommodityDisplayColumnId{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Commodity.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Commodity.cs new file mode 100644 index 0000000..49a1a7d --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Commodity.cs @@ -0,0 +1,30 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Commodity : BaseInit + { + //商品名称 + public string CommodityName { get; set; } + //商品类型 + public string CommodityType { get; set; } + //商品原价 + public int CommodityOriginalPrice { get; set; } + //商品当前售价 + public int CommodityCurrentPrice { get; set; } + //商品品级 + public int CommodityGrade { get; set; } + //商品规格Id + public int SpecificationsId { get; set; } + //商品详情 + public string ProductDetails { get; set; } + //商品库存 + public int ProductStocks { get; set; } + //封面图Id + public int ImgId { get; set; } + //供应商Id + public int SupplierId { get; set; } + //商品品牌Id + public int BrandId { get; set; } + //商品类型Id + public int ShopTypeId { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/CommodityDisplayColumn.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/CommodityDisplayColumn.cs new file mode 100644 index 0000000..a8b2112 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/CommodityDisplayColumn.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class CommodityDisplayColumn:BaseInit + { + //展示栏名 + public string DisplayBar{get;set;} + //商铺Id + public int ShopId{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/DetailsChart.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/DetailsChart.cs new file mode 100644 index 0000000..9d41e50 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/DetailsChart.cs @@ -0,0 +1,9 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class DetailsChart : BaseInit + { + public int ImgId { get; set; } + public int CommodityId { get; set; } + } +} + diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Imgs.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Imgs.cs new file mode 100644 index 0000000..223c8cb --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Imgs.cs @@ -0,0 +1,8 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Imgs:BaseInit + { + //图片路径 + public string ImgsPath{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Logistics.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Logistics.cs new file mode 100644 index 0000000..19b4976 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Logistics.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Logistics:BaseInit + { + //订单Id + public int SalesId{get;set;} + //物流公司 + public string logisticsCompany{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Sales.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Sales.cs new file mode 100644 index 0000000..1622ee9 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Sales.cs @@ -0,0 +1,38 @@ +using System; + +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Sales:BaseInit + { + //订单号 + public string SalesNumber{get;set;} + //日期 + public string Date{get;set;} + //单个商品物件数 + public int NumberOfSingleProductItems{get;set;} + //总物件数 + public int TotalNumberOfObjects{get;set;} + //单笔金额 + public int SingleAmount{get;set;} + //总金额 + public int TotalMoney{get;set;} + //支付方式 + public string PaymentMethod{get;set;} + //用户Id + public int UserId{get;set;} + //商品Id + public int CommodityId{get;set;} + //物流信息 + public string LogisticsInformation{get;set;} + //发货时间 + public string DeliveryTime{get;set;} + //订单状态 + public string SalesStatus{get;set;} + //支付状态 + public string PaymentStatus{get;set;} + //实际付款金额 + public int PaymentAmount{get;set;} + //买家状态 + public string BuyerStatus{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Shop.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Shop.cs new file mode 100644 index 0000000..aae4587 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Shop.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Shop:BaseInit + { + //店铺名称 + public string ShopName{get;set;} + //商品类型id + public int ShopTypeId{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShopType.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShopType.cs new file mode 100644 index 0000000..4febec8 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShopType.cs @@ -0,0 +1,25 @@ + +namespace ElectronicMallProject.Backend.Api.Entity +{ + //商品类型 + public class ShopType : BaseInit + { + //商店类型名 + public string ShopTypeName {get;set;} + + //上级分类 + public int SuperiorShopTypeId {get;set;} + + //数量 + public string Measure {get;set;} + + //商店类型图片Id + public int ShopTypeIconId{get;set;} + + //删选属性 + public string FilterProperties{get;set;} + + //关键词 + public string keyword {get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShoppingCart.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShoppingCart.cs new file mode 100644 index 0000000..b8b70fe --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/ShoppingCart.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class ShoppingCart:BaseInit + { + //商品Id + public int CommodityId{get;set;} + //用户Id + public int UserId { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Specifications.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Specifications.cs new file mode 100644 index 0000000..15c6f0d --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Specifications.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Specifications : BaseInit + { + // 规格名 + public string SpecificationsName { get; set; } + //商品Id + public int CommodityId { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Supplier.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Supplier.cs new file mode 100644 index 0000000..db6cea3 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Supplier.cs @@ -0,0 +1,14 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Supplier:BaseInit + { + //供应商名字 + public string SupplierName{get;set;} + //供应商地址 + public string SupplierAddress{get;set;} + //联系人 + public string Contacts{get;set;} + //供应商营业 + public string MainBusiness{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserInfo.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserInfo.cs new file mode 100644 index 0000000..6c1b7e9 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserInfo.cs @@ -0,0 +1,24 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + //用户信息 + public class UserInfo : BaseInit + { + //用户Id + public int UserId { get; set; } + + //图片Id + public int ImgId { get; set; } + + // 证件信息 + public string CardType { get; set; } + + //身份证号 + public string CardNumber { get; set; } + + //性别 + public char Sex { get; set; } + + //手机号 + public string phoneNumber { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserRole.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserRole.cs new file mode 100644 index 0000000..3a983a6 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/UserRole.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class UserRole : BaseInit + { + public string Admin { get; set; } + public string Business { get; set; } + public string Users { get; set; } + public string Supplier { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Users.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Users.cs new file mode 100644 index 0000000..5d73b2b --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Entity/Users.cs @@ -0,0 +1,18 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class Users:BaseInit + { + //用户名 + public string UserName{get;set;} + //密码 + public string PassWord{get;set;} + //手机号 + public string PhoneNumber{get;set;} + //地址 + public string Address{get;set;} + //订单地址 + public string CustomerOrderAddress{get;set;} + //用户角色 + public string UserRole{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Filters/AuditLogActionFilter.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Filters/AuditLogActionFilter.cs new file mode 100644 index 0000000..f2dfa4f --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Filters/AuditLogActionFilter.cs @@ -0,0 +1,162 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; + +namespace ElectronicMallProject.Backend.Api.Filters +{ + public class AuditLogActionFilter : IAsyncActionFilter + { + /// + /// 登录用户 + /// + // private readonly ISession _Session; + /// + /// 日志记录 + /// + private readonly ILogger _logger; + + private readonly IRepository _auditLogService; + + public AuditLogActionFilter( + // ISession Session, + ILogger logger, + IRepository auditLogService + ) + { + // _Session = Session; + _logger = logger; + _auditLogService=auditLogService; + } + + public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) + { + // 判断是否写日志 + if (!ShouldSaveAudit(context)) + { + await next(); + return; + } + //接口Type + var type = (context.ActionDescriptor as ControllerActionDescriptor).ControllerTypeInfo.AsType(); + //方法信息 + var method = (context.ActionDescriptor as ControllerActionDescriptor).MethodInfo; + //方法参数 + var arguments = context.ActionArguments; + //开始计时 + var stopwatch = Stopwatch.StartNew(); + + var auditInfo = new AuditInfo + { + // UserInfo = _Session?.Id, + ServiceName = type != null ? type.FullName: "", + MethodName = method.Name, + ////请求参数转Json + Parameters = JsonConvert.SerializeObject(arguments), + ExecutionTime = DateTime.Now, + BrowserInfo = context.HttpContext.Request.Headers["User-Agent"].ToString(), + ClientIpAddress = context.HttpContext.Connection.RemoteIpAddress.ToString(), + //ClientName = _clientInfoProvider.ComputerName.TruncateWithPostfix(EntityDefault.FieldsLength100), + // Id = Guid.NewGuid().ToString() + }; + + ActionExecutedContext result = null; + try + { + result = await next(); + if (result.Exception != null && !result.ExceptionHandled) + { + auditInfo.Exception = result.Exception.ToString(); + } + } + catch (Exception ex) + { + auditInfo.Exception = ex.ToString(); + throw; + } + finally + { + stopwatch.Stop(); + auditInfo.ExecutionDuration = Convert.ToInt32(stopwatch.Elapsed.TotalMilliseconds); + + if (result != null) + { + switch (result.Result) + { + case ObjectResult objectResult: + auditInfo.ReturnValue = JsonConvert.SerializeObject(objectResult.Value); + break; + + case JsonResult jsonResult: + auditInfo.ReturnValue = JsonConvert.SerializeObject(jsonResult.Value); + break; + + case ContentResult contentResult: + auditInfo.ReturnValue = contentResult.Content; + break; + } + } + Console.WriteLine(auditInfo.ToString()); + //保存审计日志 + await _auditLogService.InserAsync(auditInfo); + } + } + + /// + /// 是否需要记录审计 + /// + /// + /// + private bool ShouldSaveAudit(ActionExecutingContext context) + { + if (!(context.ActionDescriptor is ControllerActionDescriptor)) + return false; + var methodInfo = (context.ActionDescriptor as ControllerActionDescriptor).MethodInfo; + + if (methodInfo == null) + { + return false; + } + + if (!methodInfo.IsPublic) + { + return false; + } + + // if (methodInfo.GetCustomAttribute() != null) + // { + // return true; + // } + + // if (methodInfo.GetCustomAttribute() != null) + // { + // return false; + // } + + // var classType = methodInfo.DeclaringType; + // if (classType != null) + // { + // if (classType.GetTypeInfo().GetCustomAttribute() != null) + // { + // return true; + // } + + // if (classType.GetTypeInfo().GetCustomAttribute() != null) + // { + // return false; + // } + // } + return false; + } + } +} \ No newline at end of file diff --git "a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.Designer.cs" "b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.Designer.cs" new file mode 100644 index 0000000..8c70575 --- /dev/null +++ "b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.Designer.cs" @@ -0,0 +1,848 @@ +// +using System; +using ElectronicMallProject.Backend.Api.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace ElectronicMallProject.Backend.Api.Migrations +{ + [DbContext(typeof(DbInit))] + [Migration("20210819081101_添加规格商品Id")] + partial class 添加规格商品Id + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Relational:MaxIdentifierLength", 63) + .HasAnnotation("ProductVersion", "5.0.9") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Database.AddRess", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Addressee") + .HasColumnType("text"); + + b.Property("City") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("Detailedaddress") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("District") + .HasColumnType("text"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Number") + .HasColumnType("text"); + + b.Property("Province") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("Street") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("address"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Account", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("AccountBalance") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("account"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.AuditInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BrowserInfo") + .HasColumnType("text"); + + b.Property("ClientIpAddress") + .HasColumnType("text"); + + b.Property("ClientName") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("CustomData") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("Exception") + .HasColumnType("text"); + + b.Property("ExecutionDuration") + .HasColumnType("integer"); + + b.Property("ExecutionTime") + .HasColumnType("timestamp without time zone"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MethodName") + .HasColumnType("text"); + + b.Property("Parameters") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ReturnValue") + .HasColumnType("text"); + + b.Property("ServiceName") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserInfo") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("auditinfo"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Brand", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BrandName") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("logoImgId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("brand"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Carousels", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgsId") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("carousels"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Comment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("ComUserId") + .HasColumnType("integer"); + + b.Property("CommodityDisplayColumnId") + .HasColumnType("integer"); + + b.Property("Content") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ReplyUserId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("comment"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Commodity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BrandId") + .HasColumnType("integer"); + + b.Property("CommodityCurrentPrice") + .HasColumnType("integer"); + + b.Property("CommodityGrade") + .HasColumnType("integer"); + + b.Property("CommodityName") + .HasColumnType("text"); + + b.Property("CommodityOriginalPrice") + .HasColumnType("integer"); + + b.Property("CommodityType") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgId") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ProductDetails") + .HasColumnType("text"); + + b.Property("ProductStocks") + .HasColumnType("integer"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopTypeId") + .HasColumnType("integer"); + + b.Property("SpecificationsId") + .HasColumnType("integer"); + + b.Property("SupplierId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("commodity"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.CommodityDisplayColumn", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayBar") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("commoditydisplaycolumn"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Imgs", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgsPath") + .HasColumnType("text"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("imgs"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Logistics", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SalesId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("logisticsCompany") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("logistics"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Sales", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BuyerStatus") + .HasColumnType("text"); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("Date") + .HasColumnType("text"); + + b.Property("DeliveryTime") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("LogisticsInformation") + .HasColumnType("text"); + + b.Property("NumberOfSingleProductItems") + .HasColumnType("integer"); + + b.Property("PaymentAmount") + .HasColumnType("integer"); + + b.Property("PaymentMethod") + .HasColumnType("text"); + + b.Property("PaymentStatus") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SalesNumber") + .HasColumnType("text"); + + b.Property("SalesStatus") + .HasColumnType("text"); + + b.Property("SingleAmount") + .HasColumnType("integer"); + + b.Property("TotalMoney") + .HasColumnType("integer"); + + b.Property("TotalNumberOfObjects") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("sales"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Shop", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopName") + .HasColumnType("text"); + + b.Property("ShopTypeId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("shop"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.ShopType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("FilterProperties") + .HasColumnType("text"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Measure") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopTypeIconId") + .HasColumnType("integer"); + + b.Property("ShopTypeName") + .HasColumnType("text"); + + b.Property("SuperiorShopTypeId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("keyword") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("shoptypes"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.ShoppingCart", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("shoppingcart"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Specifications", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SpecificationsName") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("Specifications"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Supplier", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Contacts") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MainBusiness") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SupplierAddress") + .HasColumnType("text"); + + b.Property("SupplierName") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("supplier"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.UserInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CardNumber") + .HasColumnType("text"); + + b.Property("CardType") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgId") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("Sex") + .HasColumnType("character(1)"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.Property("phoneNumber") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("userinfo"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Users", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Address") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("CustomerOrderAddress") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("PassWord") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserName") + .HasColumnType("text"); + + b.Property("UserRole") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("users"); + + b.HasData( + new + { + Id = 1, + CreatedTime = new DateTime(2021, 8, 19, 16, 11, 0, 787, DateTimeKind.Local).AddTicks(111), + DisplayOrder = 0, + IsActived = true, + IsDeleted = false, + PassWord = "113", + PhoneNumber = "13174562456", + UpdatedTime = new DateTime(2021, 8, 19, 16, 11, 0, 789, DateTimeKind.Local).AddTicks(1042), + UserName = "admin", + UserRole = "管理员" + }); + }); +#pragma warning restore 612, 618 + } + } +} diff --git "a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.cs" "b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.cs" new file mode 100644 index 0000000..1b9d30c --- /dev/null +++ "b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/20210819081101_\346\267\273\345\212\240\350\247\204\346\240\274\345\225\206\345\223\201Id.cs" @@ -0,0 +1,487 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace ElectronicMallProject.Backend.Api.Migrations +{ + public partial class 添加规格商品Id : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "account", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + AccountBalance = table.Column(type: "integer", nullable: false), + UserId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_account", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "address", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Province = table.Column(type: "text", nullable: true), + City = table.Column(type: "text", nullable: true), + District = table.Column(type: "text", nullable: true), + Street = table.Column(type: "text", nullable: true), + Detailedaddress = table.Column(type: "text", nullable: true), + Number = table.Column(type: "text", nullable: true), + Addressee = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_address", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "auditinfo", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Parameters = table.Column(type: "text", nullable: true), + BrowserInfo = table.Column(type: "text", nullable: true), + ClientName = table.Column(type: "text", nullable: true), + ClientIpAddress = table.Column(type: "text", nullable: true), + ExecutionDuration = table.Column(type: "integer", nullable: false), + ExecutionTime = table.Column(type: "timestamp without time zone", nullable: false), + ReturnValue = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + MethodName = table.Column(type: "text", nullable: true), + ServiceName = table.Column(type: "text", nullable: true), + UserInfo = table.Column(type: "text", nullable: true), + CustomData = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_auditinfo", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "brand", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + BrandName = table.Column(type: "text", nullable: true), + logoImgId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_brand", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "carousels", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ImgsId = table.Column(type: "integer", nullable: false), + CommodityId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_carousels", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "comment", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Content = table.Column(type: "text", nullable: true), + ComUserId = table.Column(type: "integer", nullable: false), + ReplyUserId = table.Column(type: "integer", nullable: false), + CommodityDisplayColumnId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_comment", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "commodity", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + CommodityName = table.Column(type: "text", nullable: true), + CommodityType = table.Column(type: "text", nullable: true), + CommodityOriginalPrice = table.Column(type: "integer", nullable: false), + CommodityCurrentPrice = table.Column(type: "integer", nullable: false), + CommodityGrade = table.Column(type: "integer", nullable: false), + SpecificationsId = table.Column(type: "integer", nullable: false), + ProductDetails = table.Column(type: "text", nullable: true), + ProductStocks = table.Column(type: "integer", nullable: false), + ImgId = table.Column(type: "integer", nullable: false), + SupplierId = table.Column(type: "integer", nullable: false), + BrandId = table.Column(type: "integer", nullable: false), + ShopTypeId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_commodity", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "commoditydisplaycolumn", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + DisplayBar = table.Column(type: "text", nullable: true), + ShopId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_commoditydisplaycolumn", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "imgs", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ImgsPath = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_imgs", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "logistics", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + SalesId = table.Column(type: "integer", nullable: false), + logisticsCompany = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_logistics", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "sales", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + SalesNumber = table.Column(type: "text", nullable: true), + Date = table.Column(type: "text", nullable: true), + NumberOfSingleProductItems = table.Column(type: "integer", nullable: false), + TotalNumberOfObjects = table.Column(type: "integer", nullable: false), + SingleAmount = table.Column(type: "integer", nullable: false), + TotalMoney = table.Column(type: "integer", nullable: false), + PaymentMethod = table.Column(type: "text", nullable: true), + UserId = table.Column(type: "integer", nullable: false), + CommodityId = table.Column(type: "integer", nullable: false), + LogisticsInformation = table.Column(type: "text", nullable: true), + DeliveryTime = table.Column(type: "text", nullable: true), + SalesStatus = table.Column(type: "text", nullable: true), + PaymentStatus = table.Column(type: "text", nullable: true), + PaymentAmount = table.Column(type: "integer", nullable: false), + BuyerStatus = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_sales", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "shop", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ShopName = table.Column(type: "text", nullable: true), + ShopTypeId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_shop", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "shoppingcart", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + CommodityId = table.Column(type: "integer", nullable: false), + UserId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_shoppingcart", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "shoptypes", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ShopTypeName = table.Column(type: "text", nullable: true), + SuperiorShopTypeId = table.Column(type: "integer", nullable: false), + Measure = table.Column(type: "text", nullable: true), + ShopTypeIconId = table.Column(type: "integer", nullable: false), + FilterProperties = table.Column(type: "text", nullable: true), + keyword = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_shoptypes", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Specifications", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + SpecificationsName = table.Column(type: "text", nullable: true), + CommodityId = table.Column(type: "integer", nullable: false), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Specifications", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "supplier", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + SupplierName = table.Column(type: "text", nullable: true), + SupplierAddress = table.Column(type: "text", nullable: true), + Contacts = table.Column(type: "text", nullable: true), + MainBusiness = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_supplier", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "userinfo", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + UserId = table.Column(type: "integer", nullable: false), + ImgId = table.Column(type: "integer", nullable: false), + CardType = table.Column(type: "text", nullable: true), + CardNumber = table.Column(type: "text", nullable: true), + Sex = table.Column(type: "character(1)", nullable: false), + phoneNumber = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_userinfo", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "users", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + UserName = table.Column(type: "text", nullable: true), + PassWord = table.Column(type: "text", nullable: true), + PhoneNumber = table.Column(type: "text", nullable: true), + Address = table.Column(type: "text", nullable: true), + CustomerOrderAddress = table.Column(type: "text", nullable: true), + UserRole = table.Column(type: "text", nullable: true), + IsActived = table.Column(type: "boolean", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false), + CreatedTime = table.Column(type: "timestamp without time zone", nullable: false), + UpdatedTime = table.Column(type: "timestamp without time zone", nullable: false), + DisplayOrder = table.Column(type: "integer", nullable: false), + Remarks = table.Column(type: "text", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_users", x => x.Id); + }); + + migrationBuilder.InsertData( + table: "users", + columns: new[] { "Id", "Address", "CreatedTime", "CustomerOrderAddress", "DisplayOrder", "IsActived", "IsDeleted", "PassWord", "PhoneNumber", "Remarks", "UpdatedTime", "UserName", "UserRole" }, + values: new object[] { 1, null, new DateTime(2021, 8, 19, 16, 11, 0, 787, DateTimeKind.Local).AddTicks(111), null, 0, true, false, "113", "13174562456", null, new DateTime(2021, 8, 19, 16, 11, 0, 789, DateTimeKind.Local).AddTicks(1042), "admin", "管理员" }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "account"); + + migrationBuilder.DropTable( + name: "address"); + + migrationBuilder.DropTable( + name: "auditinfo"); + + migrationBuilder.DropTable( + name: "brand"); + + migrationBuilder.DropTable( + name: "carousels"); + + migrationBuilder.DropTable( + name: "comment"); + + migrationBuilder.DropTable( + name: "commodity"); + + migrationBuilder.DropTable( + name: "commoditydisplaycolumn"); + + migrationBuilder.DropTable( + name: "imgs"); + + migrationBuilder.DropTable( + name: "logistics"); + + migrationBuilder.DropTable( + name: "sales"); + + migrationBuilder.DropTable( + name: "shop"); + + migrationBuilder.DropTable( + name: "shoppingcart"); + + migrationBuilder.DropTable( + name: "shoptypes"); + + migrationBuilder.DropTable( + name: "Specifications"); + + migrationBuilder.DropTable( + name: "supplier"); + + migrationBuilder.DropTable( + name: "userinfo"); + + migrationBuilder.DropTable( + name: "users"); + } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/DbInitModelSnapshot.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/DbInitModelSnapshot.cs new file mode 100644 index 0000000..b9053af --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Migrations/DbInitModelSnapshot.cs @@ -0,0 +1,846 @@ +// +using System; +using ElectronicMallProject.Backend.Api.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace ElectronicMallProject.Backend.Api.Migrations +{ + [DbContext(typeof(DbInit))] + partial class DbInitModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Relational:MaxIdentifierLength", 63) + .HasAnnotation("ProductVersion", "5.0.9") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Database.AddRess", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Addressee") + .HasColumnType("text"); + + b.Property("City") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("Detailedaddress") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("District") + .HasColumnType("text"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Number") + .HasColumnType("text"); + + b.Property("Province") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("Street") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("address"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Account", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("AccountBalance") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("account"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.AuditInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BrowserInfo") + .HasColumnType("text"); + + b.Property("ClientIpAddress") + .HasColumnType("text"); + + b.Property("ClientName") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("CustomData") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("Exception") + .HasColumnType("text"); + + b.Property("ExecutionDuration") + .HasColumnType("integer"); + + b.Property("ExecutionTime") + .HasColumnType("timestamp without time zone"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MethodName") + .HasColumnType("text"); + + b.Property("Parameters") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ReturnValue") + .HasColumnType("text"); + + b.Property("ServiceName") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserInfo") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("auditinfo"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Brand", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BrandName") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("logoImgId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("brand"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Carousels", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgsId") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("carousels"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Comment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("ComUserId") + .HasColumnType("integer"); + + b.Property("CommodityDisplayColumnId") + .HasColumnType("integer"); + + b.Property("Content") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ReplyUserId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("comment"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Commodity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BrandId") + .HasColumnType("integer"); + + b.Property("CommodityCurrentPrice") + .HasColumnType("integer"); + + b.Property("CommodityGrade") + .HasColumnType("integer"); + + b.Property("CommodityName") + .HasColumnType("text"); + + b.Property("CommodityOriginalPrice") + .HasColumnType("integer"); + + b.Property("CommodityType") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgId") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("ProductDetails") + .HasColumnType("text"); + + b.Property("ProductStocks") + .HasColumnType("integer"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopTypeId") + .HasColumnType("integer"); + + b.Property("SpecificationsId") + .HasColumnType("integer"); + + b.Property("SupplierId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("commodity"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.CommodityDisplayColumn", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayBar") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("commoditydisplaycolumn"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Imgs", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgsPath") + .HasColumnType("text"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("imgs"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Logistics", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SalesId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("logisticsCompany") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("logistics"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Sales", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BuyerStatus") + .HasColumnType("text"); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("Date") + .HasColumnType("text"); + + b.Property("DeliveryTime") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("LogisticsInformation") + .HasColumnType("text"); + + b.Property("NumberOfSingleProductItems") + .HasColumnType("integer"); + + b.Property("PaymentAmount") + .HasColumnType("integer"); + + b.Property("PaymentMethod") + .HasColumnType("text"); + + b.Property("PaymentStatus") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SalesNumber") + .HasColumnType("text"); + + b.Property("SalesStatus") + .HasColumnType("text"); + + b.Property("SingleAmount") + .HasColumnType("integer"); + + b.Property("TotalMoney") + .HasColumnType("integer"); + + b.Property("TotalNumberOfObjects") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("sales"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Shop", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopName") + .HasColumnType("text"); + + b.Property("ShopTypeId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("shop"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.ShopType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("FilterProperties") + .HasColumnType("text"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Measure") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("ShopTypeIconId") + .HasColumnType("integer"); + + b.Property("ShopTypeName") + .HasColumnType("text"); + + b.Property("SuperiorShopTypeId") + .HasColumnType("integer"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("keyword") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("shoptypes"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.ShoppingCart", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("shoppingcart"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Specifications", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CommodityId") + .HasColumnType("integer"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SpecificationsName") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("Specifications"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Supplier", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Contacts") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("MainBusiness") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("SupplierAddress") + .HasColumnType("text"); + + b.Property("SupplierName") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id"); + + b.ToTable("supplier"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.UserInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CardNumber") + .HasColumnType("text"); + + b.Property("CardType") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("ImgId") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("Sex") + .HasColumnType("character(1)"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.Property("phoneNumber") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("userinfo"); + }); + + modelBuilder.Entity("ElectronicMallProject.Backend.Api.Entity.Users", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Address") + .HasColumnType("text"); + + b.Property("CreatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("CustomerOrderAddress") + .HasColumnType("text"); + + b.Property("DisplayOrder") + .HasColumnType("integer"); + + b.Property("IsActived") + .HasColumnType("boolean"); + + b.Property("IsDeleted") + .HasColumnType("boolean"); + + b.Property("PassWord") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("text"); + + b.Property("Remarks") + .HasColumnType("text"); + + b.Property("UpdatedTime") + .HasColumnType("timestamp without time zone"); + + b.Property("UserName") + .HasColumnType("text"); + + b.Property("UserRole") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("users"); + + b.HasData( + new + { + Id = 1, + CreatedTime = new DateTime(2021, 8, 19, 16, 11, 0, 787, DateTimeKind.Local).AddTicks(111), + DisplayOrder = 0, + IsActived = true, + IsDeleted = false, + PassWord = "113", + PhoneNumber = "13174562456", + UpdatedTime = new DateTime(2021, 8, 19, 16, 11, 0, 789, DateTimeKind.Local).AddTicks(1042), + UserName = "admin", + UserRole = "管理员" + }); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeAddRess.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeAddRess.cs new file mode 100644 index 0000000..2adac80 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeAddRess.cs @@ -0,0 +1,20 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class ChangeAddRess + { + //省 + public string Province { get; set; } + //市 + public string City { get; set; } + //区 + public string District { get; set; } + //街道 + public string Street { get; set; } + //详细地址 + public string Detailedaddress { get; set; } + //号码 + public string Number { get; set; } + //收件人 + public string Addressee { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSales.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSales.cs new file mode 100644 index 0000000..0a03e28 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSales.cs @@ -0,0 +1,38 @@ +using System; + +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class ChangeSales + { + //订单号 + public string SalesNumber{get;set;} + //日期 + public string Date{get;set;} + //单个商品物件数 + public int NumberOfSingleProductItems{get;set;} + //总物件数 + public int TotalNumberOfObjects{get;set;} + //单笔金额 + public int SingleAmount{get;set;} + //总金额 + public int TotalMoney{get;set;} + //支付方式 + public string PaymentMethod{get;set;} + //用户Id + public int UserId{get;set;} + //商品Id + public int CommodityId{get;set;} + //物流信息 + public string LogisticsInformation{get;set;} + //发货时间 + public string DeliveryTime{get;set;} + //订单状态 + public string SalesStatus{get;set;} + //支付状态 + public string PaymentStatus{get;set;} + //实际付款金额 + public int PaymentAmount{get;set;} + //买家状态 + public string BuyerStatus{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeShopType.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeShopType.cs new file mode 100644 index 0000000..3e56389 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeShopType.cs @@ -0,0 +1,24 @@ + +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class ChangeShopType + { + //商店类型名 + public string ShopTypeName {get;set;} + + //上级分类 + public int SuperiorShopTypeId {get;set;} + + //计量单位 + public string Measure {get;set;} + + //商店类型图片Id + public int ShopTypeIconId{get;set;} + + //筛选属性 + public string FilterProperties{get;set;} + + //关键词 + public string keyword {get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSpecifications.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSpecifications.cs new file mode 100644 index 0000000..e385ee8 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeSpecifications.cs @@ -0,0 +1,8 @@ +namespace ElectronicMallProject.Backend.Api.Params +{ + public class ChangeSpecifications + { + public string SpecificationsName { get; set; } + + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUserInfo.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUserInfo.cs new file mode 100644 index 0000000..e35d288 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUserInfo.cs @@ -0,0 +1,25 @@ +using ElectronicMallProject.Backend.Api.Entity; + +namespace ElectronicMallProject.Backend.Api.Params +{ + public class ChangeUserInfo + { + //用户Id + public int UserId { get; set; } + + //图片Id + public int ImgId { get; set; } + + // 证件信息 + public string CardType { get; set; } + + //身份证号 + public string CardNumber { get; set; } + + //性别 + public char Sex { get; set; } + + //手机号 + public string phoneNumber { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUsers.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUsers.cs new file mode 100644 index 0000000..50ababa --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/ChangeUsers.cs @@ -0,0 +1,8 @@ +namespace ElectronicMallProject.Backend.Api.Params +{ + public class ChangeUsers + { + public string UserName { get; set; } + public string PassWord { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateAddRess.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateAddRess.cs new file mode 100644 index 0000000..718eb33 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateAddRess.cs @@ -0,0 +1,20 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class CreateAddRess + { + //省 + public string Province { get; set; } + //市 + public string City { get; set; } + //区 + public string District { get; set; } + //街道 + public string Street { get; set; } + //详细地址 + public string Detailedaddress { get; set; } + //号码 + public string Number { get; set; } + //收件人 + public string Addressee { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateBrand.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateBrand.cs new file mode 100644 index 0000000..b69459f --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateBrand.cs @@ -0,0 +1,13 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + //品牌 + public class CreateBrand + { + //品牌表 + public string BrandName { get; set; } + //品牌logo图id + public int logoImgId { get; set; } + //品牌封面图id + public int coverImgId { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateCommodity.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateCommodity.cs new file mode 100644 index 0000000..6665439 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateCommodity.cs @@ -0,0 +1,16 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class CreateCommodity + { + public string CommodityName { get; set; } + public string CommodityType { get; set; } + public int CommodityCurrentPrice { get; set; } + public int SpecificationsId { get; set; } + public string ProductDetails { get; set; } + public int ProductStocks { get; set; } + public int ImgId { get; set; } + public int SupplierId { get; set; } + public int BrandId { get; set; } + public int ShopTypeId { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSales.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSales.cs new file mode 100644 index 0000000..f0fbc3c --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSales.cs @@ -0,0 +1,38 @@ +using System; + +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class CreateSales + { + //订单号 + public string SalesNumber{get;set;} + //日期 + public string Date{get;set;} + //单个商品物件数 + public int NumberOfSingleProductItems{get;set;} + //总物件数 + public int TotalNumberOfObjects{get;set;} + //单笔金额 + public int SingleAmount{get;set;} + //总金额 + public int TotalMoney{get;set;} + //支付方式 + public string PaymentMethod{get;set;} + //用户Id + public int UserId{get;set;} + //商品Id + public int CommodityId{get;set;} + //物流信息 + public string LogisticsInformation{get;set;} + //发货时间 + public string DeliveryTime{get;set;} + //订单状态 + public string SalesStatus{get;set;} + //支付状态 + public string PaymentStatus{get;set;} + //实际付款金额 + public int PaymentAmount{get;set;} + //买家状态 + public string BuyerStatus{get;set;} + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateShoppingCart.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateShoppingCart.cs new file mode 100644 index 0000000..b7cdadc --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateShoppingCart.cs @@ -0,0 +1,8 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + public class CreateShoppingCart + { + public int CommodityId { get; set; } + public int UserId { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSpecifications.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSpecifications.cs new file mode 100644 index 0000000..0098d08 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateSpecifications.cs @@ -0,0 +1,9 @@ +namespace ElectronicMallProject.Backend.Api.Entity +{ + //修改规格 + public class CreateSpecifications + { + public string SpecificationsName { get; set; } + public int CommodityId { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserInfo.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserInfo.cs new file mode 100644 index 0000000..84a6939 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserInfo.cs @@ -0,0 +1,25 @@ +using ElectronicMallProject.Backend.Api.Entity; + +namespace ElectronicMallProject.Backend.Api.Params +{ + public class CreateUserInfo + { + //用户Id + public int UserId { get; set; } + + //图片Id + public int ImgId { get; set; } + + // 证件信息 + public string CardType { get; set; } + + //身份证号 + public string CardNumber { get; set; } + + //性别 + public char Sex { get; set; } + + //手机号 + public string phoneNumber { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserRole.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserRole.cs new file mode 100644 index 0000000..2391d65 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUserRole.cs @@ -0,0 +1,7 @@ +namespace ElectronicMallProject.Backend.Api.Params +{ + public class CreateUserRole + { + public string UserRole { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUsers.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUsers.cs new file mode 100644 index 0000000..2809973 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/CreateUsers.cs @@ -0,0 +1,10 @@ +namespace ElectronicMallProject.Backend.Api.Params +{ + public class CreateUsers + { + public string UserName { get; set; } + public string PassWord { get; set; } + public string RePassword { get; set; } + public string UserRole { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/LoginUsers.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/LoginUsers.cs new file mode 100644 index 0000000..7ceb042 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/LoginUsers.cs @@ -0,0 +1,8 @@ +namespace ElectronicMallProject.Backend.Api.Params +{ + public class LoginUsers + { + public string UserName { get; set; } + public string PassWord { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/RefreshToken.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/RefreshToken.cs new file mode 100644 index 0000000..335ab40 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/RefreshToken.cs @@ -0,0 +1,8 @@ +namespace ElectronicMallProject.Backend.Api.Params +{ + public class RefreshTokenDTO + { + public string Token { get; set; } + public string refreshToken { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/TokenParameter.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/TokenParameter.cs new file mode 100644 index 0000000..2b7f5f9 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Params/TokenParameter.cs @@ -0,0 +1,17 @@ +namespace ElectronicMallProject.Backend.Api.Params +{ + public class TokenParameter + { + //生成token的密钥 + public string Secret { get; set; } + + //签发人的名称 + public string Issuer { get; set; } + + //Token的有效分钟数 + public int AccessExpiration { get; set; } + + // refreshToken的有效分钟数 + public int RefreshExpiration { get; set; } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Program.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Program.cs new file mode 100644 index 0000000..c981f14 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Program.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace ElectronicMallProject.Backend.Api +{ + 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.UseStartup(); + }); + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Properties/launchSettings.json b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Properties/launchSettings.json new file mode 100644 index 0000000..280316f --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Properties/launchSettings.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:61311", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "weatherforecast", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "ElectronicMallProject.Backend.Api": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "weatherforecast", + "applicationUrl": "http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/EfRepository.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/EfRepository.cs new file mode 100644 index 0000000..dc598f5 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/EfRepository.cs @@ -0,0 +1,152 @@ +using ElectronicMallProject.Backend.Api.Entity; +using System.Threading.Tasks; +using System.Collections.Generic; +using System.Linq; +using Microsoft.EntityFrameworkCore; +using System; +using ElectronicMallProject.Backend.Api.Database; + +namespace ElectronicMallProject.Backend.Api.Repository +{ + public class EfRepository : IRepository where T : BaseInit + { + private DbInit _db; + + public EfRepository(DbInit db) + { + _db=db; + } + + private DbSet _entity; + + protected DbSet Entity + { + get + { + if (_entity == null) + { + _entity = _db.Set(); + } + return _entity; + } + } + public IQueryable Table + { + get + { + return Entity.AsQueryable(); + } + } + + public void Deleted(object Id) + { + var t = Entity.Find(Id); + if (t == null) + { + throw new ArgumentNullException(nameof(t)); + } + _db.Remove(t); + _db.SaveChanges(); + } + + public void DeletedBulk(IEnumerable Ids) + { + var ii = new List(); + foreach (var item in Ids) + { + var tmp = (int)item; + ii.Add(tmp); + } + var ts = Entity.Where(x => ii.Contains(x.Id)).ToList(); + _db.RemoveRange(ts); + _db.SaveChanges(); + } + + public T GetById(object Id) + { + return Entity.Find(Id); + } + + public async Task InserAsync(T entity) + { + if (entity == null) + { + throw new ArgumentNullException(); + } + + entity.IsActived = true; + entity.IsDeleted = false; + entity.CreatedTime = DateTime.Now; + entity.UpdatedTime = DateTime.Now; + // entity.DisplayOrder = 0; + + await Entity.AddAsync(entity); + await _db.SaveChangesAsync(); + } + + public async Task InserAsyncBulk(IEnumerable entitys) + { + foreach (var entity in entitys) + { + entity.IsActived = true; + entity.IsDeleted = false; + entity.CreatedTime = DateTime.Now; + entity.UpdatedTime = DateTime.Now; + // entity.DisplayOrder = 0; + } + await Entity.AddRangeAsync(entitys); + await _db.SaveChangesAsync(); + } + + public void Insert(T entity) + { + if (entity == null) + { + throw new ArgumentNullException(); + } + + entity.IsActived = true; + entity.IsDeleted = false; + entity.CreatedTime = DateTime.Now; + entity.UpdatedTime = DateTime.Now; + + Entity.Add(entity); + _db.SaveChanges(); + } + + public void InsertBulk(IEnumerable entitys) + { + foreach (var entity in entitys) + { + entity.IsActived = true; + entity.IsDeleted = false; + entity.CreatedTime = DateTime.Now; + entity.UpdatedTime = DateTime.Now; + // entity.DisplayOrder = 0; + } + Entity.AddRange(entitys); + _db.SaveChanges(); + } + + public void Updated(T entity) + { + if(entity == null) + { + throw new ArgumentNullException(nameof(entity)); + } + entity.UpdatedTime=DateTime.Now; + Entity.Update(entity); + _db.SaveChanges(); + } + + public void UpdatedBulk(IEnumerable entitys) + { + foreach (var entity in entitys) + { + entity.UpdatedTime = DateTime.Now; + } + Entity.UpdateRange(entitys); + _db.SaveChanges(); + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/IRepository.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/IRepository.cs new file mode 100644 index 0000000..bef526f --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Repository/IRepository.cs @@ -0,0 +1,73 @@ +using ElectronicMallProject.Backend.Api.Entity; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Linq; + +namespace ElectronicMallProject.Backend.Api.Repository +{ + /// + /// 定义的一个接口,用于实体类型的CRUD操作 + /// + /// 泛型,可以表示任意一个实体 + public interface IRepository where T : BaseInit + { + /// + /// 一个属性表示可查询的表 + /// + /// + IQueryable Table {get;} + /// + /// 获取实体类型T + /// + /// + T GetById(object Id); + /// + /// 用于插入数据 + /// + /// 获取的实体类型 + void Insert(T entity); + /// + /// 批量插入数据 + /// + /// 获取的实体类型集合 + void InsertBulk(IEnumerable entitys); + + /// + /// 用于插入数据(异步) + /// + /// 获取的实体类型 + /// + Task InserAsync(T entity); + + /// + /// 批量插入数据(异步) + /// + /// 获取的实体类型集合 + /// + Task InserAsyncBulk(IEnumerable entitys); + + /// + /// 删除对应数据 + /// + /// 获取的id + void Deleted(object Id); + + /// + /// 批量删除对应数据 + /// + /// 获取的id集合 + void DeletedBulk(IEnumerable Ids); + + /// + /// 更新数据 + /// + /// 获取的id + void Updated(T entity); + + /// + /// 批量更新数据 + /// + /// 获取的id集合 + void UpdatedBulk(IEnumerable entitys); + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Startup.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Startup.cs new file mode 100644 index 0000000..5735da3 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Startup.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using ElectronicMallProject.Backend.Api.Database; +using ElectronicMallProject.Backend.Api.Repository; +using Microsoft.IdentityModel.Tokens; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using ElectronicMallProject.Backend.Api.Params; +using System.Text; +using ElectronicMallProject.Backend.Api.Filters; +using Microsoft.Extensions.FileProviders; + +namespace ElectronicMallProject.Backend.Api +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + //添加跨域访问变量 + readonly string _allowCors = "AllowSpecificOrigins"; + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + services.AddCors(options => + { + options.AddPolicy(_allowCors, + builder => builder.AllowAnyHeader() + .AllowAnyMethod() + .AllowAnyOrigin()); + }); + + services.AddControllers(); + + // 注入 IRepository接口及其实现类 + services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>)); + + //注入数据库上下文 + services.AddDbContext(); + + //配置token验证信息 + services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(option => + { + option.RequireHttpsMetadata = false; + option.SaveToken = true; + + var token = Configuration.GetSection("TokenParameter").Get(); + + option.TokenValidationParameters = new TokenValidationParameters + { + ValidateIssuerSigningKey = true, + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(token.Secret)), + ValidIssuer = token.Issuer, + ValidateIssuer = true, + ValidateAudience = false, + }; + }); + + //审计日志储存 + services.AddControllers(options => + { + options.Filters.Add(typeof(AuditLogActionFilter)); + }); + + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + //静态文件处理 + var staticfile = new StaticFileOptions(); + + staticfile.FileProvider = new PhysicalFileProvider(env.ContentRootPath + "/files"); + + app.UseStaticFiles(staticfile); + + //路由 + app.UseRouting(); + + + //注册验证token中间件 + app.UseAuthorization(); + app.UseAuthentication(); + + //跨域 + app.UseCors(_allowCors); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/FilesHelper.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/FilesHelper.cs new file mode 100644 index 0000000..298b316 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/FilesHelper.cs @@ -0,0 +1,44 @@ +using System; +using System.IO; +using ElectronicMallProject.Backend.Api.Entity; +using ElectronicMallProject.Backend.Api.Repository; +using Microsoft.AspNetCore.Hosting; + +namespace ElectronicMallProject.Backend.Api.Controllers +{ + public class FilesHelper + { + public static dynamic UpImgs(dynamic files, IWebHostEnvironment env, IRepository imgsRepository) + { + var _imgsRespostisory = imgsRepository; + var imgsRootPath = env.ContentRootPath; + string filesPath = ""; + + string physicPath = imgsRootPath + "/files/"; //物理路径 + + //判断文件是否存在 + if (!Directory.Exists(physicPath)) + { + Directory.CreateDirectory(physicPath); + } + + foreach (var formFile in files) + { + + //文件名字 + string filesName = DateTime.Now.ToFileTime() + Path.GetExtension(formFile.FileName); + //绝对路径 + string fileFullPath = Path.Combine(physicPath, filesName); + using (var stream = new FileStream(fileFullPath, FileMode.CreateNew)) + { + formFile.CopyTo(stream);//保存文件 + } + filesPath += fileFullPath + ','; + + } + + filesPath = filesPath.TrimEnd(','); + return filesPath; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/JsonHelper.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/JsonHelper.cs new file mode 100644 index 0000000..47eca41 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/JsonHelper.cs @@ -0,0 +1,20 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace ElectronicMallProject.Backend.Api.Utils +{ + public class JsonHelper + { + public static string Serialize(dynamic obj) + { + var datetimeFormat = "yyyy-MM-dd HH:mm:ss"; + var setting = new JsonSerializerSettings(); + setting.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(); + setting.DateFormatString = datetimeFormat; + + var timeConverter = new IsoDateTimeConverter { DateTimeFormat = datetimeFormat }; + var result = JsonConvert.SerializeObject(obj, Formatting.Indented, setting); + return result; + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/TokenHeper.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/TokenHeper.cs new file mode 100644 index 0000000..ede2649 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/Utils/TokenHeper.cs @@ -0,0 +1,61 @@ + +using System; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; +using Microsoft.IdentityModel.Tokens; +using ElectronicMallProject.Backend.Api.Params; +using ElectronicMallProject.Backend.Api.Entity; + +namespace ElectronicMallProject.Backend.Api.Utils +{ + public class TokenHelper + { + //这儿是真正的生成Token代码 + public static string GenUserToken(TokenParameter tokenParameter, string user) + { + var claims = new[] + { + new Claim(ClaimTypes.Name, user), + new Claim(ClaimTypes.Role, "admin"), + }; + + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(tokenParameter.Secret)); + var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + var jwtToken = new JwtSecurityToken(tokenParameter.Issuer, null, claims, expires: DateTime.UtcNow.AddMinutes(tokenParameter.AccessExpiration), signingCredentials: credentials); + + var token = new JwtSecurityTokenHandler().WriteToken(jwtToken); + + return token; + } + + /// + /// 验证token并从中得到用户名 + /// + /// token设置 + /// 刷新token的模型,里面是token和refreshToken + public static string ValidateToken(TokenParameter tokenParameter, RefreshTokenDTO refresh) + { + //这儿是验证Token的代码 + var handler = new JwtSecurityTokenHandler(); + try + { + ClaimsPrincipal claim = handler.ValidateToken(refresh.Token, new TokenValidationParameters + { + ValidateIssuerSigningKey = true, + IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(tokenParameter.Secret)), + ValidateIssuer = false, + ValidateAudience = false, + ValidateLifetime = false, + }, out SecurityToken securityToken); + + return claim.Identity.Name; + + } + catch + { + return null; + } + } + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/WeatherForecast.cs b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/WeatherForecast.cs new file mode 100644 index 0000000..981eb93 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/WeatherForecast.cs @@ -0,0 +1,15 @@ +using System; + +namespace ElectronicMallProject.Backend.Api +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string Summary { get; set; } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.Development.json b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.Development.json new file mode 100644 index 0000000..8983e0f --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.json b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.json new file mode 100644 index 0000000..b3dd20f --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/appsettings.json @@ -0,0 +1,16 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*", + "tokenParameter": { + "secret": "123456123456123456", + "issuer": "WangPlus", + "accessExpiration": 120, + "refreshExpiration": 1440 + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/files/132738091215263822.jpg b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/files/132738091215263822.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1151a32bd6465fceb7a93e546d9eb79a8bca9edb GIT binary patch literal 23798 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 literal 0 HcmV?d00001 diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/files/132738277393262558.jpg b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/files/132738277393262558.jpg new file mode 100644 index 0000000000000000000000000000000000000000..828ab48fa7c699b67d7110d65ffc386b661745f4 GIT binary patch literal 67626 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

gC8ZM!|C%woFuRQL_nB*2e;}%H>_1atP_929 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 Smwxh(P5(Fn-~{&Xz5O3fldmQK literal 0 HcmV?d00001 diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/sale.http b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/sale.http new file mode 100644 index 0000000..df5e0d6 --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.Api/sale.http @@ -0,0 +1,93 @@ +### 获取销售表数据 +GET http://localhost:5000/sales HTTP/1.1 + +### 添加销售表数据 +POST http://localhost:5000/sales HTTP/1.1 +Content-Type: application/json + +{ + "SalesNumber":"123654qwe", + "Date":"2021-8-16", + "NumberOfSingleProductItems":1, + "TotalNumberOfObjects":1, + "SingleAmount":2021, + "TotalMoney":2021, + "PaymentMethod":"信用卡", + "UserId":3, + "CommodityId":1, + "LogisticsInformation":"湖北省武汉市", + "DeliveryTime":"2021-8-18", + "SalesStatus":"运输中", + "PaymentStatus":"已支付", + "PaymentAmount":2021, + "BuyerStatus":"已付款,待收货" +} + + +###修改销售表数据 +PUT http://localhost:5000/sales/1 HTTP/1.1 +Content-Type: application/json + +{ + "SalesNumber":"123654qwe", + "Date":"2021-8-16", + "NumberOfSingleProductItems":1, + "TotalNumberOfObjects":1, + "SingleAmount":2021, + "TotalMoney":2021, + "PaymentMethod":"支付宝", + "UserId":4, + "CommodityId":4, + "LogisticsInformation":"江西省南昌市", + "DeliveryTime":"2021-8-18", + "SalesStatus":"运输中", + "PaymentStatus":"已支付", + "PaymentAmount":2021, + "BuyerStatus":"已收货" +} + + +### 冻结销售表数据 +PUT http://localhost:5000/sales/4/freeze HTTP/1.1 + + +### 启用销售表数据 +PUT http://localhost:5000/sales/4/enable HTTP/1.1 + +### 获取地址表信息 +GET http://localhost:5000/address HTTP/1.1 + + +### 添加地址表数据 +POST http://localhost:5000/address HTTP/1.1 +Content-Type: application/json + +{ + "Province":"福建省", + "City":"龙岩市", + "District":"新罗区", + "Street":"曹溪街道", + "Detailedaddress":"闽大8号路", + "Number":"123456789", + "Addressee":"张三" +} + +### 修改地址表数据 +PUT http://localhost:5000/address/1 HTTP/1.1 +Content-Type: application/json + +{ + "Province":"福建省", + "City":"龙岩市", + "District":"新罗区", + "Street":"曹溪街道", + "Detailedaddress":"闽大8号路", + "Number":"123456789", + "Addressee":"李四" +} + +### 冻结 +PUT http://localhost:5000/address/1/freeze HTTP/1.1 + +###启用 +PUT http://localhost:5000/address/1/enable HTTP/1.1 \ No newline at end of file diff --git a/ElectronicMallProject.Backend/ElectronicMallProject.Backend.sln b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.sln new file mode 100644 index 0000000..ec0b50c --- /dev/null +++ b/ElectronicMallProject.Backend/ElectronicMallProject.Backend.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26124.0 +MinimumVisualStudioVersion = 15.0.26124.0 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElectronicMallProject.Backend.Api", "ElectronicMallProject.Backend.Api\ElectronicMallProject.Backend.Api.csproj", "{BC05879D-F43D-458C-BF9B-142C71B77A03}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Debug|x64.ActiveCfg = Debug|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Debug|x64.Build.0 = Debug|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Debug|x86.ActiveCfg = Debug|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Debug|x86.Build.0 = Debug|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Release|Any CPU.Build.0 = Release|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Release|x64.ActiveCfg = Release|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Release|x64.Build.0 = Release|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Release|x86.ActiveCfg = Release|Any CPU + {BC05879D-F43D-458C-BF9B-142C71B77A03}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/ElectronicMallProject.Backend/commodity.http b/ElectronicMallProject.Backend/commodity.http new file mode 100644 index 0000000..5595b41 --- /dev/null +++ b/ElectronicMallProject.Backend/commodity.http @@ -0,0 +1,214 @@ +### 查询所有商品 +GET http://localhost:5000/commodity HTTP/1.1 + + +### 通过用户Id查找购买该商品的用户还购买过的其它商品 +GET http://localhost:5000/sales/2 HTTP/1.1 + +### 添加商品 +POST http://localhost:5000/commodity/Addcommodity HTTP/1.1 +Content-Type: application/json + +{ + "commodityname":"vivo S10 Pro", + "commoditytype":"手机", + "commoditycurrentprice":2499, + "specificationsid":2, + "productdetails":"前置 4400 万柔光双摄,后置一亿像素", + "productstocks":188, + "imgid":5, + "supplierid":3, + "brandid":6, + "shoptypeid":2 +} + +### 卖出商品减库存 +PUT http://localhost:5000/commodity/1/reducestock HTTP/1.1 +Content-Type: application/json + +{ + "commodityname":"红米K40", + "productstocks":2 +} + +### 修改商品 +PUT http://localhost:5000/commodity/1/Updatecommodity HTTP/1.1 +Content-Type: application/json + +{ + "commodityname":"红米K40", + "commoditytype":"手机", + "commoditycurrentprice":2500, + "specificationsid":1, + "productdetails":"Redmi K40是Redmi旗下的一款智能手机,于2021年2月25日发布", + "productstocks":105, + "imgid":2, + "supplierid":1, + "brandid":1, + "shoptypeid":1 +} + +### 冻结商品 +PUT http://localhost:5000/commodity/1/frozencommodity HTTP/1.1 + +### 启用商品 +PUT http://localhost:5000/commodity/1/enablecommodity HTTP/1.1 + +### 查看商品表和图片 +GET http://localhost:5000/commodity/CommodityImgGet HTTP/1.1 + +### 查看商品所属分类 +GET http://localhost:5000/commodity/1 HTTP/1.1 + + + + + + +### 查询所有商品类型 +GET http://localhost:5000/shoptype/get HTTP/1.1 + +### 通过id查询商品类型 +GET http://localhost:5000/shoptype/1/Getshop HTTP/1.1 + +### 添加商品类型 +POST http://localhost:5000/shoptype/Addshop HTTP/1.1 +Content-Type: application/json + +{ + "shoptypename":"智能手机", + "superiorshoptypeid":1, + "measure":"台", + "shoptypeiconid":2, + "filterproperties":"手机", + "keyword":"智能手机照相机" +} + +### 修改商品类型 +PUT http://localhost:5000/shoptype/1/Updateshop HTTP/1.1 +Content-Type: application/json + +{ + "shoptypename":"数码产品", + "superiorshoptypeid":0, + "measure":"台", + "shoptypeiconid":1, + "filterproperties":"数码", + "keyword":"数码手机照相机" +} + + +### 冻结商品类型 +PUT http://localhost:5000/shoptype/1/Frozenshop HTTP/1.1 + +### 启用商品类型 +PUT http://localhost:5000/shoptype/1/Enableshop HTTP/1.1 + +### 通过商品id查询上一级和本级 +GET http://localhost:5000/shoptype/0 HTTP/1.1 + + + + + + + +### 获取供应商 +GET http://localhost:5000/supplier/get HTTP/1.1 + + +### 添加供应商 +POST http://localhost:5000/supplier/addspecifications HTTP/1.1 +Content-Type: application/json + +{ + "specificationsname":"小米" +} + + +### 修改供应商 +PUT http://localhost:5000/supplier/1/changespecifications HTTP/1.1 +Content-Type: application/json + +{ + "specificationsname":"小米伦敦" +} + + +### 冻结供应商 +PUT http://localhost:5000/supplier/1/frozenspecifications HTTP/1.1 + + +### 启用供应商 +PUT http://localhost:5000/supplier/1/enablespecifications HTTP/1.1 + + + + + + + +### 获取所有规格 +GET http://localhost:5000/specifications HTTP/1.1 + + +### 添加规格 +POST http://localhost:5000/specifications/Addspecifications HTTP/1.1 +Content-Type: application/json + +{ + "specificationsname":"8+128G", + "commodityid":1 +} + + +### 修改规格 +PUT http://localhost:5000/specifications/1/updatespecifications HTTP/1.1 +Content-Type: application/json + +{ + "specificationsname":"6+128G" +} + +### 冻结规格 +PUT http://localhost:5000/specifications/1/frozenspecifications HTTP/1.1 + + +### 启用规格 +PUT http://localhost:5000/specifications/1/enablespecifications HTTP/1.1 + + + + + + + +### 查询品牌 +GET http://localhost:5000/brand/BrandGet HTTP/1.1 + +### 添加品牌 +POST http://localhost:5000/brand/AddBrand HTTP/1.1 +Content-Type: application/json + +{ + "brandname":"vivo", + "logoimgid":4, + "coverimgid":3 +} + +### 修改品牌 +PUT http://localhost:5000/brand/1/updatebrand HTTP/1.1 +Content-Type: application/json + +{ + "brandname":"小米", + "logoimgid":2, + "coverimgid":3 +} + +### 冻结品牌 +PUT http://localhost:5000/brand/1/frozenbrand HTTP/1.1 + +### 启用品牌 +PUT http://localhost:5000/brand/1/enablebrand HTTP/1.1 + diff --git a/ElectronicMallProject.Backend/iloveyou.http b/ElectronicMallProject.Backend/iloveyou.http new file mode 100644 index 0000000..b1850fa --- /dev/null +++ b/ElectronicMallProject.Backend/iloveyou.http @@ -0,0 +1,101 @@ + +### 查询所有用户 +GET http://localhost:5000/users/get HTTP/1.1 + +### 获取管理员用户 +GET http://localhost:5000/users/getadmin HTTP/1.1 + +### 获取商家用户 +GET http://localhost:5000/users/getbusiness HTTP/1.1 + +### 获取用户 +GET http://localhost:5000/users/getusers HTTP/1.1 + +### 用户登录 +POST http://localhost:5000/users/userslogin HTTP/1.1 +Content-Type: application/json + +{ + "username":"admin", + "password":"113" +} + +### 注册用户 +POST http://localhost:5000/users/userregistry HTTP/1.1 +Content-Type: application/json + +{ + "username":"lx", + "password":"111", + "repassword":"111", + "userrole":"商家" +} + +### 修改用户密码 +PUT http://localhost:5000/users/3/changeusers HTTP/1.1 +Content-Type: application/json + +{ + "username":"奥力给", + "password":"111" +} + +### 分配用户角色 +PUT http://localhost:5000/users/3/distributionrole HTTP/1.1 +Content-Type: application/json + +{ + "userrole":"用户" +} + +### 冻结用户 +PUT http://localhost:5000/users/2/frozenusers HTTP/1.1 + +### 启用用户 +PUT http://localhost:5000/users/2/enableusers HTTP/1.1 + +### 刷新重新获取token +POST http://localhost:5000/users/userRefreshToken HTTP/1.1 +Content-Type: application/json + +{ + "token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoi5aWl5Yqb57uZIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiYWRtaW4iLCJleHAiOjE2Mjg4MzA5MTcsImlzcyI6IldhbmdQbHVzIn0.Y0G4iWNYr4Tv9O_sglzkSnbpCDK-WQ0TqNKYZV4AP5s", + "refreshtoken":"113" +} + +### 获取用户信息表 +GET http://localhost:5000/userinfo HTTP/1.1 + +### 添加用户信息 +POST http://localhost:5000/userinfo HTTP/1.1 +Content-Type: application/json + +{ + "UserId":1, + "ImgId":1, + "CardType":"居民身份证", + "CardNumber":"123456789", + "Sex":"男", + "phoneNumber":"111111111" +} + +### 修改用户信息 +PUT http://localhost:5000/userinfo/2 HTTP/1.1 +Content-Type: application/json + +{ + "UserId":1, + "ImgId":1, + "CardType":"居民身份证", + "CardNumber":"123456789", + "Sex":"男", + "phoneNumber":"33333333" +} + + +### 用户信息冻结 +PUT http://localhost:5000/userinfo/1/freeze HTTP/1.1 + + +### 用户信息启用 +PUT http://localhost:5000/userinfo/1/enable HTTP/1.1 diff --git a/ElectronicMallProject.Backend/picturefile.http b/ElectronicMallProject.Backend/picturefile.http new file mode 100644 index 0000000..04870e3 --- /dev/null +++ b/ElectronicMallProject.Backend/picturefile.http @@ -0,0 +1,10 @@ +### 图片上传 +POST http://localhost:5000/fileuploadprocessing/FileUpload HTTP/1.1 + + +### 查看图片 +GET http://localhost:5000/fileuploadprocessing/imgs HTTP/1.1 + + +### 轮播图 +GET http://localhost:5000/carousels/imgget HTTP/1.1 \ No newline at end of file diff --git a/ElectronicMallProject.Backend/shopping.http b/ElectronicMallProject.Backend/shopping.http new file mode 100644 index 0000000..d965e3a --- /dev/null +++ b/ElectronicMallProject.Backend/shopping.http @@ -0,0 +1,37 @@ +### 查询所有购物车 +GET http://localhost:5000/shoppingcart HTTP/1.1 + +### 通过用户Id查找该用户的购物车记录 +GET http://localhost:5000/shoppingcart/2/uid HTTP/1.1 + +###通过用户Id查找该用户的购物车记录同时获取商品表信息 +GET http://localhost:5000/shoppingcart/3 HTTP/1.1 + +### 通过用户Id查找该用户购物车记录同时获取商品表,类型表,品牌表 +GET http://localhost:5000/shoppingcart/2/getuserId HTTP/1.1 + +### 添加购物车 +POST http://localhost:5000/shoppingcart/Addshoppingcart HTTP/1.1 +Content-Type: application/json + +{ + "CommodityId":4, + "UserId":2 +} + +### 修改购物车 +PUT http://localhost:5000/shoppingcart/1/Updateshoppingcart HTTP/1.1 +Content-Type: application/json + +{ + "CommodityId":2, + "UserId":3 +} + +### 冻结购物车 +PUT http://localhost:5000/shoppingcart/1/frozenshoppingcart HTTP/1.1 + +### 启用购物车 +PUT http://localhost:5000/shoppingcart/1/enableshoppingcart HTTP/1.1 + + diff --git a/ElectronicMallProject.Frontend/.gitignore b/ElectronicMallProject.Frontend/.gitignore new file mode 100644 index 0000000..403adbc --- /dev/null +++ b/ElectronicMallProject.Frontend/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/ElectronicMallProject.Frontend/README.md b/ElectronicMallProject.Frontend/README.md new file mode 100644 index 0000000..64b4e7d --- /dev/null +++ b/ElectronicMallProject.Frontend/README.md @@ -0,0 +1,24 @@ +# vue-project + +## Project setup +``` +yarn install +``` + +### Compiles and hot-reloads for development +``` +yarn serve +``` + +### Compiles and minifies for production +``` +yarn build +``` + +### Lints and fixes files +``` +yarn lint +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/ElectronicMallProject.Frontend/babel.config.js b/ElectronicMallProject.Frontend/babel.config.js new file mode 100644 index 0000000..7ad2180 --- /dev/null +++ b/ElectronicMallProject.Frontend/babel.config.js @@ -0,0 +1,6 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ], + +} \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/package.json b/ElectronicMallProject.Frontend/package.json new file mode 100644 index 0000000..d6dd4d4 --- /dev/null +++ b/ElectronicMallProject.Frontend/package.json @@ -0,0 +1,48 @@ +{ + "name": "vue-project", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "axios": "^0.21.1", + "core-js": "^3.6.5", + "element-ui": "^2.15.5", + "jquery": "^3.6.0", + "vue": "^2.6.11", + "vue-amap": "^0.5.10", + "vue-piczoom": "^1.0.6", + "vue-router": "^3.5.2" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "babel-eslint": "^10.1.0", + "eslint": "^6.7.2", + "eslint-plugin-vue": "^6.2.2", + "vue-template-compiler": "^2.6.11" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead" + ] +} diff --git a/ElectronicMallProject.Frontend/public/favicon.ico b/ElectronicMallProject.Frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/ElectronicMallProject.Frontend/public/index.html b/ElectronicMallProject.Frontend/public/index.html new file mode 100644 index 0000000..28dd419 --- /dev/null +++ b/ElectronicMallProject.Frontend/public/index.html @@ -0,0 +1,19 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + +

+ + + diff --git a/ElectronicMallProject.Frontend/src/App.vue b/ElectronicMallProject.Frontend/src/App.vue new file mode 100644 index 0000000..d1bfe04 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/App.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/ElectronicMallProject.Frontend/src/Location/positionLocation.js b/ElectronicMallProject.Frontend/src/Location/positionLocation.js new file mode 100644 index 0000000..a065484 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/Location/positionLocation.js @@ -0,0 +1,31 @@ +// /** +// * 高德地图定位 +// * @type {{}} +// */ +import AMap from "vue-amap"; + + export const location = { + initMap(id) { + let mapObj = new AMap.Map(id, {}) + let geolocation; + mapObj.plugin(['AMap.Geolocation'], function() { + geolocation = new AMap.Geolocation({ + enableHighAccuracy: true, // 是否使用高精度定位,默认:true + timeout: 10000, // 超过10秒后停止定位,默认:无穷大 + maximumAge: 0, // 定位结果缓存0毫秒,默认:0 + convert: true, // 自动偏移坐标,偏移后的坐标为高德坐标,默认:true + showButton: true, // 显示定位按钮,默认:true + buttonPosition: 'LB', // 定位按钮停靠位置,默认:'LB',左下角 + buttonOffset: new AMap.Pixel(10, 20), // 定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) + showMarker: true, // 定位成功后在定位到的位置显示点标记,默认:true + showCircle: true, // 定位成功后用圆圈表示定位精度范围,默认:true + panToLocation: true, // 定位成功后将定位到的位置作为地图中心点,默认:true + zoomToAccuracy: true // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false + }) + mapObj.addControl(geolocation) + geolocation.getCurrentPosition() + }) + return geolocation; + } + } + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/api/Commodity.js b/ElectronicMallProject.Frontend/src/api/Commodity.js new file mode 100644 index 0000000..c5f29a7 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/api/Commodity.js @@ -0,0 +1,33 @@ +import res from "../utils/index"; + + +//获取商品表 +export function getCommodity() { + return res.get(`/commodity`); +} + +//获取订单表 +export function getSales() { + return res.get(`/sales`); +} + +//订单表和商品表连接查询 +export function getCommodityAndSales(id) { + return res.get(`/sales/${id}`) +} + +//购物车 +export function getShoppingCart() { + return res.get(`/shoppingcart`) +} + +//通过用户Id查找该用户购物车记录同时获取商品表,类型表,品牌表 +export function getShoppingCartRecordAndCommodityMsgByUserId(id){ + return res.get(`/shoppingcart/${id}/getuserId`) +} + +//查看商品表和图片 +export function getCommodityImg(data) +{ + return res.get(`/commodity/CommodityImgGet`,data) +} \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/api/LoginAndRegister.js b/ElectronicMallProject.Frontend/src/api/LoginAndRegister.js new file mode 100644 index 0000000..be7f620 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/api/LoginAndRegister.js @@ -0,0 +1,9 @@ +import res from "../utils/index"; + +export function Login(data){ + return res.post(`/users/userslogin`,data); +} + +export function Register(data){ + return res.post(`/users/userregistry`,data) +} \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/assets/logo.png b/ElectronicMallProject.Frontend/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 +
+ + + + + Footer + +
+ + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/SearchBar/SearchBar.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/SearchBar/SearchBar.vue new file mode 100644 index 0000000..0d7b11c --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/SearchBar/SearchBar.vue @@ -0,0 +1,232 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Slideshow/Slideshow.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Slideshow/Slideshow.vue new file mode 100644 index 0000000..1b44281 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Slideshow/Slideshow.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/TopBar/TopBar.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/TopBar/TopBar.vue new file mode 100644 index 0000000..a241969 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/TopBar/TopBar.vue @@ -0,0 +1,208 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Category.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Category.vue new file mode 100644 index 0000000..60050d0 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Category.vue @@ -0,0 +1,359 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/CommodityDetails.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/CommodityDetails.vue new file mode 100644 index 0000000..b9b4fb9 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/CommodityDetails.vue @@ -0,0 +1,369 @@ + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/GenerateOrderAndPay.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/GenerateOrderAndPay.vue new file mode 100644 index 0000000..4632a6a --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/GenerateOrderAndPay.vue @@ -0,0 +1,139 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/GuessLike.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/GuessLike.vue new file mode 100644 index 0000000..19fdd87 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/GuessLike.vue @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Home.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Home.vue new file mode 100644 index 0000000..e479d92 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Home.vue @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Login.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Login.vue new file mode 100644 index 0000000..e5565b1 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Login.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Recommend.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Recommend.vue new file mode 100644 index 0000000..772b862 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Recommend.vue @@ -0,0 +1,210 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Register.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Register.vue new file mode 100644 index 0000000..0b824f4 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/Register.vue @@ -0,0 +1,147 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/components/Frontpage/Views/ShoppingCart.vue b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/ShoppingCart.vue new file mode 100644 index 0000000..57aaab9 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/components/Frontpage/Views/ShoppingCart.vue @@ -0,0 +1,256 @@ + + + + + \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/imgs/6D Mark II(1).jpg b/ElectronicMallProject.Frontend/src/imgs/6D Mark II(1).jpg new file mode 100644 index 0000000000000000000000000000000000000000..704a5bbb52addccd4a5f0a611b74ee0efd29d82d GIT binary patch literal 13779 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 Dxb^P1 literal 0 HcmV?d00001 diff --git a/ElectronicMallProject.Frontend/src/imgs/6D Mark II(2).jpg b/ElectronicMallProject.Frontend/src/imgs/6D Mark II(2).jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce4bc8eaa2aacdb9acb5468201d980f7b8e14da0 GIT binary patch literal 142494 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

} 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 qYp@$3{P=jP2eg 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 Xf&Ayi{>BFK|6A+-MxQe5_w0WGT>X!@ literal 0 HcmV?d00001 diff --git a/ElectronicMallProject.Frontend/src/imgs/6D Mark II(3).jpg b/ElectronicMallProject.Frontend/src/imgs/6D Mark II(3).jpg new file mode 100644 index 0000000000000000000000000000000000000000..e2e343f89b20fe19ec6b696eb23231d03055c8b4 GIT binary patch literal 79481 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

t;Z5f?MF5B%cPnWbn%6#` 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ℑ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 literal 0 HcmV?d00001 diff --git a/ElectronicMallProject.Frontend/src/main.js b/ElectronicMallProject.Frontend/src/main.js new file mode 100644 index 0000000..34dc694 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/main.js @@ -0,0 +1,25 @@ +import Vue from 'vue' +import ElementUI from 'element-ui'; +import 'element-ui/lib/theme-chalk/index.css'; +import App from './App.vue' +import router from './router/index.js' +import { VueJsonp } from 'vue-jsonp' +// import VueAMap from "vue-amap"; + +// Vue.use(VueAMap); + +// VueAMap.initAMapApiLoader({ +// key: '7ab53b28352e55dc5754699add0ad862', +// plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor','AMap.Geolocation','Geocoder'],//plugin所要用到的模块功能,按需添加 +// v: '1.4.4',//高德 sdk 版本为 1.4.4 +// }); + + +Vue.config.productionTip = false +Vue.use(ElementUI); +Vue.use(VueJsonp); + +new Vue({ + render: h => h(App), + router +}).$mount('#app') diff --git a/ElectronicMallProject.Frontend/src/router/index.js b/ElectronicMallProject.Frontend/src/router/index.js new file mode 100644 index 0000000..bf126ac --- /dev/null +++ b/ElectronicMallProject.Frontend/src/router/index.js @@ -0,0 +1,33 @@ +import vue from 'vue'; +import vueRouter from 'vue-router'; +import routes from './routes.js'; +import { isLogin } from "../utils/auth" + +vue.use(vueRouter); + +let router = new vueRouter({ + mode: 'history', + routes +}) + +//用户判断登录跳转 +router.beforeEach((to, from, next) => { + let isAuth = isLogin(); + if (to.path == '/login' || to.path == '/register') { + if (isAuth) { + next('/'); + } else { + next(); + } + + } else if (to.path == '/ShoppingCart' || to.path == '/generateorderandpay') { + if (isAuth) { + next(); + } else { + next('/login'); + } + } else { + next(); + } +}) +export default router; \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/router/routes.js b/ElectronicMallProject.Frontend/src/router/routes.js new file mode 100644 index 0000000..e419a97 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/router/routes.js @@ -0,0 +1,54 @@ +import Layout from '../components/Frontpage/Layout.vue' + + +let routes = [ + { + name: "Layout", + title: "前台布局框架", + path: "/", + component: Layout, + children: [ + { + name: "Home", + title: "前台首页", + path: "home", + component: () => import('../components/Frontpage/Views/Home.vue') + } + ] + }, + { + title:"登陆", + component:()=>import("../components/Frontpage/Views/Login"), + path:"/login" + }, + { + title:"注册", + component:()=>import("../components/Frontpage/Views/Register"), + path:"/register" + }, + { + title:"生成订单和支付", + component:()=>import('../components/Frontpage/Views/GenerateOrderAndPay'), + path:"/generateorderandpay" + }, + { + title:"商品分类", + component:()=>import("../components/Frontpage/Views/Category"), + path:"/category" + }, + { + title:"商品详情", + component:()=>import("../components/Frontpage/Views/CommodityDetails"), + path:"/commoditydetails" + }, + { + title:"购物车", + component:()=>import("../components/Frontpage/Views/ShoppingCart"), + path:"/shoppingcart" + } +] + + + + +export default routes; \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/utils/auth.js b/ElectronicMallProject.Frontend/src/utils/auth.js new file mode 100644 index 0000000..e563385 --- /dev/null +++ b/ElectronicMallProject.Frontend/src/utils/auth.js @@ -0,0 +1,55 @@ +const TokenKey = 'token' +const RefreshTokenKey = 'refreshToken' +const UserIdKey = 'userId' +const UserNameKey = 'userName' +const UserRoleKey = "userRole" + +//获取token +export function getToken() { + return localStorage.getItem(TokenKey) || '' +} + +//获取refreshToken +export function getrefreshToken() { + return localStorage.getItem(RefreshTokenKey) || '' +} + +//保存用户ID +export function SetUserId(UserId) { + localStorage.setItem(UserIdKey, UserId) +} + +//保存用户名 +export function SetUserName(UserName) { + localStorage.setItem(UserNameKey, UserName) +} + +// 保存token和refreshToken +export function setToken(token, refreshToken) { + localStorage.setItem(TokenKey, token), + localStorage.setItem(RefreshTokenKey, refreshToken); +} +// 清除token,refreshToken,用户Id,用户名,用户角色 +export function clearToken(token, refreshToken, UserId, UserName,UserRole) { + localStorage.removeItem(TokenKey, token); + localStorage.removeItem(RefreshTokenKey, refreshToken); + localStorage.removeItem(UserIdKey, UserId); + localStorage.removeItem(UserNameKey, UserName); + localStorage.removeItem(UserRoleKey, UserRole) +} + +//保存用户角色 +export function SetUserRole(UserRole) { + localStorage.setItem(UserRoleKey, UserRole) +} + + +//判断是否登录 +export function isLogin() { + let token = getToken(); + if (token) { + return true + } else { + return false + } +} \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/src/utils/index.js b/ElectronicMallProject.Frontend/src/utils/index.js new file mode 100644 index 0000000..230a31a --- /dev/null +++ b/ElectronicMallProject.Frontend/src/utils/index.js @@ -0,0 +1,8 @@ +import axios from "axios"; + +const res = axios.create({ + baseURL: "http://localhost:5000", + timeout: 5000 +}) + +export default res; \ No newline at end of file diff --git a/ElectronicMallProject.Frontend/yarn.lock b/ElectronicMallProject.Frontend/yarn.lock new file mode 100644 index 0000000..f7d81e7 --- /dev/null +++ b/ElectronicMallProject.Frontend/yarn.lock @@ -0,0 +1,9113 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha1-I7CNdA6D9JxeWZRfvxtD6Au/Tts= + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha1-Lbr4uFM0eWyvuw9Xk6kKL8AQsXY= + +"@babel/core@^7.11.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/core/download/@babel/core-7.15.0.tgz?cache=0&sync_timestamp=1628111663424&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha1-dJ5Xxod4tzrYCCd1Vh9n9Rlqr6g= + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.15.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.15.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha1-p9DBcuDYFJdLrVqnes5UO5eRfxU= + dependencies: + "@babel/types" "^7.15.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.14.5.tgz?cache=0&sync_timestamp=1623280472380&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha1-e/R47Dtxcm1WqMpXdbBG/CmHnmE= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz?cache=0&sync_timestamp=1623280476175&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha1-uTm0P4w3dlRDoZrnStixWXjgoZE= + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0", "@babel/helper-compilation-targets@^7.9.6": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha1-lz34y9AlUV8/8l2wwF78cE+nmBg= + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.14.5": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" + integrity sha1-yaE3pNE3stDixkms9TbXuhp2wPc= + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-split-export-declaration" "^7.14.5" + +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.14.5.tgz?cache=0&sync_timestamp=1623280475652&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha1-x9WsXpz2IcJgV3Ivt6ikxYiTWMQ= + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.nlark.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.3.tgz?cache=0&sync_timestamp=1622025470416&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-define-polyfill-provider%2Fdownload%2F%40babel%2Fhelper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha1-BSXt7FCUZTooJojTTYRuTHXpwLY= + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.14.5.tgz?cache=0&sync_timestamp=1623280472634&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha1-iqcucIIFx7tkPkXHO0OGzfKh9kU= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha1-ieLEdJcvFdjiM7Uu6MSA4s/NUMQ= + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha1-Jfv6V5sJN+7h87gF7OTOOYxDGBU= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha1-4N0nwzp45XfXyIhJFqPn7x98f40= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha1-Ddr1KZyBefJ/NzJ5NlU+m7pgmQs= + dependencies: + "@babel/types" "^7.15.0" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.8.3": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha1-bRpE32o4yVeqfDEtoHZCnxG0IvM= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha1-Z5J1WB6gVjc+3b42DhQZ7yN4Owg= + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.9" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha1-8nOVqGGeBmWz8DZM3bQcJdcbSZw= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz?cache=0&sync_timestamp=1623280305577&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha1-WsgizpfuxGdBq3ClF5ceRDpwxak= + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha1-UUOckTYSlY9UqYek/8nuWHogRdY= + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha1-rOB3CPW/dGvy5rqZVyzOebXU5/Q= + dependencies: + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.nlark.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha1-guH+wGRKfndcdNMF8hLDn4/nOSQ= + dependencies: + "@babel/types" "^7.14.8" + +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.14.5.tgz?cache=0&sync_timestamp=1623280474980&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-skip-transparent-expression-wrappers%2Fdownload%2F%40babel%2Fhelper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha1-lvSGrAUMqfRLAJ++W305TKs6DuQ= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha1-IrI6VO9RwrdgXYUZMMGXbdC8aTo= + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha1-ZlTRcbICT22O4VG/JQlpmRkTHUg= + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz?cache=0&sync_timestamp=1623280323607&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha1-bnKh//GNXfy4eOHmLxoCHEty1aM= + +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha1-WRnRFb8P4yi4pdY7y2EPUWAfK/8= + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.14.8": + version "7.15.3" + resolved "https://registry.nlark.com/@babel/helpers/download/@babel/helpers-7.15.3.tgz?cache=0&sync_timestamp=1628666505556&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha1-yWg4t1K5Xc1SW050HtQLsdwqE1c= + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.5.tgz?cache=0&sync_timestamp=1623280306084&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk= + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.0": + version "7.15.3" + resolved "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha1-NBbZvqdIBSz8tj28wnNoEFse2GI= + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz?cache=0&sync_timestamp=1623280495759&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining%2Fdownload%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha1-S0ZzAuFUjtOxvkO+rizJz0Xgu34= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + +"@babel/plugin-proposal-async-generator-functions@^7.14.9": + version "7.14.9" + resolved "https://registry.nlark.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.14.9.tgz?cache=0&sync_timestamp=1627804497026&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" + integrity sha1-cCjcT6IdwZm7rPmLObqxJn0Or5o= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha1-QNHuFAxbHjGjUPT17tlFCWVZtC4= + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280496836&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-class-static-block%2Fdownload%2F%40babel%2Fplugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha1-FY6eENRJw4Se8+zelKA9nxhBtoE= + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@^7.8.3": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.14.5.tgz?cache=0&sync_timestamp=1623280416062&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" + integrity sha1-WbxN/B1mW1pnSc95j/Qil+0bLB0= + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-decorators" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.14.5.tgz?cache=0&sync_timestamp=1623280310895&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha1-DGYX30YcDB+P/ztHzVl3I2AQHSw= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.14.5.tgz?cache=0&sync_timestamp=1623280310999&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha1-260kQxDObM0IMHIWfYzqg6Uvr3Y= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.14.5.tgz?cache=0&sync_timestamp=1623280316882&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha1-ON5g2zYug6PYyUSshY3fnwwiOes= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.14.5.tgz?cache=0&sync_timestamp=1623280317167&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha1-bmIpwqmbAqspFfglceDMZGpAxzg= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha1-7jhYnOAOLMWbKZ7D6kBvzToP2vY= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.14.5.tgz?cache=0&sync_timestamp=1623280316386&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha1-g2Mb8z2aUd8YTCECoGmsDFjAXxg= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.nlark.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.14.7.tgz?cache=0&sync_timestamp=1624312719049&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha1-WSCis99/eQHfAgWXTAZBsT/Z02M= + dependencies: + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.14.5.tgz?cache=0&sync_timestamp=1623280317017&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha1-k53W7d7/Omf997PwRLU0cmJZjDw= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha1-+oNlHmCjYOPxN5fu8AuNUZaVtgM= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha1-N0RklZlrKUXzD1vltg1eKqT1eS0= + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.14.5.tgz?cache=0&sync_timestamp=1623280497552&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha1-n2Wk0Ek6lAtMAfiqnT8YlKWH9jY= + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha1-D5XuDnV6XWR/N42qDsp+k/qou+g= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-async-generators@^7.8.4": + 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-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.nlark.com/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA= + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280316342&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-class-static-block%2Fdownload%2F%40babel%2Fplugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha1-GV34mxRrS3izv4l/16JXyEZZ1AY= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.14.5.tgz?cache=0&sync_timestamp=1623280320906&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" + integrity sha1-6vucDL4JyK/rlkujp7vWOUWnLyA= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.nlark.com/@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-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha1-AolkqbqA28CUyRXEh618TnpmRlo= + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.3": + 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.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.14.5.tgz?cache=0&sync_timestamp=1623280326005&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha1-AA4uJdhnPM5JMAUXo+2kTCY+QgE= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.nlark.com/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha1-ypHvRjA1MESLkGZSusLp/plB9pk= + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + 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.10.4": + version "7.10.4" + resolved "https://registry.nlark.com/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c= + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + 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.3": + 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.3": + 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-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.14.5.tgz?cache=0&sync_timestamp=1623280492352&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280464364&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha1-9xh9lYinaN0IC/TJ/+EX6mL3hio= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha1-cseJCE2PIJSsuUVjOUPvhEPTnmc= + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280464619&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha1-5IZB2ZnUvBV6Z+8zautUvET9OtQ= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoping@^7.14.5": + version "7.15.3" + resolved "https://registry.nlark.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha1-lMgabi/CMLzObvU3rJah5NKzr68= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.14.9": + version "7.14.9" + resolved "https://registry.nlark.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.14.9.tgz?cache=0&sync_timestamp=1627804497093&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" + integrity sha1-Kjkf+x5SknELAPLiwhDhQ159RJ8= + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha1-G514mHQg0RIj1BGVRhzEO5dLIE8= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.nlark.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.14.7.tgz?cache=0&sync_timestamp=1624312716702&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha1-CtWO034j4iCE0QnxhSYINeVVdXY= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha1-L2v3bka9+AQ7Tn4WzyRTJim6DHo= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.14.5.tgz?cache=0&sync_timestamp=1623280465924&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha1-NlpIRIgb3xUB46nwJw5/D5EXeVQ= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha1-UVS43Wo9/m2Qkj1hckvT3uuQtJM= + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.14.5.tgz?cache=0&sync_timestamp=1623280465675&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha1-2uOEYT3o93wZaohpy/YCpE9/wOs= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha1-6Bxl7LkAdG1/MYAva+0fUtkV1vI= + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.14.5.tgz?cache=0&sync_timestamp=1623280466725&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha1-QdBsf/XU0J489Fh70+zzkwxzD3g= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha1-s5zVISor8jWmF9Mg7CtIvMCRuKc= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha1-T9nOfjQRy4uDhISAtwQdgwBIWPc= + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.15.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.15.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" + integrity sha1-MwWJblg1+VO1zbNjrNnowiGaUoE= + dependencies: + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha1-x1NC74sw3N5CldNAGq4k5lY47Sk= + dependencies: + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha1-+2Yt/uaXzOJ0p82lJRkKeQlqpuA= + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": + version "7.14.9" + resolved "https://registry.nlark.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.14.9.tgz?cache=0&sync_timestamp=1627804495986&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha1-xo9cXRLS66ujdi5XwsT2NHpG57I= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.14.5.tgz?cache=0&sync_timestamp=1623280467281&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha1-Mb2ui5JdyEB26/zSqZQBQ67X2/g= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha1-0LX66snphZehYanPeMUn7ZNM3EU= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + +"@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.14.5.tgz?cache=0&sync_timestamp=1623280468055&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha1-SWYuhqHz3cysY2On37H/ChWK/rM= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha1-DduqH4PbNgbxzfSEb6HftHNFizQ= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.14.5.tgz?cache=0&sync_timestamp=1623280308677&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha1-lnb9VwftKPUicnxbPAqoVERAsE8= + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.14.5.tgz?cache=0&sync_timestamp=1623280499137&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha1-xEWJtmHP2++NQwDcx0ad/6kvgwQ= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-runtime@^7.11.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" + integrity sha1-06plDRFnjKds4pQHH9pT14BBg7M= + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.14.5.tgz?cache=0&sync_timestamp=1623280470101&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha1-l/E4VfFAkzjYyty6ymcK154JGlg= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.nlark.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.14.6.tgz?cache=0&sync_timestamp=1623708310392&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha1-a9QOV/596UqpBIUZY7VhZlL3MUQ= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280470453&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha1-W2F1Qmdei3dhKUOB88KMYz9Arrk= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.14.5.tgz?cache=0&sync_timestamp=1623280470754&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha1-pfK8Izk32EU4hdxza92Nn/q/PZM= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.14.5.tgz?cache=0&sync_timestamp=1623280469570&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha1-Oa8nOemJor0pG/a1PxaYFCPUV9Q= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.14.5.tgz?cache=0&sync_timestamp=1623280498911&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha1-nUvSpoHjxdes9PV/qeURddkdDGs= + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha1-TNCbbIQl3YElXHzrP7GDbnQUOC4= + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.11.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/preset-env/download/@babel/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" + integrity sha1-4hZb8WWUycBeUlF6GUv2GH1v5GQ= + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.9" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.9" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.15.0" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.15.0" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz?cache=0&sync_timestamp=1598549925898&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha1-Ni8raMZihClw/bXiVP/I/BwuQV4= + 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.11.0", "@babel/runtime@^7.8.4": + version "7.15.3" + resolved "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha1-LhwogMoRjlsvmYgyK9inZWoyUCs= + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.0.0", "@babel/template@^7.14.5": + version "7.14.5" + resolved "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha1-qbydizM1T/blWpxg0RCSAKaJdPQ= + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0", "@babel/traverse@^7.7.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha1-TMqDj9GyoDKDwfOOFB9jnWCz/Jg= + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.15.0" + resolved "https://registry.nlark.com/@babel/types/download/@babel/types-7.15.0.tgz?cache=0&sync_timestamp=1628111608723&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha1-Ya8R8ihsTpxpyo3rX0N1pzxy3L0= + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.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=1603524710662&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.nlark.com/@hapi/bourne/download/@hapi/bourne-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.nlark.com/@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.nlark.com/@hapi/topo/download/@hapi/topo-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.nlark.com/@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" + +"@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.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs= + +"@soda/friendly-errors-webpack-plugin@^1.7.1": + version "1.8.0" + resolved "https://registry.nlark.com/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.8.0.tgz#84751d82a93019d5c92c0cf0e45ac59087cd2240" + integrity sha1-hHUdgqkwGdXJLAzw5FrFkIfNIkA= + dependencies: + chalk "^2.4.2" + error-stack-parser "^2.0.2" + string-width "^2.0.0" + strip-ansi "^5" + +"@soda/get-current-script@^1.0.0": + version "1.0.2" + resolved "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87" + integrity sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc= + +"@types/body-parser@*": + version "1.19.1" + resolved "https://registry.nlark.com/@types/body-parser/download/@types/body-parser-1.19.1.tgz?cache=0&sync_timestamp=1625595663636&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbody-parser%2Fdownload%2F%40types%2Fbody-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" + integrity sha1-DAF0xCp9AXuBgwPUtdlpywt1kpw= + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect-history-api-fallback@*": + version "1.3.5" + resolved "https://registry.nlark.com/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha1-0feooJ0O1aV67lrpwYq5uAMgXa4= + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.nlark.com/@types/connect/download/@types/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha1-X89q5EXkAh0fwiGaSHPMc6O7KtE= + dependencies: + "@types/node" "*" + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.24" + resolved "https://registry.nlark.com/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" + integrity sha1-6kH5O/fg1ZzVp2ZlBo7WqraBXAc= + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*": + version "4.17.13" + resolved "https://registry.nlark.com/@types/express/download/@types/express-4.17.13.tgz?cache=0&sync_timestamp=1625604604626&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha1-p24plXKJmbq1GjP6vOHXBaNwkDQ= + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.1": + version "7.1.4" + resolved "https://registry.nlark.com/@types/glob/download/@types/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" + integrity sha1-6lniHS7lxReRTLS8jkFTuZ5WZnI= + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/http-proxy@^1.17.5": + version "1.17.7" + resolved "https://registry.nlark.com/@types/http-proxy/download/@types/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha1-MOqFzCyGg2g1Kjfw0NNYHiSDTG8= + dependencies: + "@types/node" "*" + +"@types/json-schema@^7.0.5": + version "7.0.9" + resolved "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1627999424913&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha1-l+3JA36gw4WFMgsolk3eOznkZg0= + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.nlark.com/@types/mime/download/@types/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha1-k+Jb+e51/g/YC1lLxP6w6GIRG1o= + +"@types/minimatch@*": + version "3.0.5" + resolved "https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha1-EAHMXmo3BLg8I2An538vWOoBD0A= + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.nlark.com/@types/minimist/download/@types/minimist-1.2.2.tgz?cache=0&sync_timestamp=1625616247824&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fminimist%2Fdownload%2F%40types%2Fminimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha1-7nceK6Sz3Fs3KTXVSf2WF780W4w= + +"@types/node@*": + version "16.6.0" + resolved "https://registry.nlark.com/@types/node/download/@types/node-16.6.0.tgz?cache=0&sync_timestamp=1628719497956&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-16.6.0.tgz#0d5685f85066f94e97f19e8a67fe003c5fadacc4" + integrity sha1-DVaF+FBm+U6X8Z6KZ/4APF+trMQ= + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.nlark.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz?cache=0&sync_timestamp=1625675733240&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE= + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.nlark.com/@types/q/download/@types/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha1-daKo59irSyMEFFBdkjNdHctTpt8= + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.nlark.com/@types/qs/download/@types/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha1-Y7t9Bn2xB8weRXwwO8JdUR/r9ss= + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.nlark.com/@types/range-parser/download/@types/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha1-zWZ7z90CUhOq+3ylkVqTJZCs3Nw= + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.nlark.com/@types/serve-static/download/@types/serve-static-1.13.10.tgz?cache=0&sync_timestamp=1625590985769&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha1-9eDOh5fS18xevtpIpSyWxPpHqNk= + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.nlark.com/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk= + +"@types/tapable@^1": + version "1.0.8" + resolved "https://registry.nlark.com/@types/tapable/download/@types/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha1-uUpDkchWZse3Mpn9OtedT6pDUxA= + +"@types/uglify-js@*": + version "3.13.1" + resolved "https://registry.nlark.com/@types/uglify-js/download/@types/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" + integrity sha1-XoienoHpQkXHW2RQYA4cXqKHiuo= + dependencies: + source-map "^0.6.1" + +"@types/webpack-dev-server@^3.11.0": + version "3.11.5" + resolved "https://registry.nlark.com/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.5.tgz#f4a254a3dd0667c8ee4af90d42afdb4ad1d607f3" + integrity sha1-9KJUo90GZ8juSvkNQq/bStHWB/M= + dependencies: + "@types/connect-history-api-fallback" "*" + "@types/express" "*" + "@types/serve-static" "*" + "@types/webpack" "^4" + http-proxy-middleware "^1.0.0" + +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.nlark.com/@types/webpack-sources/download/@types/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha1-FtdZuglsKJA0smVT0t8b9FJI04s= + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4", "@types/webpack@^4.0.0": + version "4.41.30" + resolved "https://registry.nlark.com/@types/webpack/download/@types/webpack-4.41.30.tgz?cache=0&sync_timestamp=1625251159886&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" + integrity sha1-/T220NQeFFqO7q/NPEp8zekGjdw= + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@vue/babel-helper-vue-jsx-merge-props@^1.2.1": + version "1.2.1" + resolved "https://registry.nlark.com/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" + integrity sha1-MWJKelBfsU2h1YAjclpMXycOaoE= + +"@vue/babel-helper-vue-transform-on@^1.0.2": + version "1.0.2" + resolved "https://registry.nlark.com/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" + integrity sha1-m5xpHNBvyFUiGiR1w8yDHXdLx9w= + +"@vue/babel-plugin-jsx@^1.0.3": + version "1.0.6" + resolved "https://registry.nlark.com/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.6.tgz?cache=0&sync_timestamp=1619929844730&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fbabel-plugin-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-jsx-1.0.6.tgz#184bf3541ab6efdbe5079ab8b20c19e2af100bfb" + integrity sha1-GEvzVBq279vlB5q4sgwZ4q8QC/s= + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + "@vue/babel-helper-vue-transform-on" "^1.0.2" + camelcase "^6.0.0" + html-tags "^3.1.0" + svg-tags "^1.0.0" + +"@vue/babel-plugin-transform-vue-jsx@^1.2.1": + version "1.2.1" + resolved "https://registry.nlark.com/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7" + integrity sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc= + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" + html-tags "^2.0.0" + lodash.kebabcase "^4.1.1" + svg-tags "^1.0.0" + +"@vue/babel-preset-app@^4.5.13": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fbabel-preset-app%2Fdownload%2F%40vue%2Fbabel-preset-app-4.5.13.tgz#cb475321e4c73f7f110dac29a48c2a9cb80afeb6" + integrity sha1-y0dTIeTHP38RDawppIwqnLgK/rY= + dependencies: + "@babel/core" "^7.11.0" + "@babel/helper-compilation-targets" "^7.9.6" + "@babel/helper-module-imports" "^7.8.3" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-decorators" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.11.0" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.0" + "@vue/babel-plugin-jsx" "^1.0.3" + "@vue/babel-preset-jsx" "^1.2.4" + babel-plugin-dynamic-import-node "^2.3.3" + core-js "^3.6.5" + core-js-compat "^3.6.5" + semver "^6.1.0" + +"@vue/babel-preset-jsx@^1.2.4": + version "1.2.4" + resolved "https://registry.nlark.com/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87" + integrity sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc= + dependencies: + "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" + "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" + "@vue/babel-sugar-composition-api-inject-h" "^1.2.1" + "@vue/babel-sugar-composition-api-render-instance" "^1.2.4" + "@vue/babel-sugar-functional-vue" "^1.2.2" + "@vue/babel-sugar-inject-h" "^1.2.2" + "@vue/babel-sugar-v-model" "^1.2.3" + "@vue/babel-sugar-v-on" "^1.2.3" + +"@vue/babel-sugar-composition-api-inject-h@^1.2.1": + version "1.2.1" + resolved "https://registry.nlark.com/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb" + integrity sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-composition-api-render-instance@^1.2.4": + version "1.2.4" + resolved "https://registry.nlark.com/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19" + integrity sha1-5MvGmXw0T6wnF4WteikyXFHWjRk= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-functional-vue@^1.2.2": + version "1.2.2" + resolved "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929516892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658" + integrity sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-inject-h@^1.2.2": + version "1.2.2" + resolved "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929885089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa" + integrity sha1-1zjTyJM2fshJHcu2abAAkZKT46o= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-v-model@^1.2.3": + version "1.2.3" + resolved "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz?cache=0&sync_timestamp=1603184347642&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-model%2Fdownload%2F%40vue%2Fbabel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2" + integrity sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" + "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" + camelcase "^5.0.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +"@vue/babel-sugar-v-on@^1.2.3": + version "1.2.3" + resolved "https://registry.nlark.com/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada" + integrity sha1-NCNnF4WGpp85LwS/ujICHQKROto= + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" + camelcase "^5.0.0" + +"@vue/cli-overlay@^4.5.13": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/cli-overlay/download/@vue/cli-overlay-4.5.13.tgz?cache=0&sync_timestamp=1628579244198&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.5.13.tgz#4f1fd2161be8f69d6cba8079f3f0d7dc4dee47a7" + integrity sha1-Tx/SFhvo9p1suoB58/DX3E3uR6c= + +"@vue/cli-plugin-babel@~4.5.0": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.13.tgz?cache=0&sync_timestamp=1628579256313&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.13.tgz#a89c482edcc4ea1d135645cec502a7f5fd4c30e7" + integrity sha1-qJxILtzE6h0TVkXOxQKn9f1MMOc= + dependencies: + "@babel/core" "^7.11.0" + "@vue/babel-preset-app" "^4.5.13" + "@vue/cli-shared-utils" "^4.5.13" + babel-loader "^8.1.0" + cache-loader "^4.1.0" + thread-loader "^2.1.3" + webpack "^4.0.0" + +"@vue/cli-plugin-eslint@~4.5.0": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.5.13.tgz#8baf22d0d96d76720c7506646b96f4f62c05bdfa" + integrity sha1-i68i0NltdnIMdQZka5b09iwFvfo= + dependencies: + "@vue/cli-shared-utils" "^4.5.13" + 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.5.13": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.13.tgz?cache=0&sync_timestamp=1628579325890&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-plugin-router%2Fdownload%2F%40vue%2Fcli-plugin-router-4.5.13.tgz#0b67c8898a2bf132941919a2a2e5f3aacbd9ffbe" + integrity sha1-C2fIiYor8TKUGRmiouXzqsvZ/74= + dependencies: + "@vue/cli-shared-utils" "^4.5.13" + +"@vue/cli-plugin-vuex@^4.5.13": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.13.tgz#98646d8bc1e69cf6c6a6cba2fed3eace0356c360" + integrity sha1-mGRti8HmnPbGpsui/tPqzgNWw2A= + +"@vue/cli-service@~4.5.0": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/cli-service/download/@vue/cli-service-4.5.13.tgz?cache=0&sync_timestamp=1628579326809&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.13.tgz#a09e684a801684b6e24e5414ad30650970eec9ed" + integrity sha1-oJ5oSoAWhLbiTlQUrTBlCXDuye0= + dependencies: + "@intervolga/optimize-cssnano-plugin" "^1.0.5" + "@soda/friendly-errors-webpack-plugin" "^1.7.1" + "@soda/get-current-script" "^1.0.0" + "@types/minimist" "^1.2.0" + "@types/webpack" "^4.0.0" + "@types/webpack-dev-server" "^3.11.0" + "@vue/cli-overlay" "^4.5.13" + "@vue/cli-plugin-router" "^4.5.13" + "@vue/cli-plugin-vuex" "^4.5.13" + "@vue/cli-shared-utils" "^4.5.13" + "@vue/component-compiler-utils" "^3.1.2" + "@vue/preload-webpack-plugin" "^1.1.0" + "@vue/web-component-wrapper" "^1.2.0" + acorn "^7.4.0" + acorn-walk "^7.1.1" + address "^1.1.2" + autoprefixer "^9.8.6" + browserslist "^4.12.0" + cache-loader "^4.1.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + cli-highlight "^2.1.4" + clipboardy "^2.3.0" + cliui "^6.0.0" + copy-webpack-plugin "^5.1.1" + css-loader "^3.5.3" + cssnano "^4.1.10" + debug "^4.1.1" + 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.26" + postcss-loader "^3.0.0" + ssri "^8.0.1" + terser-webpack-plugin "^1.4.4" + thread-loader "^2.1.3" + url-loader "^2.2.0" + vue-loader "^15.9.2" + vue-style-loader "^4.1.2" + webpack "^4.0.0" + webpack-bundle-analyzer "^3.8.0" + webpack-chain "^6.4.0" + webpack-dev-server "^3.11.0" + webpack-merge "^4.2.2" + optionalDependencies: + vue-loader-v16 "npm:vue-loader@^16.1.0" + +"@vue/cli-shared-utils@^4.5.13": + version "4.5.13" + resolved "https://registry.nlark.com/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.13.tgz#acd40f31b4790f1634292bdaa5fca95dc1e0ff50" + integrity sha1-rNQPMbR5DxY0KSvapfypXcHg/1A= + 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" + semver "^6.1.0" + strip-ansi "^6.0.0" + +"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": + version "3.2.2" + resolved "https://registry.nlark.com/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.2.tgz?cache=0&sync_timestamp=1623744148967&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcomponent-compiler-utils%2Fdownload%2F%40vue%2Fcomponent-compiler-utils-3.2.2.tgz#2f7ed5feed82ff7f0284acc11d525ee7eff22460" + integrity sha1-L37V/u2C/38ChKzBHVJe5+/yJGA= + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^7.0.36" + postcss-selector-parser "^6.0.2" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + optionalDependencies: + prettier "^1.18.2" + +"@vue/preload-webpack-plugin@^1.1.0": + version "1.1.2" + resolved "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz?cache=0&sync_timestamp=1613215046917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" + integrity sha1-zrkktOyzucQ4ccekKaAvhCPmIas= + +"@vue/web-component-wrapper@^1.2.0": + version "1.3.0" + resolved "https://registry.nlark.com/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a" + integrity sha1-trQKdiVCnSvXwigd26YB7QXcfxo= + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1625473459015&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-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.nlark.com/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz?cache=0&sync_timestamp=1625473346773&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1625473344792&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@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.nlark.com/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg= + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.nlark.com/@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.nlark.com/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-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.nlark.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&sync_timestamp=1625473466570&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-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.nlark.com/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1625473342433&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha1-BNM7Y2945qaBMifoJAL3Y3tiKas= + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.nlark.com/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&sync_timestamp=1625473463093&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&sync_timestamp=1625473361759&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&sync_timestamp=1625473467198&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1625473464593&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&sync_timestamp=1625473373987&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-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.nlark.com/@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.nlark.com/@xtuc/long/download/@xtuc/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0= + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +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-jsx@^5.2.0: + version "5.3.2" + resolved "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha1-ftW7VZCLOy8bxVxq8WU7rafweTc= + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w= + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha1-NYZv1xBSjpLeEM8GAWSY5H454eY= + +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo= + +address@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz?cache=0&sync_timestamp=1593529661616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faddress%2Fdownload%2Faddress-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY= + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.nlark.com/ajv-errors/download/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0= + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha1-MfKdpatuANHC0yms97WSlhTVAU0= + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1626380134544&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ= + 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" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.nlark.com/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.nlark.com/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha1-46PaS/uubIapwoViXeEkojQCb78= + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.nlark.com/ansi-escapes/download/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4= + dependencies: + type-fest "^0.21.3" + +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.nlark.com/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.nlark.com/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.nlark.com/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.nlark.com/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.yarnpkg.com/ansi-styles/-/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.nlark.com/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.3.0" + resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha1-7dgDYornHATIWuegkG7a00tkiTc= + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.nlark.com/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha1-vLJLTzeTTZqnrBe0ra+J58du8us= + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha1-wFV8CWrzLxBhmPT04qODU343hxY= + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.nlark.com/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= + +arch@^2.1.1: + version "2.2.0" + resolved "https://registry.npm.taobao.org/arch/download/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE= + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +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=1598649397806&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.nlark.com/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.nlark.com/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.nlark.com/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/array-flatten/download/array-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#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk= + +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.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1620042121153&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-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= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha1-EamAuE67kXgc41sP3C7ilON4Pwc= + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.nlark.com/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.nlark.com/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.nlark.com/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.nlark.com/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-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= + +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@~1.8.1: + version "1.8.5" + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0" + integrity sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA== + dependencies: + babel-runtime "6.x" + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.nlark.com/async/download/async-2.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fasync%2Fdownload%2Fasync-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8= + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.nlark.com/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.8.6: + version "9.8.6" + resolved "https://registry.nlark.com/autoprefixer/download/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8= + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +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.11.0" + resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101230105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk= + +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1611946177416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-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.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" + integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== + +babel-loader@^8.1.0: + version "8.2.2" + resolved "https://registry.nlark.com/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1618847131046&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E= + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.nlark.com/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1618847040458&other_urls=https%3A%2F%2Fregistry.nlark.com%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-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622023848590&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha1-6RJHheb9lPlLYYp5VOVpMFO/Uyc= + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.nlark.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.2.4.tgz?cache=0&sync_timestamp=1627502231082&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha1-aMuBMWsOjZ1yGpLgAJ7G7NTNLKk= + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.nlark.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.2.tgz?cache=0&sync_timestamp=1622023850554&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha1-sxDI1kKsraNIwfo7Pmzg6FG+4Hc= + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + +babel-runtime@6.x: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.nlark.com/balanced-match/download/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4= + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&sync_timestamp=1605123700994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha1-GxtEAWClv3rUC2UPCVljSBkDkwo= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.nlark.com/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@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.nlark.com/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.nlark.com/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.nlark.com/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?cache=0&sync_timestamp=1610299268308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U= + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299268308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0= + +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" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= + dependencies: + inherits "~2.0.0" + +bluebird@^3.1.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.nlark.com/bluebird/download/bluebird-3.7.2.tgz?cache=0&sync_timestamp=1618847007562&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbluebird%2Fdownload%2Fbluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha1-d1s/J477uXGO7HNh9IP7Nvu/6og= + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI= + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc= + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.nlark.com/brorand/download/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.nlark.com/browserify-rsa/download/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0= + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz?cache=0&sync_timestamp=1596557839950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-sign%2Fdownload%2Fbrowserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM= + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +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.12.0, browserslist@^4.16.6, browserslist@^4.16.7: + version "4.16.7" + resolved "https://registry.nlark.com/browserslist/download/browserslist-4.16.7.tgz?cache=0&sync_timestamp=1627982452691&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.7.tgz#108b0d1ef33c4af1b587c54f390e7041178e4335" + integrity sha1-EIsNHvM8SvG1h8VPOQ5wQReOQzU= + dependencies: + caniuse-lite "^1.0.30001248" + colorette "^1.2.2" + electron-to-chromium "^1.3.793" + escalade "^3.1.1" + node-releases "^1.1.73" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.nlark.com/buffer-from/download/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U= + +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=1606098073225&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.nlark.com/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.nlark.com/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1621949655085&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcacache%2Fdownload%2Fcacache-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" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.nlark.com/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.nlark.com/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-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw= + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +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.nlark.com/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.nlark.com/callsites/download/callsites-2.0.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.nlark.com/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-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.nlark.com/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA= + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.nlark.com/camelcase/download/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.30001109, caniuse-lite@^1.0.30001248: + version "1.0.30001249" + resolved "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001249.tgz?cache=0&sync_timestamp=1628131934955&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001249.tgz#90a330057f8ff75bfe97a94d047d5e14fabb2ee8" + integrity sha1-kKMwBX+P91v+l6lNBH1eFPq7Lug= + +case-sensitive-paths-webpack-plugin@^2.3.0: + version "2.4.0" + resolved "https://registry.nlark.com/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha1-22QGbGQi7tLgjMFLmGykN5bbxtQ= + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.nlark.com/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/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.nlark.com/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@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha1-qsTit3NKdAhnrrFr8CqtVWoeegE= + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1601032467034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4= + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.nlark.com/check-types/download/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha1-M1bMoZyIlUTy16le1JzlCKDs9VI= + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.nlark.com/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" + +chokidar@^3.4.1: + version "3.5.2" + resolved "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha1-26OXb8rbAW9m/TZQIdkWANAcHnU= + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.nlark.com/chownr/download/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs= + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.nlark.com/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw= + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.nlark.com/ci-info/download/ci-info-1.6.0.tgz?cache=0&sync_timestamp=1622039942508&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fci-info%2Fdownload%2Fci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc= + +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" + +clean-css@4.2.x: + version "4.2.3" + resolved "https://registry.nlark.com/clean-css/download/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g= + dependencies: + source-map "~0.6.0" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.nlark.com/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.nlark.com/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.11" + resolved "https://registry.nlark.com/cli-highlight/download/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" + integrity sha1-SXNvpFLwqvT65YDjCssmgo0twb8= + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cli-spinners@^2.0.0: + version "2.6.0" + resolved "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.6.0.tgz?cache=0&sync_timestamp=1616091539101&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" + integrity sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk= + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha1-ovSEN6LKqaIkNueUvwceyeYc7fY= + +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@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-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#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE= + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08= + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ== + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.nlark.com/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +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.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/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.3: + version "1.9.3" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= + +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.nlark.com/color-string/download/color-string-1.6.0.tgz?cache=0&sync_timestamp=1626503501666&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor-string%2Fdownload%2Fcolor-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha1-w5FfYf4mdnLLfh4GTJ1pIhn2wxI= + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.nlark.com/color/download/color-3.2.1.tgz?cache=0&sync_timestamp=1628104117021&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor%2Fdownload%2Fcolor-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha1-NUTcGYyvRJDD7MmnkLVP6f9F4WQ= + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^1.2.1, colorette@^1.2.2: + version "1.3.0" + resolved "https://registry.nlark.com/colorette/download/colorette-1.3.0.tgz?cache=0&sync_timestamp=1628600199068&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolorette%2Fdownload%2Fcolorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha1-/0XS8O2yRAadO3cq3rBP7TjQoK8= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.nlark.com/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= + dependencies: + delayed-stream "~1.0.0" + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.nlark.com/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1627359190297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78= + +commander@^2.18.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.nlark.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1627359190297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.nlark.com/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1627359190297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So= + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.nlark.com/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +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= + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.npm.taobao.org/compressible/download/compressible-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.nlark.com/compression/download/compression-1.7.4.tgz?cache=0&sync_timestamp=1618847039874&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcompression%2Fdownload%2Fcompression-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" + +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= + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.nlark.com/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.nlark.com/constants-browserify/download/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.nlark.com/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.nlark.com/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= + +convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.8.0.tgz?cache=0&sync_timestamp=1624045451791&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k= + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.nlark.com/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.nlark.com/cookie/download/cookie-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-webpack-plugin@^5.1.1: + version "5.1.2" + resolved "https://registry.nlark.com/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz?cache=0&sync_timestamp=1624628458516&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2" + integrity sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI= + 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 "^4.0.0" + webpack-log "^2.0.0" + +core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.6.5: + version "3.16.1" + resolved "https://registry.nlark.com/core-js-compat/download/core-js-compat-3.16.1.tgz?cache=0&sync_timestamp=1628444156040&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.16.1.tgz#c44b7caa2dcb94b673a98f27eee1c8312f55bc2d" + integrity sha1-xEt8qi3LlLZzqY8n7uHIMS9VvC0= + dependencies: + browserslist "^4.16.7" + semver "7.0.0" + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.6.5: + version "3.16.1" + resolved "https://registry.nlark.com/core-js/download/core-js-3.16.1.tgz#f4485ce5c9f3c6a7cb18fa80488e08d362097249" + integrity sha1-9Ehc5cnzxqfLGPqASI4I02IJckk= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.nlark.com/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.nlark.com/cosmiconfig/download/cosmiconfig-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.4" + resolved "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz?cache=0&sync_timestamp=1596557810113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcreate-ecdh%2Fdownload%2Fcreate-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4= + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.nlark.com/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.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.nlark.com/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@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.nlark.com/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.nlark.com/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.3" + resolved "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY= + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +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.nlark.com/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.5.3: + version "3.6.0" + resolved "https://registry.nlark.com/css-loader/download/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU= + 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.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.nlark.com/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc= + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%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-select@^4.1.3: + version "4.1.3" + resolved "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha1-pwRA9wMX8maRGK10/xBeZYSccGc= + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.nlark.com/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.1.2: + version "1.1.3" + resolved "https://registry.nlark.com/css-tree/download/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha1-60hw+2/XcHMn7JXC/yqwm16NuR0= + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.nlark.com/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1622227658327&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ= + +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.nlark.com/css-what/download/css-what-5.0.1.tgz?cache=0&sync_timestamp=1622227658327&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha1-PvqCATH0ZpqKwkCPnDLnx96fTK0= + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/cssesc/download/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4= + +cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1623330501371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha1-kgYisfwelaNOiDggPxOXpQTy0/8= + 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.3" + 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.nlark.com/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.nlark.com/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.11" + resolved "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk= + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.nlark.com/csso/download/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha1-6jpWE0bo3J9UbW/r7dUBh884lSk= + dependencies: + css-tree "^1.1.2" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +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= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.nlark.com/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.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: + version "2.6.9" + resolved "https://registry.nlark.com/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1625374675284&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= + dependencies: + ms "2.0.0" + +debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.nlark.com/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1625374675284&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o= + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.2" + resolved "https://registry.nlark.com/debug/download/debug-4.3.2.tgz?cache=0&sync_timestamp=1625374675284&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdebug%2Fdownload%2Fdebug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha1-8KScGKyHeeMdSgxgKd+3aHPHQos= + dependencies: + ms "2.1.2" + +decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.nlark.com/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: + version "1.1.1" + resolved "https://registry.npm.taobao.org/deep-equal/download/deep-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.2.0, deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.nlark.com/deepmerge/download/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha1-EEmdhohEza1P7ghC34x/bwyVp1M= + +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&sync_timestamp=1610365857779&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&sync_timestamp=1610365857779&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.nlark.com/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" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1615984345486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-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= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +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-node@^2.0.4: + version "2.1.0" + resolved "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz?cache=0&sync_timestamp=1621146954463&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-node%2Fdownload%2Fdetect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha1-yccHdaScPQO8LAbZpzvlUPl4+LE= + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha1-40VQZYJKJQe6iGxVqJljuxB97G8= + 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@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE= + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + 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-serializer@0: + version "0.2.2" + resolved "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E= + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha1-YgZDfTLO767HFhgDIwx6ILwbTZE= + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.nlark.com/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1627591557212&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto= + +domelementtype@1: + version "1.3.1" + resolved "https://registry.nlark.com/domelementtype/download/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8= + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc= + +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/domhandler/download/domhandler-4.2.0.tgz?cache=0&sync_timestamp=1618563983578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha1-+XaKXwNL5gqJonwuTQ9066DYsFk= + dependencies: + domelementtype "^2.2.0" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.6.0: + version "2.7.0" + resolved "https://registry.nlark.com/domutils/download/domutils-2.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha1-jrrwxB66/PVbC3LsMcVjI3EsVEI= + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.nlark.com/dot-prop/download/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog= + 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.6.0" + resolved "https://registry.nlark.com/dotenv/download/dotenv-8.6.0.tgz?cache=0&sync_timestamp=1621633079842&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdotenv%2Fdownload%2Fdotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha1-Bhr2ZNGff02PxuT/m1hM4jety4s= + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.nlark.com/duplexer/download/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.nlark.com/duplexify/download/duplexify-3.7.1.tgz?cache=0&sync_timestamp=1626860645267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fduplexify%2Fdownload%2Fduplexify-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.1: + version "1.0.1" + resolved "https://registry.nlark.com/easy-stack/download/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066" + integrity sha1-iv5CZGJpiMq7EfPHBMzQyDVBEGY= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.nlark.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.nlark.com/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.nlark.com/ejs/download/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha1-SGYSh1c9zFPjZsehrlLDoSDuybo= + +electron-to-chromium@^1.3.793: + version "1.3.803" + resolved "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.803.tgz#78993a991d096500f21a77e91cd2a44295fe3cbe" + integrity sha1-eJk6mR0JZQDyGnfpHNKkQpX+PL4= + +element-ui@^2.15.5: + version "2.15.5" + resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.5.tgz#dfb376dc5cd60adab21c991bd4fac3e67e5300f4" + integrity sha512-B/YCdz2aRY2WnFXzbTRTHPKZHBD/2KV6u88EBnkaARC/Lyxnap+7vpvrcW5UNTyVwjItS5Fj1eQyRy6236lbXg== + dependencies: + async-validator "~1.8.1" + babel-helper-vue-jsx-merge-props "^2.0.0" + deepmerge "^1.2.0" + normalize-wheel "^1.0.1" + resize-observer-polyfill "^1.5.0" + throttle-debounce "^1.0.1" + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.nlark.com/elliptic/download/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s= + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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= + +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.5.0: + version "4.5.0" + resolved "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz?cache=0&sync_timestamp=1620663202047&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.nlark.com/entities/download/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU= + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8= + 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.2: + version "2.0.6" + resolved "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha1-WpmnB716TFinl5AtSNgoA+3mqtg= + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.5" + resolved "https://registry.nlark.com/es-abstract/download/es-abstract-1.18.5.tgz?cache=0&sync_timestamp=1627880507290&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha1-mxDefUwgajWB/VshJCM+BNtJrhk= + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.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" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.nlark.com/escalade/download/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA= + +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= + +eslint-loader@^2.2.1: + version "2.2.1" + resolved "https://registry.nlark.com/eslint-loader/download/eslint-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-plugin-vue@^6.2.2: + version "6.2.2" + resolved "https://registry.nlark.com/eslint-plugin-vue/download/eslint-plugin-vue-6.2.2.tgz?cache=0&sync_timestamp=1628592324950&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe" + integrity sha1-J/7NmjokeJsPER7N1UCp5WGY4P4= + dependencies: + natural-compare "^1.4.0" + semver "^5.6.0" + vue-eslint-parser "^7.0.0" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.nlark.com/eslint-scope/download/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha1-ygODMxD2iJoyZHgaqC5j65z+eEg= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.nlark.com/eslint-scope/download/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw= + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.nlark.com/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.3.0" + resolved "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha1-MOvR73wv3/AcOk8VEESvJfqwUj4= + +eslint@^6.7.2: + version "6.8.0" + resolved "https://registry.nlark.com/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1627685236231&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s= + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2, espree@^6.2.1: + version "6.2.1" + resolved "https://registry.nlark.com/espree/download/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o= + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.nlark.com/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= + +esquery@^1.0.1, esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha1-IUj/w4uC6McFff7UhCWz5h8PJKU= + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha1-eteWTWeauyi+5yzsY3WLHF0smSE= + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.nlark.com/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.nlark.com/estraverse/download/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha1-MH30JUfmzHMk088DwVXVzbjFOIA= + +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.nlark.com/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.nlark.com/event-pubsub/download/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" + integrity sha1-9o2Ba8KfHsAsU53FjI3UDOcss24= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&sync_timestamp=1598517819668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8= + +events@^3.0.0: + version "3.3.0" + resolved "https://registry.nlark.com/events/download/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA= + +eventsource@^1.0.7: + version "1.1.0" + resolved "https://registry.nlark.com/eventsource/download/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68= + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.nlark.com/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI= + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.nlark.com/execa/download/execa-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.nlark.com/execa/download/execa-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.nlark.com/execa/download/execa-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" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.nlark.com/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" + +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&sync_timestamp=1596722127254&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.nlark.com/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.nlark.com/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: + version "3.0.2" + resolved "https://registry.nlark.com/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.nlark.com/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" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.nlark.com/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.nlark.com/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU= + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.nlark.com/fast-glob/download/fast-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.0.0: + version "2.1.0" + resolved "https://registry.nlark.com/fast-json-stable-stringify/download/fast-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?cache=0&sync_timestamp=1605292839055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz?cache=0&sync_timestamp=1621894983961&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo= + dependencies: + websocket-driver ">=0.5.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.nlark.com/figgy-pudding/download/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4= + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.nlark.com/figures/download/figures-3.2.0.tgz?cache=0&sync_timestamp=1625254307578&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/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.nlark.com/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.nlark.com/filesize/download/filesize-3.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc= + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.nlark.com/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" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.nlark.com/fill-range/download/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha1-GRmmp8df44ssfHflGYU12prN2kA= + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.nlark.com/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-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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@^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: + 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.nlark.com/flatted/download/flatted-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" + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.14.1" + resolved "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.1.tgz?cache=0&sync_timestamp=1620555300559&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha1-2RFN7Qoc/dM04WTmZirQK/2R/0M= + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.nlark.com/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.nlark.com/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.2.0: + version "0.2.0" + resolved "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.nlark.com/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.nlark.com/fresh/download/fresh-0.5.2.tgz?cache=0&sync_timestamp=1618847131116&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.nlark.com/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.nlark.com/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-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.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.nlark.com/fsevents/download/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg= + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.nlark.com/fsevents/download/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro= + +fstream@^1.0.0, fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.nlark.com/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= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.nlark.com/gensync/download/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA= + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.nlark.com/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34= + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y= + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.nlark.com/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.2.0" + resolved "https://registry.nlark.com/get-stream/download/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha1-SWaheV7lrOZecGxLe+txJX1uItM= + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.nlark.com/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.nlark.com/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz?cache=0&sync_timestamp=1626760200164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1626760200164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ= + dependencies: + is-glob "^4.0.1" + +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.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: + version "7.1.7" + resolved "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&sync_timestamp=1620337382269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha1-Oxk+kjPwHULQs/eClLvutBj5SpA= + 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: + version "11.12.0" + resolved "https://registry.nlark.com/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1625655787416&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4= + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.nlark.com/globals/download/globals-12.4.0.tgz?cache=0&sync_timestamp=1625655787416&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg= + dependencies: + type-fest "^0.8.1" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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" + +globule@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.2.8" + resolved "https://registry.nlark.com/graceful-fs/download/graceful-fs-4.2.8.tgz?cache=0&sync_timestamp=1628194078324&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo= + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.nlark.com/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.nlark.com/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.5" + resolved "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha1-HwgDufjLIMD6E4It8ezds2veHv0= + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz?cache=0&sync_timestamp=1615461293395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-bigints%2Fdownload%2Fhas-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.nlark.com/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM= + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz?cache=0&sync_timestamp=1628196402801&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-tostringtag%2Fdownload%2Fhas-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU= + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.nlark.com/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.nlark.com/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: + version "1.0.3" + resolved "https://registry.nlark.com/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.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I= + 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@^10.7.1: + version "10.7.3" + resolved "https://registry.nlark.com/highlight.js/download/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha1-aXJy45kTVuQMPKxWanTu9oF1ZTE= + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/hmac-drbg/download/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.9" + resolved "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k= + +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-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.nlark.com/html-entities/download/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha1-z70bAdKvr5rcobEK59/6uYxx0tw= + +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-tags@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha1-e15vfmZen7QfMAB+2eDUHpf7IUA= + +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.nlark.com/html-webpack-plugin/download/html-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@^6.1.0: + version "6.1.0" + resolved "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1617916210217&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha1-xNditsM3GgXb5l6UrkOp+EX7j7c= + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.5.1: + version "0.5.3" + resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz?cache=0&sync_timestamp=1609542336109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k= + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.nlark.com/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-middleware@^1.0.0: + version "1.3.1" + resolved "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" + integrity sha1-Q3ANbZ7st0Gb8IahKND3IF2etmU= + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.17.0, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk= + 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?cache=0&sync_timestamp=1600868441269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-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.nlark.com/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.nlark.com/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1624364695595&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha1-xbHNFPUK6uCatsWf5jujOV/k36M= + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.nlark.com/iconv-lite/download/iconv-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.nlark.com/icss-utils/download/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc= + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.nlark.com/ieee754/download/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I= + +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.nlark.com/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.nlark.com/ignore/download/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.nlark.com/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?cache=0&sync_timestamp=1608469472392&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-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.3.0" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469472392&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs= + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +in-publish@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" + integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +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: + 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.nlark.com/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.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.nlark.com/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inquirer@^7.0.0, inquirer@^7.1.0: + version "7.3.3" + resolved "https://registry.nlark.com/inquirer/download/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM= + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.nlark.com/internal-ip/download/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc= + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha1-c0fjB97uovqsKsYgXUvH00ln9Zw= + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.1.1" + resolved "https://registry.nlark.com/is-arguments/download/is-arguments-1.1.1.tgz?cache=0&sync_timestamp=1628201919104&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha1-FbP4j9oB8ql/7ITKdhpWDxI++ps= + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +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-bigint@^1.0.1: + version "1.0.3" + resolved "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-bigint%2Fdownload%2Fis-bigint-1.0.3.tgz#fc9d9e364210480675653ddaea0518528d49a581" + integrity sha1-/J2eNkIQSAZ1ZT3a6gUYUo1JpYE= + +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-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk= + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-boolean-object%2Fdownload%2Fis-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk= + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604432378894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha1-76ouqdqg16suoTqXsritUf776L4= + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.4" + resolved "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU= + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz?cache=0&sync_timestamp=1613631987391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-ci%2Fdownload%2Fis-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw= + dependencies: + ci-info "^1.5.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-core-module@^2.2.0: + version "2.5.0" + resolved "https://registry.nlark.com/is-core-module/download/is-core-module-2.5.0.tgz?cache=0&sync_timestamp=1626158736739&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-core-module%2Fdownload%2Fis-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" + integrity sha1-91SENhfHC/0pt72HMnQAzaXBhJE= + dependencies: + has "^1.0.3" + +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.5" + resolved "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8= + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.nlark.com/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.nlark.com/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.2.1" + resolved "https://registry.npm.taobao.org/is-docker/download/is-docker-2.2.1.tgz?cache=0&sync_timestamp=1617958843085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-docker%2Fdownload%2Fis-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/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?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-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?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0= + +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, 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-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.nlark.com/is-negative-zero/download/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ= + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha1-anqvg4x/BoalC0VT9+VKlklOifA= + dependencies: + has-tostringtag "^1.0.0" + +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-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz?cache=0&sync_timestamp=1618600242427&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI= + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1628686507859&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-cwd%2Fdownload%2Fis-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.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1620047156679&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-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.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-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-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha1-r28uoUrFpkYYOlu9tbqrvBVq2dc= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.nlark.com/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.1.3: + version "1.1.4" + resolved "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz?cache=0&sync_timestamp=1628221853554&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg= + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.nlark.com/is-resolvable/download/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.nlark.com/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha1-+sHj1TuXrVqdCunO8jifWBClwHc= + +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0= + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501266511&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha1-ptrJO2NbBjymhyI23oiRClevE5w= + dependencies: + has-symbols "^1.0.2" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.nlark.com/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= + +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= + +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= + +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= + +javascript-stringify@^2.0.1: + version "2.1.0" + resolved "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.1.0.tgz?cache=0&sync_timestamp=1618360134745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" + integrity sha1-J8dlOb4U2L0Sghmi1zGwkzeQTnk= + +jquery@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" + integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== + +js-base64@^2.1.8: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +js-message@1.0.7: + version "1.0.7" + resolved "https://registry.nlark.com/js-message/download/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47" + integrity sha1-+93QU8ekcCGHG7iyyVOXzBfCDkc= + +js-queue@2.0.2: + version "2.0.2" + resolved "https://registry.nlark.com/js-queue/download/js-queue-2.0.2.tgz#0be590338f903b36c73d33c31883a821412cd482" + integrity sha1-C+WQM4+QOzbHPTPDGIOoIUEs1II= + dependencies: + easy-stack "^1.0.1" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1619345098261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.nlark.com/js-yaml/download/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc= + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.nlark.com/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891161295&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-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?cache=0&sync_timestamp=1603891161295&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-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-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0= + +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.nlark.com/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.nlark.com/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.nlark.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.3: + version "3.3.3" + resolved "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E= + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1612146079519&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=1612146079519&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" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz?cache=0&sync_timestamp=1612146079519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM= + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161844511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/kind-of/download/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= + +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" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.nlark.com/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@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.3" + resolved "https://registry.nlark.com/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@^0.2.16: + version "0.2.17" + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-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.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#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha1-xXm140yzSxp07cbB+za/o3HVphM= + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha1-5MrOW4FtQloWa18JfhDNErNgZLA= + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.nlark.com/locate-path/download/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha1-Gvujlq/WdqbUJQTQpno6frn2KqA= + dependencies: + p-locate "^4.1.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.nlark.com/lodash.debounce/download/lodash.debounce-4.0.8.tgz?cache=0&sync_timestamp=1618847031591&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash.debounce%2Fdownload%2Flodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +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.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.nlark.com/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.nlark.com/lodash.memoize/download/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.nlark.com/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.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@~4.17.10: + version "4.17.21" + resolved "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1624543041613&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw= + +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=1618723146520&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.8: + version "1.7.1" + resolved "https://registry.nlark.com/loglevel/download/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc= + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.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?cache=0&sync_timestamp=1606867292121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^4.0.1, lru-cache@^4.1.2: + version "4.1.5" + resolved "https://registry.nlark.com/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.nlark.com/lru-cache/download/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA= + dependencies: + yallist "^3.0.2" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU= + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8= + dependencies: + semver "^6.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.nlark.com/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +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" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA= + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs= + +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= + +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" + +meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.nlark.com/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.nlark.com/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.4.1" + resolved "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4= + +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?cache=0&sync_timestamp=1618054787196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-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" + +micromatch@^4.0.2: + version "4.0.4" + resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054787196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k= + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +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.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.nlark.com/mime-db/download/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha1-89/eYMmenPO8lwHWh3ePU3ABy+0= + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.nlark.com/mime-types/download/mime-types-2.1.32.tgz?cache=0&sync_timestamp=1627407819001&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha1-HQDonn3n/gIAjbYQAdngKFJnD9U= + dependencies: + mime-db "1.49.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.nlark.com/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= + +mime@^2.4.4: + version "2.5.2" + resolved "https://registry.nlark.com/mime/download/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4= + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.nlark.com/mimic-fn/download/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI= + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.nlark.com/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.nlark.com/mini-css-extract-plugin/download/mini-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.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc= + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.nlark.com/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4, minimatch@~3.0.2: + 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.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.nlark.com/minimist/download/minimist-1.2.5.tgz?cache=0&sync_timestamp=1618847003091&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= + +minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha1-fUL/HzljVILhX5zbUxhN7r1YFf0= + dependencies: + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.nlark.com/mixin-deep/download/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY= + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.nlark.com/mkdirp/download/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= + dependencies: + minimist "^1.2.5" + +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?cache=0&sync_timestamp=1607433872491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-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?cache=0&sync_timestamp=1607433872491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433872491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433872491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha1-V0yBOM4dK1hh8LRFedut1gxmFbI= + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.nlark.com/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.nlark.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1621890310673&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha1-oOx72QVcQoL3kMPIL04o2zsxsik= + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.nlark.com/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, nan@^2.13.2: + version "2.15.0" + resolved "https://registry.nlark.com/nan/download/nan-2.15.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnan%2Fdownload%2Fnan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4= + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.nlark.com/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.nlark.com/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.2" + resolved "https://registry.nlark.com/neo-async/download/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha1-tKr7k+OustgXTKU88WOrfXMIMF8= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.nlark.com/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.nlark.com/no-case/download/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw= + dependencies: + lower-case "^1.1.1" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010719234&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M= + +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-ipc@^9.1.1: + version "9.2.1" + resolved "https://registry.nlark.com/node-ipc/download/node-ipc-9.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-ipc%2Fdownload%2Fnode-ipc-9.2.1.tgz#b32f66115f9d6ce841dc4ec2009d6a733f98bb6b" + integrity sha1-sy9mEV+dbOhB3E7CAJ1qcz+Yu2s= + dependencies: + event-pubsub "4.3.0" + js-message "1.0.7" + js-queue "2.0.2" + +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-releases@^1.1.73: + version "1.1.74" + resolved "https://registry.nlark.com/node-releases/download/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e" + integrity sha1-5YZkiAgOuqcKk7kRRMzeBvPDRj4= + +node-sass@^4.7.2: + version "4.14.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash "^4.17.15" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.13.2" + node-gyp "^3.8.0" + npmlog "^4.0.0" + request "^2.88.0" + sass-graph "2.2.5" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1628689122508&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-url%2Fdownload%2Fnormalize-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.nlark.com/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1628689122508&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= + +normalize-wheel@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45" + integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU= + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.nlark.com/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.nlark.com/npm-run-path/download/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha1-t+zR5e1T2o43pV4cImnguX7XSOo= + dependencies: + path-key "^3.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1606860664533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw= + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/nth-check/download/nth-check-2.0.0.tgz?cache=0&sync_timestamp=1606860664533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha1-G7T22scAcvwxPoyc0UF7UHTAoSU= + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.nlark.com/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.nlark.com/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.nlark.com/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.nlark.com/object-hash/download/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8= + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz?cache=0&sync_timestamp=1626120241132&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha1-nc6xRs7dQUig2eUauI00z1CZIrE= + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.nlark.com/object-is/download/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha1-ud7qpfx/GEag+uzc7sE45XePU6w= + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.nlark.com/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.nlark.com/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA= + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.2" + resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.2.tgz?cache=0&sync_timestamp=1613860098805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha1-G9Y66s8NXS0vMbXjk7A6fGAaI/c= + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +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.4" + resolved "https://registry.nlark.com/object.values/download/object.values-1.1.4.tgz?cache=0&sync_timestamp=1622070620040&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject.values%2Fdownload%2Fobject.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA= + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +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= + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.2" + resolved "https://registry.nlark.com/onetime/download/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4= + dependencies: + mimic-fn "^2.1.0" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.nlark.com/open/download/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk= + dependencies: + is-wsl "^1.1.0" + +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha1-XTfh81B3udysQwE3InGv3rKhNZg= + +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.3: + version "0.8.3" + resolved "https://registry.npm.taobao.org/optionator/download/optionator-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.nlark.com/ora/download/ora-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.nlark.com/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.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +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: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^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?cache=0&sync_timestamp=1617947695861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-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?cache=0&sync_timestamp=1617947695861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE= + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: + version "2.3.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288352885&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@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/p-map/download/p-map-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha1-MQko/u+cnsxltosXaTAYpmXOoXU= + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.nlark.com/p-retry/download/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha1-MWtMiJPiyNwc+okfQGxLQivr8yg= + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.nlark.com/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.nlark.com/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1627560213493&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/param-case/download/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +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, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.nlark.com/parse-asn1/download/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ= + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.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.yarnpkg.com/parse-json/-/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.nlark.com/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.2.0" + resolved "https://registry.nlark.com/parse-json/download/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80= + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.nlark.com/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY= + dependencies: + parse5 "^6.0.1" + +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= + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.npm.taobao.org/parse5/download/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws= + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/path-key/download/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U= + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU= + +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?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/path-type/download/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha1-zvMdyOCho7sNEFwM2Xzzv0f0428= + dependencies: + pify "^3.0.0" + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.nlark.com/pbkdf2/download/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU= + 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.nlark.com/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI= + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.nlark.com/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/pify/download/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.nlark.com/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.nlark.com/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/pkg-dir/download/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.nlark.com/pkg-dir/download/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM= + dependencies: + find-up "^4.0.0" + +pnp-webpack-plugin@^1.6.4: + version "1.7.0" + resolved "https://registry.nlark.com/pnp-webpack-plugin/download/pnp-webpack-plugin-1.7.0.tgz?cache=0&sync_timestamp=1626888209947&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" + integrity sha1-ZXQThPbYBW824iVajWf/wghm9ck= + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.nlark.com/portfinder/download/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g= + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.nlark.com/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.5" + resolved "https://registry.nlark.com/postcss-calc/download/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4= + 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.nlark.com/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.nlark.com/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1621449824395&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-convert-values%2Fdownload%2Fpostcss-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.nlark.com/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1621449558287&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-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.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1621449593093&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-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.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz?cache=0&sync_timestamp=1621449824027&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-empty%2Fdownload%2Fpostcss-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.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz?cache=0&sync_timestamp=1621449823348&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-overridden%2Fdownload%2Fpostcss-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.2" + resolved "https://registry.nlark.com/postcss-load-config/download/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha1-xepQTyxK7zPHNZo03jVzdyrXUCo= + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/postcss-loader/download/postcss-loader-3.0.0.tgz?cache=0&sync_timestamp=1625143020485&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-loader%2Fdownload%2Fpostcss-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.nlark.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1621449602119&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-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.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1622234641993&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-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.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1621449825247&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-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.nlark.com/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1621449598992&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-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.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz?cache=0&sync_timestamp=1621449735393&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-params%2Fdownload%2Fpostcss-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.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1621449558355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-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?cache=0&sync_timestamp=1602588202058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-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.3" + resolved "https://registry.nlark.com/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A= + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.nlark.com/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?cache=0&sync_timestamp=1602586308035&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-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.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1621449593655&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-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.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1621449599414&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-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.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1621449883143&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-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.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1621449596114&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-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.nlark.com/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1621449595099&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-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.nlark.com/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.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz?cache=0&sync_timestamp=1621449881819&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-unicode%2Fdownload%2Fpostcss-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.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz?cache=0&sync_timestamp=1623330505231&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-url%2Fdownload%2Fpostcss-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.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1621449646853&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-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.nlark.com/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1623330460500&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-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.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1621449599206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-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.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&sync_timestamp=1621449601106&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-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.nlark.com/postcss-selector-parser/download/postcss-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.6" + resolved "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo= + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.nlark.com/postcss-svgo/download/postcss-svgo-4.0.3.tgz?cache=0&sync_timestamp=1622234649078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4= + dependencies: + 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.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz?cache=0&sync_timestamp=1621449730035&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-unique-selectors%2Fdownload%2Fpostcss-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.nlark.com/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1618847024602&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE= + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.nlark.com/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1618847024602&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-value-parser%2Fdownload%2Fpostcss-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.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.36" + resolved "https://registry.nlark.com/postcss/download/postcss-7.0.36.tgz?cache=0&sync_timestamp=1626882960231&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha1-BW+M/6k5ZiqPWQWVDAfVKFZE38s= + 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.nlark.com/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.nlark.com/prepend-http/download/prepend-http-1.0.4.tgz?cache=0&sync_timestamp=1628547439455&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprepend-http%2Fdownload%2Fprepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prettier@^1.18.2: + version "1.19.1" + resolved "https://registry.nlark.com/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1624696193562&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha1-99f1/4qc2HKnvkyhQglZVqYHl8s= + +pretty-error@^2.0.2: + version "2.1.2" + resolved "https://registry.nlark.com/pretty-error/download/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y= + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +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.nlark.com/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.nlark.com/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= + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz?cache=0&sync_timestamp=1622509170257&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU= + dependencies: + forwarded "0.2.0" + 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.nlark.com/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.nlark.com/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.nlark.com/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.nlark.com/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.nlark.com/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1624297034221&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fquery-string%2Fdownload%2Fquery-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.nlark.com/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.nlark.com/querystring/download/querystring-0.2.0.tgz?cache=0&sync_timestamp=1626179435543&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597687052330&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + 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.nlark.com/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.nlark.com/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" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^5.1.1: + version "5.2.0" + resolved "https://registry.nlark.com/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.0.6, 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#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.6.0: + version "3.6.0" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-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.nlark.com/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" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.nlark.com/readdirp/download/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc= + dependencies: + picomatch "^2.2.1" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.nlark.com/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.2" + resolved "https://registry.nlark.com/regenerate/download/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1626993001371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I= + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.nlark.com/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1627057502723&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ= + dependencies: + "@babel/runtime" "^7.8.4" + +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.1" + resolved "https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY= + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.nlark.com/regexpp/download/regexpp-2.0.1.tgz?cache=0&sync_timestamp=1623668835507&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha1-jRnTHPYySCtYkEn4KB+T28uk0H8= + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413542312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha1-LepamgcjMpj78NuR+pq8TG4PitY= + 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.2" + resolved "https://registry.nlark.com/regjsgen/download/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM= + +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.nlark.com/regjsparser/download/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha1-tInu98mizkNydicBFCnPgzpxg+Y= + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.nlark.com/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.nlark.com/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.nlark.com/renderkid/download/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha1-Rk8namvc7mBvShWZP5sp/HTKhgk= + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek= + +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= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.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@^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-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +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.10.0, resolve@^1.12.0, resolve@^1.14.2: + version "1.20.0" + resolved "https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU= + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/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.nlark.com/restore-cursor/download/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha1-OfZ8VLOnpYzqUjbZXPADQjljH34= + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.nlark.com/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.nlark.com/retry/download/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.nlark.com/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= + +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= + dependencies: + glob "^7.1.3" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs= + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.nlark.com/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw= + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +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" + +rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.nlark.com/rxjs/download/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk= + 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.nlark.com/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.1" + resolved "https://registry.nlark.com/safe-buffer/download/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY= + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.nlark.com/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.nlark.com/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= + +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^13.3.2" + +sass-loader@^6.0.6: + version "6.0.7" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" + integrity sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA== + dependencies: + clone-deep "^2.0.1" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + neo-async "^2.5.0" + pify "^3.0.0" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.nlark.com/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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.7.0: + version "2.7.1" + resolved "https://registry.nlark.com/schema-utils/download/schema-utils-2.7.1.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc= + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +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= + +selfsigned@^1.10.8: + version "1.10.11" + resolved "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k= + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-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?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha1-XzyjV2HkfgWyBsba/yz4FPAxa44= + +semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + +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@^4.0.0: + version "4.0.0" + resolved "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao= + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.nlark.com/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.nlark.com/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, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/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.nlark.com/set-value/download/set-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-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA== + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + mixin-object "^2.0.1" + +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.nlark.com/shell-quote/download/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.nlark.com/side-channel/download/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha1-785cj9wQTudRslxY1CkAEfpeos8= + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.nlark.com/signal-exit/download/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= + +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" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/slash/download/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.nlark.com/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.nlark.com/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.nlark.com/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.nlark.com/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.5.0: + version "1.5.1" + resolved "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha1-JWkI9tWt+5Tau9vQLGY2LMoPnqY= + dependencies: + debug "^3.2.6" + eventsource "^1.0.7" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.5.1" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.nlark.com/sockjs/download/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc= + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +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: + version "0.5.3" + resolved "https://registry.npm.taobao.org/source-map-resolve/download/source-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.5.12: + version "0.5.19" + resolved "https://registry.nlark.com/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1618847050054&other_urls=https%3A%2F%2Fregistry.nlark.com%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.1" + resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz?cache=0&sync_timestamp=1612211015749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha1-CvZmBadFpaL5HPG7+KevvCg97FY= + +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.nlark.com/source-map/download/source-map-0.5.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/source-map/download/source-map-0.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.nlark.com/source-map/download/source-map-0.7.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha1-UwL4FpAxc1ImVECS5kmB91F1A4M= + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha1-3s6BrJweZxPl99G28X1Gj6U9iak= + 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.1" + resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha1-z3D1BILu/cmOPOCmgz5KU87rpnk= + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.10" + resolved "https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha1-DZvszN5wA9bGWNSH3UijLwvzAUs= + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.nlark.com/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.2: + version "4.0.2" + resolved "https://registry.nlark.com/spdy/download/spdy-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.nlark.com/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.2" + resolved "https://registry.nlark.com/ssri/download/ssri-6.0.2.tgz?cache=0&sync_timestamp=1621364647836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha1-FXk5E08gRk5zAd26PpD/qPdyisU= + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1621364647836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8= + dependencies: + 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= + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha1-UkKUktY8YuuYmATBFVLj0i53kwM= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.nlark.com/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.nlark.com/statuses/download/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npm.taobao.org/stream-browserify/download/stream-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.nlark.com/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.nlark.com/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.nlark.com/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/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@^1.0.2 || 2", string-width@^2.0.0: + 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.2" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU= + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz?cache=0&sync_timestamp=1614127438583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha1-51rpDClCxjUEaGwYsoe0oLGkX4A= + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.nlark.com/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0= + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.nlark.com/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.nlark.com/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=1618553299612&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=1618553299612&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, 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=1618553299612&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=1618553299612&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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/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.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046435959&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0= + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/strip-indent/download/strip-indent-2.0.0.tgz?cache=0&sync_timestamp=1620053310624&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-indent%2Fdownload%2Fstrip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-json-comments@^3.0.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY= + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1621449595596&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstylehacks%2Fdownload%2Fstylehacks-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.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1626703342506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-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.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703342506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM= + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703342506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo= + dependencies: + has-flag "^4.0.0" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/svg-tags/download/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.nlark.com/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1624693663895&other_urls=https%3A%2F%2Fregistry.nlark.com%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" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.nlark.com/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?cache=0&sync_timestamp=1607088902003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha1-ofzMBrWNth/XpF2i2kT186Pme6I= + +tar@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + dependencies: + block-stream "*" + fstream "^1.0.12" + inherits "2" + +terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4: + version "1.4.5" + resolved "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1624624550780&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha1-oheu+uozDnNP+sthIOwfoxLWBAs= + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.nlark.com/terser/download/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc= + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.nlark.com/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.1" + resolved "https://registry.nlark.com/thenify/download/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8= + dependencies: + any-promise "^1.0.0" + +thread-loader@^2.1.3: + version "2.1.3" + resolved "https://registry.nlark.com/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" + +throttle-debounce@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" + integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg== + +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: + 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.nlark.com/thunky/download/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30= + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.nlark.com/timers-browserify/download/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4= + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.nlark.com/timsort/download/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +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=1592843137359&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" + +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@^2.0.0: + version "2.0.0" + resolved "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1628418893613&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/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.nlark.com/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-range@^5.0.1: + version "5.0.1" + resolved "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ= + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.nlark.com/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" + +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= + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.nlark.com/toposort/download/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.nlark.com/tough-cookie/download/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha1-zZ+yoKodWhK0c72fuW+j3P9lreI= + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.nlark.com/tryer/download/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha1-8shUBoALmw90yfdGW4HqrSQSUvg= + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.nlark.com/ts-pnp/download/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha1-pQCtCEsHmPHDBxrzkeZZEshrypI= + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA= + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.nlark.com/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.nlark.com/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#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.21.3: + version "0.21.3" + resolved "https://registry.nlark.com/type-fest/download/type-fest-0.21.3.tgz?cache=0&sync_timestamp=1628211344858&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc= + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.nlark.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1628211344858&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha1-jSojcNPfiG61yQraHFv2GIrPg4s= + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.nlark.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1628211344858&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha1-CeJJ696FHTseSNJ8EFREZn8XuD0= + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.nlark.com/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.nlark.com/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1627379712291&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha1-mtlWPY6zrN+404WX0q8dgV9qdV8= + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706319488&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha1-CF4hViXsMWJXTciFmr7nilmxRHE= + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.nlark.com/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.nlark.com/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#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.nlark.com/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.nlark.com/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.nlark.com/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?cache=0&sync_timestamp=1616088539233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-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?cache=0&sync_timestamp=1604768535464&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-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= + +uppercamelcase@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/uppercamelcase/-/uppercamelcase-1.1.0.tgz#324d98a6b3afc7e8a8953e10641509b0e4e23f97" + integrity sha1-Mk2YprOvx+iolT4QZBUJsOTiP5c= + dependencies: + camelcase "^1.2.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237517218&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34= + 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?cache=0&sync_timestamp=1602252665628&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-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, url-parse@^1.5.1: + version "1.5.3" + resolved "https://registry.nlark.com/url-parse/download/url-parse-1.5.3.tgz?cache=0&sync_timestamp=1627251248997&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl-parse%2Fdownload%2Furl-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" + integrity sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI= + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.nlark.com/url/download/url-0.11.0.tgz?cache=0&sync_timestamp=1618847037557&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl%2Fdownload%2Furl-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.nlark.com/use/download/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8= + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.nlark.com/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.nlark.com/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: + version "1.0.1" + resolved "https://registry.nlark.com/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.nlark.com/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1622212984161&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1622212984161&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE= + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.nlark.com/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.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.nlark.com/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1622213136953&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4= + +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.nlark.com/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.nlark.com/vendors/download/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha1-4rgApT56Kbk1BsPPQRANFsTErY4= + +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" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha1-eGQcSIuObKkadfUR56OzKobl3aA= + +vue-amap@^0.5.10: + version "0.5.10" + resolved "https://registry.yarnpkg.com/vue-amap/-/vue-amap-0.5.10.tgz#464516203af0c085d404bd8acabf2401e4a36ff6" + integrity sha512-9ViNCev1vx32+zZ5RvF/TmUZNbwL9QrdA2/OnD2GlXMfQBkJy7D08Vb7379t6guqnopDPtWJ8K6gg72h9+4GUg== + dependencies: + uppercamelcase "^1.1.0" + +vue-eslint-parser@^7.0.0: + version "7.10.0" + resolved "https://registry.nlark.com/vue-eslint-parser/download/vue-eslint-parser-7.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" + integrity sha1-6k5LEP0QqjXIp5rHg0iNirzSm+g= + dependencies: + debug "^4.1.1" + eslint-scope "^5.1.1" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^6.3.0" + +vue-hot-reload-api@^2.3.0: + version "2.3.4" + resolved "https://registry.nlark.com/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" + integrity sha1-UylVzB6yCKPZkLOp+acFdGV+CPI= + +"vue-loader-v16@npm:vue-loader@^16.1.0": + version "16.5.0" + resolved "https://registry.nlark.com/vue-loader/download/vue-loader-16.5.0.tgz?cache=0&sync_timestamp=1628666727543&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-loader%2Fdownload%2Fvue-loader-16.5.0.tgz#09c4e0712466899e34b99a686524f19165fb2892" + integrity sha1-CcTgcSRmiZ40uZpoZSTxkWX7KJI= + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-loader@^15.9.2: + version "15.9.8" + resolved "https://registry.nlark.com/vue-loader/download/vue-loader-15.9.8.tgz?cache=0&sync_timestamp=1628666727543&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" + integrity sha1-Sw9gKvr2aplr4eU0+5YJ3EqxDmE= + 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-piczoom@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/vue-piczoom/-/vue-piczoom-1.0.6.tgz#ed2126f4b58127424cd090bdc531a51014d14311" + integrity sha512-kiok7dkp9sR94e7rjI1AxpsVGhCVyIk1UuV9EwGscMJ/WR0q3sbtedoXrC4jDxBKuS++lw/5GWPoNYiO4D3t2g== + dependencies: + node-sass "^4.7.2" + sass-loader "^6.0.6" + vue "^2.5.2" + +vue-router@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" + integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== + +vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: + version "4.1.3" + resolved "https://registry.nlark.com/vue-style-loader/download/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" + integrity sha1-bVWGOlH6dXqyTonZNxRlByqnvDU= + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-compiler@^2.6.11: + version "2.6.14" + resolved "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" + integrity sha1-ovDn2YVnDULJye4NBE/tdpD092M= + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.nlark.com/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU= + +vue@^2.5.2, vue@^2.6.11: + version "2.6.14" + resolved "https://registry.nlark.com/vue/download/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" + integrity sha1-5RqlJQJQ1Wmj+606ilpofWA24jU= + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.nlark.com/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc= + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.nlark.com/watchpack/download/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM= + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +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" + +webpack-bundle-analyzer@^3.8.0: + version "3.9.0" + resolved "https://registry.nlark.com/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1621259099265&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" + integrity sha1-9vlNsQj7V05BWtMT3kGicH0z7zw= + 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.19" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-chain@^6.4.0: + version "6.5.1" + resolved "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz?cache=0&sync_timestamp=1595813261846&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" + integrity sha1-TycoTLu2N+PI+970Pu9YjU2GEgY= + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.nlark.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz?cache=0&sync_timestamp=1622642128013&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU= + 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.11.0: + version "3.11.2" + resolved "https://registry.nlark.com/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz?cache=0&sync_timestamp=1626726309385&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha1-aV687Xakkp8NXef9c/r+GF/jNwg= + 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.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477211227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-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.nlark.com/webpack-merge/download/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha1-onxS6ng9E5iv0gh/VH17nS9DY00= + dependencies: + lodash "^4.17.15" + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1627898333297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha1-7t2OwLko+/HL/plOItLYkPMwqTM= + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.0.0: + version "4.46.0" + resolved "https://registry.nlark.com/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1628620367968&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha1-v5tEBOogoHNgXgoBHRiNd8tq1UI= + 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.5.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.7.4" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.nlark.com/websocket-driver/download/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A= + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha1-f4RzvIOd/YdgituV1+sHUhFXikI= + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.nlark.com/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY= + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +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, which@^1.2.9: + version "1.3.1" + resolved "https://registry.nlark.com/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.nlark.com/which/download/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE= + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.nlark.com/worker-farm/download/worker-farm-1.7.0.tgz?cache=0&sync_timestamp=1618847236820&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fworker-farm%2Fdownload%2Fworker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag= + dependencies: + errno "~0.1.7" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1618558913931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-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?cache=0&sync_timestamp=1618558913931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-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" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1618558913931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM= + 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.nlark.com/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.nlark.com/write/download/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM= + dependencies: + mkdirp "^0.5.1" + +ws@^6.0.0, ws@^6.2.1: + version "6.2.2" + resolved "https://registry.nlark.com/ws/download/ws-6.2.2.tgz?cache=0&sync_timestamp=1628712703768&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fws%2Fdownload%2Fws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4= + dependencies: + async-limiter "~1.0.0" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.nlark.com/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz?cache=0&sync_timestamp=1617822642544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8= + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz?cache=0&sync_timestamp=1617822642544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.nlark.com/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.nlark.com/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.nlark.com/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@^20.2.2: + version "20.2.9" + resolved "https://registry.nlark.com/yargs-parser/download/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha1-LrfcOwKJcY/ClfNidThFxBoMlO4= + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.nlark.com/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@^16.0.0: + version "16.2.0" + resolved "https://registry.nlark.com/yargs/download/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha1-HIK/D2tqZur85+8w43b0mhJHf2Y= + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +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" -- Gitee