diff --git a/src/AgileConfig.Server.Apisite/Appsettings.cs b/src/AgileConfig.Server.Apisite/Appsettings.cs index d9e2a528..4d727436 100644 --- a/src/AgileConfig.Server.Apisite/Appsettings.cs +++ b/src/AgileConfig.Server.Apisite/Appsettings.cs @@ -1,8 +1,5 @@ using AgileConfig.Server.Common; using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace AgileConfig.Server.Apisite { diff --git a/src/AgileConfig.Server.Apisite/Controllers/AdminController.cs b/src/AgileConfig.Server.Apisite/Controllers/AdminController.cs index 8c8416d4..5a3491b8 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/AdminController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/AdminController.cs @@ -8,7 +8,6 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Linq; -using System.Dynamic; using AgileConfig.Server.Apisite.Utilites; using AgileConfig.Server.OIDC; using System.Collections.Generic; @@ -21,7 +20,7 @@ public class AdminController : Controller { private readonly ISettingService _settingService; private readonly IUserService _userService; - private readonly IPremissionService _permissionService; + private readonly IPermissionService _permissionService; private readonly IJwtService _jwtService; private readonly IOidcClient _oidcClient; private readonly ITinyEventBus _tinyEventBus; @@ -29,7 +28,7 @@ public class AdminController : Controller public AdminController( ISettingService settingService, IUserService userService, - IPremissionService permissionService, + IPermissionService permissionService, IJwtService jwtService, IOidcClient oidcClient, ITinyEventBus tinyEventBus) diff --git a/src/AgileConfig.Server.Apisite/Controllers/AppController.cs b/src/AgileConfig.Server.Apisite/Controllers/AppController.cs index 6fe1eae5..c9219894 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/AppController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/AppController.cs @@ -20,19 +20,19 @@ namespace AgileConfig.Server.Apisite.Controllers public class AppController : Controller { private readonly IAppService _appService; - private readonly IPremissionService _premissionService; + private readonly IPermissionService _permissionService; private readonly IUserService _userService; private readonly ITinyEventBus _tinyEventBus; public AppController(IAppService appService, - IPremissionService premissionService, + IPermissionService permissionService, IUserService userService, ITinyEventBus tinyEventBus) { _userService = userService; _tinyEventBus = tinyEventBus; _appService = appService; - _premissionService = premissionService; + _permissionService = permissionService; } public async Task Search(string name, string id, string group, string sortField, @@ -112,7 +112,7 @@ private async Task AppendInheritancedInfo(List list) } } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "App.Add", Functions.App_Add })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "App.Add", Functions.App_Add })] [HttpPost] public async Task Add([FromBody] AppVM model) { @@ -161,7 +161,7 @@ public async Task Add([FromBody] AppVM model) }); } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "App.Edit", Functions.App_Edit })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "App.Edit", Functions.App_Edit })] [HttpPost] public async Task Edit([FromBody] AppVM model) { @@ -272,10 +272,10 @@ public async Task Get(string id) /// /// /// - [TypeFilter(typeof(PremissionCheckAttribute), - Arguments = new object[] { "App.DisableOrEanble", Functions.App_Edit })] + [TypeFilter(typeof(PermissionCheckAttribute), + Arguments = new object[] { "App.DisableOrEnable", Functions.App_Edit })] [HttpPost] - public async Task DisableOrEanble(string id) + public async Task DisableOrEnable(string id) { ArgumentException.ThrowIfNullOrEmpty(id); @@ -305,7 +305,7 @@ public async Task DisableOrEanble(string id) }); } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "App.Delete", Functions.App_Delete })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "App.Delete", Functions.App_Delete })] [HttpPost] public async Task Delete(string id) { @@ -372,16 +372,16 @@ public async Task InheritancedApps(string currentAppId) /// /// /// - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "App.Auth", Functions.App_Auth })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "App.Auth", Functions.App_Auth })] [HttpPost] public async Task SaveAppAuth([FromBody] AppAuthVM model) { ArgumentNullException.ThrowIfNull(model); var result = await _appService.SaveUserAppAuth(model.AppId, model.EditConfigPermissionUsers, - _premissionService.EditConfigPermissionKey); + _permissionService.EditConfigPermissionKey); var result1 = await _appService.SaveUserAppAuth(model.AppId, model.PublishConfigPermissionUsers, - _premissionService.PublishConfigPermissionKey); + _permissionService.PublishConfigPermissionKey); return Json(new { @@ -399,10 +399,10 @@ public async Task GetUserAppAuth(string appId) AppId = appId }; result.EditConfigPermissionUsers = - (await _appService.GetUserAppAuth(appId, _premissionService.EditConfigPermissionKey)).Select(x => x.Id) + (await _appService.GetUserAppAuth(appId, _permissionService.EditConfigPermissionKey)).Select(x => x.Id) .ToList(); result.PublishConfigPermissionUsers = - (await _appService.GetUserAppAuth(appId, _premissionService.PublishConfigPermissionKey)) + (await _appService.GetUserAppAuth(appId, _permissionService.PublishConfigPermissionKey)) .Select(x => x.Id).ToList(); return Json(new diff --git a/src/AgileConfig.Server.Apisite/Controllers/ConfigController.cs b/src/AgileConfig.Server.Apisite/Controllers/ConfigController.cs index acfb848a..1e9c73ee 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/ConfigController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/ConfigController.cs @@ -39,7 +39,7 @@ ITinyEventBus tinyEventBus _tinyEventBus = tinyEventBus; } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "Config.Add", Functions.Config_Add })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.Add", Functions.Config_Add })] [HttpPost] public async Task Add([FromBody] ConfigVM model, EnvString env) { @@ -94,7 +94,7 @@ public async Task Add([FromBody] ConfigVM model, EnvString env) }); } - [TypeFilter(typeof(PremissionCheckAttribute), + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.AddRange", Functions.Config_Add })] [HttpPost] public async Task AddRange([FromBody] List model, EnvString env) @@ -163,7 +163,7 @@ public async Task AddRange([FromBody] List model, EnvSt }); } - [TypeFilter(typeof(PremissionCheckAttribute), + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.Edit", Functions.Config_Edit })] [HttpPost] public async Task Edit([FromBody] ConfigVM model, [FromQuery] EnvString env) @@ -363,7 +363,7 @@ public async Task Get(string id, EnvString env) }); } - [TypeFilter(typeof(PremissionCheckAttribute), + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.Delete", Functions.Config_Delete })] [HttpPost] public async Task Delete(string id, EnvString env) @@ -406,7 +406,7 @@ public async Task Delete(string id, EnvString env) }); } - [TypeFilter(typeof(PremissionCheckAttribute), + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.DeleteSome", Functions.Config_Delete })] [HttpPost] public async Task DeleteSome([FromBody] List ids, EnvString env) @@ -457,7 +457,7 @@ public async Task DeleteSome([FromBody] List ids, EnvStri } - [TypeFilter(typeof(PremissionCheckAttribute), + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.Rollback", Functions.Config_Publish })] [HttpPost] public async Task Rollback(string publishTimelineId, EnvString env) @@ -516,7 +516,7 @@ public async Task ConfigPublishedHistory(string configId, EnvStri /// 发布所有待发布的配置项 /// /// - [TypeFilter(typeof(PremissionCheckAttribute), + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.Publish", Functions.Config_Publish })] [HttpPost] public async Task Publish([FromBody] PublishLogVM model, EnvString env) @@ -733,7 +733,7 @@ public async Task CancelSomeEdit([FromBody] List ids, Env }); } - [TypeFilter(typeof(PremissionCheckAttribute), + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Config.EvnSync", Functions.Config_Add })] [HttpPost] public async Task SyncEnv([FromBody] List toEnvs, [FromQuery] string appId, diff --git a/src/AgileConfig.Server.Apisite/Controllers/HomeController.cs b/src/AgileConfig.Server.Apisite/Controllers/HomeController.cs index 64883ed6..63571470 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/HomeController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/HomeController.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using System.Linq; +using System.Reflection; using AgileConfig.Server.Apisite.Utilites; using AgileConfig.Server.OIDC; @@ -14,13 +15,12 @@ public class HomeController : Controller { private readonly ISettingService _settingService; private readonly IUserService _userService; - private readonly IPremissionService _permissionService; + private readonly IPermissionService _permissionService; public HomeController( ISettingService settingService, IUserService userService, - IPremissionService permissionService, - IOidcClient oidcClient + IPermissionService permissionService ) { _settingService = settingService; @@ -76,7 +76,7 @@ public async Task Current() [AllowAnonymous] public async Task Sys() { - string appVer = System.Reflection.Assembly.GetAssembly(typeof(AgileConfig.Server.Apisite.Program)).GetName().Version.ToString(); + string appVer = Assembly.GetAssembly(typeof(Program))?.GetName()?.Version?.ToString(); string userName = this.GetCurrentUserName(); if (string.IsNullOrEmpty(userName)) { @@ -110,7 +110,7 @@ public IActionResult Echo() [AllowAnonymous] public IActionResult GetIP() { - return Content(String.Join(',', IPExt.GetEndpointIp())); + return Content(String.Join(',', IpExt.GetEndpointIp())); } } } diff --git a/src/AgileConfig.Server.Apisite/Controllers/RemoteOPController.cs b/src/AgileConfig.Server.Apisite/Controllers/RemoteOPController.cs index a3f2a4ae..5975421b 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/RemoteOPController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/RemoteOPController.cs @@ -11,12 +11,12 @@ namespace AgileConfig.Server.Apisite.Controllers /// /// 这个Controller用来接受其它节点发送过来的命令 /// - public class RemoteOPController : Controller + public class RemoteOpController : Controller { private readonly IConfigService _configService; private readonly IServiceInfoService _serviceInfoService; private readonly ILogger _logger; - public RemoteOPController(IConfigService configService, + public RemoteOpController(IConfigService configService, IServiceInfoService serviceInfoService, ILoggerFactory loggerFactory) { diff --git a/src/AgileConfig.Server.Apisite/Controllers/ReportController.cs b/src/AgileConfig.Server.Apisite/Controllers/ReportController.cs index e4e82399..72cbcece 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/ReportController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/ReportController.cs @@ -2,9 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using AgileConfig.Server.Apisite.Models; using AgileConfig.Server.Apisite.Websocket; -using AgileConfig.Server.Common; using AgileConfig.Server.Data.Entity; using AgileConfig.Server.IService; using Microsoft.AspNetCore.Mvc; diff --git a/src/AgileConfig.Server.Apisite/Controllers/SSOController.cs b/src/AgileConfig.Server.Apisite/Controllers/SSOController.cs index 929a4ba1..514b80d1 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/SSOController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/SSOController.cs @@ -5,11 +5,11 @@ namespace AgileConfig.Server.Apisite.Controllers { - public class SSOController : Controller + public class SsoController : Controller { private readonly IOidcClient _oidcClient; - public SSOController(IOidcClient oidcClient) + public SsoController(IOidcClient oidcClient) { _oidcClient = oidcClient; } diff --git a/src/AgileConfig.Server.Apisite/Controllers/ServerNodeController.cs b/src/AgileConfig.Server.Apisite/Controllers/ServerNodeController.cs index 597790e3..25f4d208 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/ServerNodeController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/ServerNodeController.cs @@ -34,7 +34,7 @@ ITinyEventBus tinyEventBus _tinyEventBus = tinyEventBus; } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "Node.Add", Functions.Node_Add })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Node.Add", Functions.Node_Add })] [HttpPost] public async Task Add([FromBody] ServerNodeVM model) { @@ -74,7 +74,7 @@ public async Task Add([FromBody] ServerNodeVM model) }); } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "Node.Delete", Functions.Node_Delete })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "Node.Delete", Functions.Node_Delete })] [HttpPost] public async Task Delete([FromBody] ServerNodeVM model) { diff --git a/src/AgileConfig.Server.Apisite/Controllers/ServiceController.cs b/src/AgileConfig.Server.Apisite/Controllers/ServiceController.cs index e3e8b7d1..2b72092e 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/ServiceController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/ServiceController.cs @@ -37,7 +37,7 @@ public async Task Add([FromBody] ServiceInfoVM model) { if (model == null) { - throw new ArgumentNullException("model"); + throw new ArgumentNullException(nameof(model)); } if ((await _serviceInfoService.GetByServiceIdAsync(model.ServiceId)) != null) diff --git a/src/AgileConfig.Server.Apisite/Controllers/SysLogController.cs b/src/AgileConfig.Server.Apisite/Controllers/SysLogController.cs index bd237cb6..ea178dc4 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/SysLogController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/SysLogController.cs @@ -1,6 +1,5 @@ using System; using System.Threading.Tasks; -using AgileConfig.Server.Apisite.Filters; using AgileConfig.Server.Data.Entity; using AgileConfig.Server.IService; using Microsoft.AspNetCore.Authorization; @@ -32,10 +31,8 @@ public async Task Search(string appId, SysLogType? logType, DateT var pageList = await _sysLogService.SearchPage(appId, logType, startTime, endTime?.Date.AddDays(1), pageSize, current); var total = await _sysLogService.Count(appId, logType, startTime, endTime?.Date.AddDays(1)); - var totalPages = total / pageSize; if ((total % pageSize) > 0) { - totalPages++; } return Json(new diff --git a/src/AgileConfig.Server.Apisite/Controllers/UserController.cs b/src/AgileConfig.Server.Apisite/Controllers/UserController.cs index 89ffc9c4..fe6a8287 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/UserController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/UserController.cs @@ -86,7 +86,7 @@ public async Task Search(string userName, string team, int curren }); } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "User.Add", Functions.User_Add })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "User.Add", Functions.User_Add })] [HttpPost] public async Task Add([FromBody] UserVM model) { @@ -130,7 +130,7 @@ public async Task Add([FromBody] UserVM model) }); } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "User.Edit", Functions.User_Edit })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "User.Edit", Functions.User_Edit })] [HttpPost] public async Task Edit([FromBody] UserVM model) { @@ -169,7 +169,7 @@ public async Task Edit([FromBody] UserVM model) const string DefaultPassword = "123456"; - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "User.ResetPassword", Functions.User_Edit })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "User.ResetPassword", Functions.User_Edit })] [HttpPost] public async Task ResetPassword(string userId) { @@ -203,7 +203,7 @@ public async Task ResetPassword(string userId) }); } - [TypeFilter(typeof(PremissionCheckAttribute), Arguments = new object[] { "User.Delete", Functions.User_Delete })] + [TypeFilter(typeof(PermissionCheckAttribute), Arguments = new object[] { "User.Delete", Functions.User_Delete })] [HttpPost] public async Task Delete(string userId) { diff --git a/src/AgileConfig.Server.Apisite/Controllers/api/AppController.cs b/src/AgileConfig.Server.Apisite/Controllers/api/AppController.cs index f86023a0..6b65f84c 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/api/AppController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/api/AppController.cs @@ -83,7 +83,7 @@ public async Task> GetById(string id) /// 应用模型 /// [ProducesResponseType(201)] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "App.Add", Functions.App_Add })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "App.Add", Functions.App_Add })] [HttpPost] public async Task Add([FromBody] ApiAppVM model) { @@ -123,7 +123,7 @@ public async Task Add([FromBody] ApiAppVM model) /// 编辑后的应用模型 /// [ProducesResponseType(200)] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "App.Edit", Functions.App_Edit })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "App.Edit", Functions.App_Edit })] [HttpPut("{id}")] public async Task Edit(string id, [FromBody] ApiAppVM model) { @@ -164,7 +164,7 @@ public async Task Edit(string id, [FromBody] ApiAppVM model) /// 应用id /// [ProducesResponseType(204)] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "App.Delete", Functions.App_Delete })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "App.Delete", Functions.App_Delete })] [HttpDelete("{id}")] public async Task Delete(string id) { @@ -194,7 +194,7 @@ public async Task Delete(string id) /// 环境 /// [TypeFilter(typeof(AdmBasicAuthenticationAttribute))] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "Config.Publish_API", Functions.Config_Publish })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "Config.Publish_API", Functions.Config_Publish })] [HttpPost("publish")] public async Task Publish(string appId, EnvString env) { @@ -248,7 +248,7 @@ public async Task>> PublishHistor /// 环境 /// [TypeFilter(typeof(AdmBasicAuthenticationAttribute))] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "Config.Rollback_API", Functions.Config_Publish })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "Config.Rollback_API", Functions.Config_Publish })] [HttpPost("rollback")] public async Task Rollback(string historyId, EnvString env) { diff --git a/src/AgileConfig.Server.Apisite/Controllers/api/ConfigController.cs b/src/AgileConfig.Server.Apisite/Controllers/api/ConfigController.cs index 67efada1..c4ed1ebe 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/api/ConfigController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/api/ConfigController.cs @@ -126,7 +126,7 @@ public async Task> GetConfig(string id, [FromQuery] En /// [ProducesResponseType(201)] [TypeFilter(typeof(AdmBasicAuthenticationAttribute))] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "Config.Add", Functions.Config_Add })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "Config.Add", Functions.Config_Add })] [HttpPost] public async Task Add([FromBody] ApiConfigVM model, EnvString env) { @@ -167,7 +167,7 @@ public async Task Add([FromBody] ApiConfigVM model, EnvString env /// 环境 /// [TypeFilter(typeof(AdmBasicAuthenticationAttribute))] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "Config.Edit", Functions.Config_Edit })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "Config.Edit", Functions.Config_Edit })] [HttpPut("{id}")] public async Task Edit(string id, [FromBody] ApiConfigVM model, EnvString env) { @@ -207,7 +207,7 @@ public async Task Edit(string id, [FromBody] ApiConfigVM model, E /// [ProducesResponseType(204)] [TypeFilter(typeof(AdmBasicAuthenticationAttribute))] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "Config.Delete", Functions.Config_Delete })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "Config.Delete", Functions.Config_Delete })] [HttpDelete("{id}")] public async Task Delete(string id, EnvString env) { diff --git a/src/AgileConfig.Server.Apisite/Controllers/api/NodeController.cs b/src/AgileConfig.Server.Apisite/Controllers/api/NodeController.cs index ef81e202..90bc167b 100644 --- a/src/AgileConfig.Server.Apisite/Controllers/api/NodeController.cs +++ b/src/AgileConfig.Server.Apisite/Controllers/api/NodeController.cs @@ -55,7 +55,7 @@ public async Task>> GetAll() /// 节点模型 /// [ProducesResponseType(201)] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "Node.Add", Functions.Node_Add })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "Node.Add", Functions.Node_Add })] [HttpPost] public async Task Add([FromBody] ApiNodeVM model) { @@ -93,7 +93,7 @@ public async Task Add([FromBody] ApiNodeVM model) /// 节点地址 /// [ProducesResponseType(204)] - [TypeFilter(typeof(PremissionCheckByBasicAttribute), Arguments = new object[] { "Node.Delete", Functions.Node_Delete })] + [TypeFilter(typeof(PermissionCheckByBasicAttribute), Arguments = new object[] { "Node.Delete", Functions.Node_Delete })] [HttpDelete()] public async Task Delete([FromQuery] string address) { diff --git a/src/AgileConfig.Server.Apisite/Filters/AdmBasicAuthenticationAttribute.cs b/src/AgileConfig.Server.Apisite/Filters/AdmBasicAuthenticationAttribute.cs index 11e82a5d..9c149263 100644 --- a/src/AgileConfig.Server.Apisite/Filters/AdmBasicAuthenticationAttribute.cs +++ b/src/AgileConfig.Server.Apisite/Filters/AdmBasicAuthenticationAttribute.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; +using System.Threading.Tasks; using AgileConfig.Server.IService; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; @@ -16,7 +11,7 @@ namespace AgileConfig.Server.Apisite.Filters /// public class AdmBasicAuthenticationAttribute : ActionFilterAttribute { - private IAdmBasicAuthService _admBasicAuthService; + private readonly IAdmBasicAuthService _admBasicAuthService; public AdmBasicAuthenticationAttribute(IAdmBasicAuthService admBasicAuthService) { _admBasicAuthService = admBasicAuthService; @@ -32,7 +27,7 @@ public override async Task OnActionExecutionAsync(ActionExecutingContext context await base.OnActionExecutionAsync(context, next); } - public async Task Valid(HttpRequest httpRequest) + private async Task Valid(HttpRequest httpRequest) { return await _admBasicAuthService.ValidAsync(httpRequest); } diff --git a/src/AgileConfig.Server.Apisite/Filters/AppBasicAuthenticationAttribute.cs b/src/AgileConfig.Server.Apisite/Filters/AppBasicAuthenticationAttribute.cs index 9639d0d7..7e684ea8 100644 --- a/src/AgileConfig.Server.Apisite/Filters/AppBasicAuthenticationAttribute.cs +++ b/src/AgileConfig.Server.Apisite/Filters/AppBasicAuthenticationAttribute.cs @@ -11,7 +11,7 @@ namespace AgileConfig.Server.Apisite.Filters /// public class AppBasicAuthenticationAttribute : ActionFilterAttribute { - private IAppBasicAuthService _appBasicAuthService; + private readonly IAppBasicAuthService _appBasicAuthService; public AppBasicAuthenticationAttribute(IAppBasicAuthService appBasicAuthService) { _appBasicAuthService = appBasicAuthService; diff --git a/src/AgileConfig.Server.Apisite/Filters/ModelValidAttribute.cs b/src/AgileConfig.Server.Apisite/Filters/ModelValidAttribute.cs index f760eb1d..fcf834c9 100644 --- a/src/AgileConfig.Server.Apisite/Filters/ModelValidAttribute.cs +++ b/src/AgileConfig.Server.Apisite/Filters/ModelValidAttribute.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; +using System.Text; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; diff --git a/src/AgileConfig.Server.Apisite/Filters/PremissionCheckAttribute.cs b/src/AgileConfig.Server.Apisite/Filters/PermissionCheckAttribute.cs similarity index 83% rename from src/AgileConfig.Server.Apisite/Filters/PremissionCheckAttribute.cs rename to src/AgileConfig.Server.Apisite/Filters/PermissionCheckAttribute.cs index 75a74f3f..981595db 100644 --- a/src/AgileConfig.Server.Apisite/Filters/PremissionCheckAttribute.cs +++ b/src/AgileConfig.Server.Apisite/Filters/PermissionCheckAttribute.cs @@ -1,5 +1,4 @@ using AgileConfig.Server.Apisite.Models; -using AgileConfig.Server.Apisite.Utilites; using AgileConfig.Server.Common; using AgileConfig.Server.IService; using Microsoft.AspNetCore.Mvc; @@ -13,7 +12,7 @@ namespace AgileConfig.Server.Apisite.Filters { - public class PremissionCheckAttribute : ActionFilterAttribute + public class PermissionCheckAttribute : ActionFilterAttribute { private static string GetEnvFromArgs(IDictionary args, IConfigService configService) { @@ -35,9 +34,9 @@ private static string GetEnvFromArgs(IDictionary args, IConfigSe /// 因为 attribute 不能传递 func 参数,所有从 action 的参数内获取 appId 的操作只能提前内置在一个静态字典内。 /// protected static readonly - FrozenDictionary> + FrozenDictionary> GetAppIdParamFuncs = - new Dictionary> + new Dictionary> { { "Config.Add", (args, premission, config) => @@ -47,28 +46,28 @@ protected static readonly } }, { - "Config.AddRange", (args, premission, config) => + "Config.AddRange", (args, permission, config) => { var model = args.ActionArguments["model"]; return (model as List)?.FirstOrDefault()?.AppId; } }, { - "Config.EnvSync", (args, premission, config) => + "Config.EnvSync", (args, permission, config) => { var appId = args.ActionArguments["appId"]; return appId?.ToString(); } }, { - "Config.Edit", (args, premission, config) => + "Config.Edit", (args, permission, config) => { var model = args.ActionArguments["model"]; return (model as IAppIdModel)?.AppId; } }, { - "Config.Delete", (args, premission, configService) => + "Config.Delete", (args, permission, configService) => { var id = args.ActionArguments["id"]; var env = GetEnvFromArgs(args.ActionArguments, configService); @@ -78,7 +77,7 @@ protected static readonly } }, { - "Config.DeleteSome", (args, premission, configService) => + "Config.DeleteSome", (args, permission, configService) => { var ids = args.ActionArguments["ids"] as List; var env = GetEnvFromArgs(args.ActionArguments, configService); @@ -88,7 +87,7 @@ protected static readonly } }, { - "Config.Offline", (args, premission, configService) => + "Config.Offline", (args, permission, configService) => { var id = args.ActionArguments["configId"]; var env = GetEnvFromArgs(args.ActionArguments, configService); @@ -98,7 +97,7 @@ protected static readonly } }, { - "Config.OfflineSome", (args, premission, configService) => + "Config.OfflineSome", (args, permission, configService) => { var ids = args.ActionArguments["configIds"] as List; var id = ids?.FirstOrDefault(); @@ -109,7 +108,7 @@ protected static readonly } }, { - "Config.Publish", (args, premission, configService) => + "Config.Publish", (args, permission, configService) => { var model = args.ActionArguments["model"] as IAppIdModel; @@ -117,15 +116,15 @@ protected static readonly } }, { - "Config.Publish_API", (args, premission, configService) => + "Config.Publish_API", (args, permission, configService) => { var appId = args.ActionArguments["appId"]; - return appId.ToString(); + return appId?.ToString(); } }, { - "Config.Rollback", (args, premission, configService) => + "Config.Rollback", (args, permission, configService) => { var timelineId = args.ActionArguments["publishTimelineId"] as string; var env = GetEnvFromArgs(args.ActionArguments, configService); @@ -135,7 +134,7 @@ protected static readonly } }, { - "Config.Rollback_API", (args, premission, configService) => + "Config.Rollback_API", (args, permission, configService) => { var timelineId = args.ActionArguments["historyId"] as string; var env = GetEnvFromArgs(args.ActionArguments, configService); @@ -145,45 +144,45 @@ protected static readonly } }, { - "App.Add", (args, premission, configService) => { return ""; } + "App.Add", (args, permission, configService) => "" }, { - "App.Edit", (args, premission, configService) => + "App.Edit", (args, permission, configService) => { var app = args.ActionArguments["model"] as IAppModel; return app.Id; } }, { - "App.Delete", (args, premission, configService) => + "App.Delete", (args, permission, configService) => { var id = args.ActionArguments["id"] as string; return id; } }, { - "App.DisableOrEanble", (args, premission, configService) => + "App.DisableOrEnable", (args, permission, configService) => { var id = args.ActionArguments["id"] as string; return id; } }, { - "App.Auth", (args, premission, configService) => + "App.Auth", (args, permission, configService) => { var model = args.ActionArguments["model"] as IAppIdModel; return model?.AppId; } }, { - "Node.Add", (args, premission, configService) => + "Node.Add", (args, permission, configService) => { var id = args.ActionArguments["id"] as string; return id; } }, { - "Node.Delete", (args, premission, configService) => + "Node.Delete", (args, permission, configService) => { var model = args.ActionArguments["model"] as IAppIdModel; return model?.AppId; @@ -194,16 +193,16 @@ protected static readonly protected const string GlobalMatchPatten = "GLOBAL_{0}"; protected const string AppMatchPatten = "APP_{0}_{1}"; - private IPremissionService _premissionService; - private IConfigService _configService; + private readonly IPermissionService _permissionService; + private readonly IConfigService _configService; - private string _actionName; - private string _functionKey; + private readonly string _actionName; + private readonly string _functionKey; - public PremissionCheckAttribute(IPremissionService premissionService, IConfigService configService, + public PermissionCheckAttribute(IPermissionService permissionService, IConfigService configService, string actionName, string functionKey) { - _premissionService = premissionService; + _permissionService = permissionService; _configService = configService; _actionName = actionName; @@ -229,7 +228,7 @@ public override async Task OnActionExecutionAsync(ActionExecutingContext context return; } - var userFunctions = await _premissionService.GetUserPermission(userId); + var userFunctions = await _permissionService.GetUserPermission(userId); //judge global var matchKey = string.Format(GlobalMatchPatten, _functionKey); @@ -242,7 +241,7 @@ public override async Task OnActionExecutionAsync(ActionExecutingContext context var appId = ""; if (GetAppIdParamFuncs.TryGetValue(_actionName, out var func)) { - appId = func(context, _premissionService, _configService); + appId = func(context, _permissionService, _configService); } if (!string.IsNullOrEmpty(appId)) diff --git a/src/AgileConfig.Server.Apisite/Filters/PremissionCheckByBasicAttribute.cs b/src/AgileConfig.Server.Apisite/Filters/PermissionCheckByBasicAttribute.cs similarity index 71% rename from src/AgileConfig.Server.Apisite/Filters/PremissionCheckByBasicAttribute.cs rename to src/AgileConfig.Server.Apisite/Filters/PermissionCheckByBasicAttribute.cs index ae0ed11b..cb96a508 100644 --- a/src/AgileConfig.Server.Apisite/Filters/PremissionCheckByBasicAttribute.cs +++ b/src/AgileConfig.Server.Apisite/Filters/PermissionCheckByBasicAttribute.cs @@ -1,10 +1,5 @@ -using AgileConfig.Server.Apisite.Models; -using AgileConfig.Server.Apisite.Utilites; -using AgileConfig.Server.IService; -using Microsoft.AspNetCore.Mvc; +using AgileConfig.Server.IService; using Microsoft.AspNetCore.Mvc.Filters; -using System; -using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,18 +8,18 @@ namespace AgileConfig.Server.Apisite.Filters /// /// 权限判断,用户信息从basic认证的头部取 /// - public class PremissionCheckByBasicAttribute : PremissionCheckAttribute + public class PermissionCheckByBasicAttribute : PermissionCheckAttribute { protected IAdmBasicAuthService _basicAuthService; protected IUserService _userService; - public PremissionCheckByBasicAttribute( - IPremissionService premissionService, + public PermissionCheckByBasicAttribute( + IPermissionService permissionService, IConfigService configService, IAdmBasicAuthService basicAuthService, IUserService userService, string actionName, - string functionKey) : base(premissionService, configService, actionName, functionKey) + string functionKey) : base(permissionService, configService, actionName, functionKey) { _userService = userService; _basicAuthService = basicAuthService; diff --git a/src/AgileConfig.Server.Apisite/InitService.cs b/src/AgileConfig.Server.Apisite/InitService.cs index ca02c32d..9d81f8a9 100644 --- a/src/AgileConfig.Server.Apisite/InitService.cs +++ b/src/AgileConfig.Server.Apisite/InitService.cs @@ -85,7 +85,7 @@ private string GetIp() { try { - var myips = IPExt.GetEndpointIp(); + var myips = IpExt.GetEndpointIp(); _logger.LogInformation("AgileConfig node's IP " + String.Join(',', myips)); return myips.FirstOrDefault(); diff --git a/src/AgileConfig.Server.Apisite/Startup.cs b/src/AgileConfig.Server.Apisite/Startup.cs index 1b504f05..15795ada 100644 --- a/src/AgileConfig.Server.Apisite/Startup.cs +++ b/src/AgileConfig.Server.Apisite/Startup.cs @@ -123,7 +123,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IService AddSwaggerMiddleWare(app); } - app.UseMiddleware(); + app.UseMiddleware(); app.UseCors(op => { diff --git a/src/AgileConfig.Server.Apisite/StartupExtension.cs b/src/AgileConfig.Server.Apisite/StartupExtension.cs index 1425f497..35f5ceaf 100644 --- a/src/AgileConfig.Server.Apisite/StartupExtension.cs +++ b/src/AgileConfig.Server.Apisite/StartupExtension.cs @@ -3,7 +3,6 @@ using OpenTelemetry.Metrics; using System.Net.Http; using OpenTelemetry.Trace; -using OpenTelemetry.Logs; using OpenTelemetry.Exporter; using OpenTelemetry; using Npgsql; @@ -13,12 +12,12 @@ namespace AgileConfig.Server.Apisite { public static class StartupExtension { - public static void AddDefaultHttpClient(this IServiceCollection services, bool isTrustSSL) + public static void AddDefaultHttpClient(this IServiceCollection services, bool isTrustSsl) { services.AddHttpClient(Global.DefaultHttpClientName) .ConfigurePrimaryHttpMessageHandler(() => { - return NewMessageHandler(isTrustSSL); + return NewMessageHandler(isTrustSsl); }) ; } @@ -90,10 +89,7 @@ static HttpMessageHandler NewMessageHandler(bool alwaysTrustSsl) var handler = new HttpClientHandler(); if (alwaysTrustSsl) { - handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => - { - return true; - }; + handler.ServerCertificateCustomValidationCallback = (_, _, _, _) => true; } return handler; diff --git a/src/AgileConfig.Server.Apisite/UIExtension/ReactUIMiddleware.cs b/src/AgileConfig.Server.Apisite/UIExtension/ReactUIMiddleware.cs index c9e8d5ce..5ac0bce9 100644 --- a/src/AgileConfig.Server.Apisite/UIExtension/ReactUIMiddleware.cs +++ b/src/AgileConfig.Server.Apisite/UIExtension/ReactUIMiddleware.cs @@ -5,7 +5,6 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using System.Text; using Microsoft.Extensions.Primitives; using System.Collections.Concurrent; using AgileConfig.Server.Common; @@ -13,14 +12,14 @@ namespace AgileConfig.Server.Apisite.UIExtension { - public class ReactUIMiddleware + public class ReactUiMiddleware { - private static string UiDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot/ui"); - private static readonly ConcurrentDictionary StaticFilesCache = new(); + private static string _uiDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot/ui"); + private static readonly ConcurrentDictionary StaticFilesCache = new(); private readonly RequestDelegate _next; private readonly ILogger _logger; - private readonly IWebHostEnvironment _environment; - public ReactUIMiddleware( + + public ReactUiMiddleware( RequestDelegate next, ILoggerFactory loggerFactory, IWebHostEnvironment environment @@ -28,29 +27,28 @@ IWebHostEnvironment environment { _next = next; _logger = loggerFactory. - CreateLogger(); - _environment = environment; + CreateLogger(); #if DEBUG //if debug mode, try to switch to project wwwwroot dir - var projectUIPath = Path.Combine(_environment.ContentRootPath, "wwwroot/ui"); - if (Directory.Exists(projectUIPath)) + var projectUiPath = Path.Combine(environment.ContentRootPath, "wwwroot/ui"); + if (Directory.Exists(projectUiPath)) { - UiDirectory = projectUIPath; + _uiDirectory = projectUiPath; } #endif } private bool IsAdminConsoleMode => "true".Equals(Global.Config["adminConsole"], StringComparison.OrdinalIgnoreCase); - private bool ShouldHandleUIRequest(HttpContext context) + private static bool ShouldHandleUiRequest(HttpContext context) { - return context.Request.Path.HasValue && context.Request.Path.Value.Equals("/ui", StringComparison.OrdinalIgnoreCase); + return context.Request.Path is { HasValue: true, Value: not null } && context.Request.Path.Value.Equals("/ui", StringComparison.OrdinalIgnoreCase); } - private bool ShouldHandleUIStaticFilesRequest(HttpContext context) + private bool ShouldHandleUiStaticFilesRequest(HttpContext context) { //请求的的Referer为 0.0.0.0/ui ,以此为依据判断是否是reactui需要的静态文件 - if (context.Request.Path.HasValue && context.Request.Path.Value.Contains(".")) + if (context.Request.Path is { HasValue: true, Value: not null } && context.Request.Path.Value.Contains('.')) { context.Request.Headers.TryGetValue("Referer", out StringValues refererValues); if (refererValues.Any()) @@ -105,14 +103,14 @@ public async Task Invoke(HttpContext context) { //handle /ui request var filePath = ""; - if (ShouldHandleUIRequest(context)) + if (ShouldHandleUiRequest(context)) { - filePath = UiDirectory + "/index.html"; + filePath = _uiDirectory + "/index.html"; } //handle static files that Referer = xxx/ui - if (ShouldHandleUIStaticFilesRequest(context)) + if (ShouldHandleUiStaticFilesRequest(context)) { - filePath = UiDirectory + context.Request.Path; + filePath = _uiDirectory + context.Request.Path; } if (string.IsNullOrEmpty(filePath)) @@ -146,7 +144,7 @@ public async Task Invoke(HttpContext context) var fileData = await File.ReadAllBytesAsync(filePath); //read file bytes var lastModified = File.GetLastWriteTime(filePath); var extType = Path.GetExtension(filePath); - uiFile = new UIFileBag() + uiFile = new UiFileBag() { FilePath = filePath, Data = fileData, diff --git a/src/AgileConfig.Server.Apisite/UIExtension/UIFileBag.cs b/src/AgileConfig.Server.Apisite/UIExtension/UIFileBag.cs index c2c3c873..0528f67e 100644 --- a/src/AgileConfig.Server.Apisite/UIExtension/UIFileBag.cs +++ b/src/AgileConfig.Server.Apisite/UIExtension/UIFileBag.cs @@ -4,9 +4,9 @@ namespace AgileConfig.Server.Apisite.UIExtension; -internal class UIFileBag +internal class UiFileBag { - private static Dictionary _contentTypesMap = new() + private static readonly Dictionary ContentTypesMap = new() { {".html", "text/html; charset=utf-8"}, {".css", "text/css; charset=utf-8"}, @@ -25,7 +25,7 @@ internal class UIFileBag public string ExtType { get; init; } - public string ContentType => _contentTypesMap[ExtType]; + public string ContentType => ContentTypesMap[ExtType]; public DateTime LastModified { get; init; } } \ No newline at end of file diff --git a/src/AgileConfig.Server.Apisite/Utilites/ControllerExt.cs b/src/AgileConfig.Server.Apisite/Utilites/ControllerExt.cs index 93c206c0..4c56fa9d 100644 --- a/src/AgileConfig.Server.Apisite/Utilites/ControllerExt.cs +++ b/src/AgileConfig.Server.Apisite/Utilites/ControllerExt.cs @@ -1,6 +1,5 @@ using AgileConfig.Server.Common; using AgileConfig.Server.IService; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Linq; using System.Threading.Tasks; @@ -31,7 +30,7 @@ public static string GetCurrentUserName(this Controller ctrl) /// /// /// - public static async Task GetCurrentUserId(this Controller ctrl, IUserService userservice = null) + public static async Task GetCurrentUserId(this Controller ctrl, IUserService userService) { var userId = ctrl.HttpContext.GetUserIdFromClaim(); if (string.IsNullOrEmpty(userId)) @@ -39,7 +38,7 @@ public static async Task GetCurrentUserId(this Controller ctrl, IUserSer var result = ctrl.Request.GetUserNamePasswordFromBasicAuthorization(); if (!string.IsNullOrEmpty(result.Item1)) { - var user =(await userservice.GetUsersByNameAsync(result.Item1)).FirstOrDefault(x=>x.Status == Data.Entity.UserStatus.Normal); + var user =(await userService.GetUsersByNameAsync(result.Item1)).FirstOrDefault(x=>x.Status == Data.Entity.UserStatus.Normal); userId = user?.Id; } } diff --git a/src/AgileConfig.Server.Apisite/Utilites/IPExt.cs b/src/AgileConfig.Server.Apisite/Utilites/IPExt.cs index d0e2ab30..daa1343c 100644 --- a/src/AgileConfig.Server.Apisite/Utilites/IPExt.cs +++ b/src/AgileConfig.Server.Apisite/Utilites/IPExt.cs @@ -5,7 +5,7 @@ namespace AgileConfig.Server.Apisite.Utilites { - public class IPExt + public class IpExt { public static string[] GetEndpointIp() { @@ -21,11 +21,15 @@ public static string[] GetEndpointIp() { var props = item.GetIPProperties(); //this is ip for ipv4 - var firstIpV4Address = props.UnicastAddresses + var firstIpV4Address = props.UnicastAddresses? .Where(c => c.Address.AddressFamily == AddressFamily.InterNetwork) .Select(c => c.Address) - .FirstOrDefault().ToString(); - ips.Add(firstIpV4Address); + .FirstOrDefault()?.ToString(); + + if (!string.IsNullOrEmpty(firstIpV4Address)) + { + ips.Add(firstIpV4Address); + } } } return ips.ToArray(); diff --git a/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/IMessageHandler.cs b/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/IMessageHandler.cs index 28d5caa3..a9d03423 100644 --- a/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/IMessageHandler.cs +++ b/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/IMessageHandler.cs @@ -1,5 +1,4 @@ -using System.Net.WebSockets; -using System.Threading.Tasks; +using System.Threading.Tasks; using Microsoft.AspNetCore.Http; namespace AgileConfig.Server.Apisite.Websocket.MessageHandlers; diff --git a/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/MessageHandler.cs b/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/MessageHandler.cs index 211cc9d2..833ef1dd 100644 --- a/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/MessageHandler.cs +++ b/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/MessageHandler.cs @@ -1,5 +1,4 @@ using System; -using System.Net.Http.Json; using System.Net.WebSockets; using System.Text; using System.Threading; @@ -54,13 +53,10 @@ await webSocket.SendAsync(new ArraySegment(data, 0, data.Length), WebSocke } public async Task Handle(string message, HttpRequest request, WebsocketClient client) { - if (message == null) - { - message = ""; - } + message ??= ""; // "ping" is old version - if (message == "ping" || message == "c:ping") + if (message is "ping" or "c:ping") { //如果是ping,回复本地数据的md5版本 var appId = request.Headers["appid"]; diff --git a/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/WebsocketMessageHandlers.cs b/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/WebsocketMessageHandlers.cs index c6031663..a537bcf0 100644 --- a/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/WebsocketMessageHandlers.cs +++ b/src/AgileConfig.Server.Apisite/Websocket/MessageHandlers/WebsocketMessageHandlers.cs @@ -9,9 +9,10 @@ public class WebsocketMessageHandlers public WebsocketMessageHandlers(IConfigService configService, IRegisterCenterService registerCenterService, IServiceInfoService serviceInfoService) { - MessageHandlers = new List(); - - MessageHandlers.Add(new OldMessageHandler(configService)); - MessageHandlers.Add(new MessageHandler(configService, registerCenterService, serviceInfoService)); + MessageHandlers = + [ + new OldMessageHandler(configService), + new MessageHandler(configService, registerCenterService, serviceInfoService) + ]; } } \ No newline at end of file diff --git a/src/AgileConfig.Server.Apisite/Websocket/WebsocketCollection.cs b/src/AgileConfig.Server.Apisite/Websocket/WebsocketCollection.cs index 099e464f..c1d092ec 100644 --- a/src/AgileConfig.Server.Apisite/Websocket/WebsocketCollection.cs +++ b/src/AgileConfig.Server.Apisite/Websocket/WebsocketCollection.cs @@ -3,7 +3,6 @@ using Newtonsoft.Json; using System; using System.Collections.Concurrent; -using System.Collections.Generic; using System.Linq; using System.Net.WebSockets; using System.Text; @@ -23,16 +22,16 @@ static WebsocketCollection() Instance = new WebsocketCollection(); } - private ConcurrentDictionary _Clients = new ConcurrentDictionary(); + private readonly ConcurrentDictionary _clients = new(); public void SendMessageToAll(string message) { - if (_Clients.Count == 0) + if (_clients.Count == 0) { return; } var data = Encoding.UTF8.GetBytes(message); - foreach (var webSocket in _Clients) + foreach (var webSocket in _clients) { if (webSocket.Value.Client.State == WebSocketState.Open) { @@ -44,12 +43,12 @@ public void SendMessageToAll(string message) public void SendToAppClients(string appId, string message) { - if (_Clients.Count == 0) + if (_clients.IsEmpty) { return; } - var appClients = _Clients.Values.Where(c => c.AppId == appId); - if (appClients.Count() == 0) + var appClients = _clients.Values.Where(c => c.AppId == appId); + if (!appClients.Any()) { return; } @@ -66,12 +65,12 @@ public void SendToAppClients(string appId, string message) public void SendActionToAppClients(string appId,string env, WebsocketAction action) { - if (_Clients.Count == 0) + if (_clients.IsEmpty) { return; } - var appClients = _Clients.Values.Where(c => c.AppId == appId && c.Env == env); - if (appClients.Count() == 0) + var appClients = _clients.Values.Where(c => c.AppId == appId && c.Env == env); + if (!appClients.Any()) { return; } @@ -112,28 +111,28 @@ await client.Client.SendAsync(new ArraySegment(data, 0, data.Length), WebS public void AddClient(WebsocketClient client) { - _Clients.TryAdd(client.Id, client); + _clients.TryAdd(client.Id, client); } public async Task RemoveClient(WebsocketClient client, WebSocketCloseStatus? closeStatus, string closeDesc = null) { - if (_Clients.TryRemove(client.Id, out WebsocketClient tryRemoveClient) && client.Client.State == WebSocketState.Open) + if (_clients.TryRemove(client.Id, out WebsocketClient tryRemoveClient) && client.Client.State == WebSocketState.Open) { - await client.Client.CloseAsync(closeStatus.HasValue ? closeStatus.Value : WebSocketCloseStatus.Empty, closeDesc, CancellationToken.None); + await client.Client.CloseAsync(closeStatus ?? WebSocketCloseStatus.Empty, closeDesc, CancellationToken.None); client.Client.Dispose(); } } public void RemoveAppClients(string appId, WebSocketCloseStatus? closeStatus, string closeDesc) { - var removeClients = _Clients.Values.Where(c => c.AppId == appId).ToList(); + var removeClients = _clients.Values.Where(c => c.AppId == appId).ToList(); if (removeClients.Count == 0) { return; } foreach (var webSocket in removeClients) { - _Clients.TryRemove(webSocket.Id, out WebsocketClient tryRemoveClient); + _clients.TryRemove(webSocket.Id, out WebsocketClient tryRemoveClient); } Task.Run(async () => { @@ -141,11 +140,9 @@ public void RemoveAppClients(string appId, WebSocketCloseStatus? closeStatus, st { try { - if (webSocket.Client.State == WebSocketState.Open) - { - await webSocket.Client.CloseAsync(closeStatus.HasValue ? closeStatus.Value : WebSocketCloseStatus.Empty, closeDesc, CancellationToken.None); - webSocket.Client.Dispose(); - } + if (webSocket.Client.State != WebSocketState.Open) continue; + await webSocket.Client.CloseAsync(closeStatus ?? WebSocketCloseStatus.Empty, closeDesc, CancellationToken.None); + webSocket.Client.Dispose(); } catch (Exception ex) { @@ -157,13 +154,13 @@ public void RemoveAppClients(string appId, WebSocketCloseStatus? closeStatus, st public WebsocketClient Get(string clientId) { - _Clients.TryGetValue(clientId, out WebsocketClient client); + _clients.TryGetValue(clientId, out WebsocketClient client); return client; } public ClientInfos Report() { - var clientInfos = _Clients + var clientInfos = _clients .Values .Select(c => new ClientInfo { Id = c.Id, @@ -187,14 +184,14 @@ public ClientInfos Report() public void SendActionToAll(WebsocketAction action) { - if (_Clients.Count == 0) + if (_clients.IsEmpty) { return; } var json = JsonConvert.SerializeObject(action); var data = Encoding.UTF8.GetBytes(json); - foreach (var webSocket in _Clients) + foreach (var webSocket in _clients) { if (webSocket.Value.Client.State == WebSocketState.Open) { @@ -206,12 +203,12 @@ public void SendActionToAll(WebsocketAction action) public void Clear() { - _Clients?.Clear(); + _clients?.Clear(); } public static IWebsocketCollection Instance { get; private set; } - public int Count => _Clients.Count; + public int Count => _clients.Count; } } \ No newline at end of file diff --git a/src/AgileConfig.Server.Apisite/Websocket/WebsocketHandlerMiddleware.cs b/src/AgileConfig.Server.Apisite/Websocket/WebsocketHandlerMiddleware.cs index 72c8e658..9d143d8d 100644 --- a/src/AgileConfig.Server.Apisite/Websocket/WebsocketHandlerMiddleware.cs +++ b/src/AgileConfig.Server.Apisite/Websocket/WebsocketHandlerMiddleware.cs @@ -163,7 +163,7 @@ private async Task Handle( var messageHandlers = new WebsocketMessageHandlers(configService, registerCenterService, serviceInfoService); var buffer = new byte[1024 * 2]; - WebSocketReceiveResult result = null; + WebSocketReceiveResult result; do { result = await socketClient.Client.ReceiveAsync(new ArraySegment(buffer), CancellationToken.None); @@ -196,10 +196,8 @@ private async Task ReadWebsocketMessage(WebSocketReceiveResult result, A if (result.MessageType == WebSocketMessageType.Text) { ms.Seek(0, SeekOrigin.Begin); - using (var reader = new StreamReader(ms, Encoding.UTF8)) - { - return await reader.ReadToEndAsync(); - } + using var reader = new StreamReader(ms, Encoding.UTF8); + return await reader.ReadToEndAsync(); } return ""; diff --git a/src/AgileConfig.Server.Common/DictionaryConvertToJson.cs b/src/AgileConfig.Server.Common/DictionaryConvertToJson.cs index c40e5fa7..496d1130 100644 --- a/src/AgileConfig.Server.Common/DictionaryConvertToJson.cs +++ b/src/AgileConfig.Server.Common/DictionaryConvertToJson.cs @@ -2,11 +2,10 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; namespace AgileConfig.Server.Common { - public class DictionaryConvertToJson + public static class DictionaryConvertToJson { public static string ToJson(IDictionary dict) { diff --git a/src/AgileConfig.Server.Common/Encrypt.cs b/src/AgileConfig.Server.Common/Encrypt.cs index f4e68448..7c431faa 100644 --- a/src/AgileConfig.Server.Common/Encrypt.cs +++ b/src/AgileConfig.Server.Common/Encrypt.cs @@ -7,7 +7,7 @@ namespace AgileConfig.Server.Common { public static class Encrypt { - private static readonly ThreadLocal Md5Instance = new ThreadLocal(MD5.Create); + private static readonly ThreadLocal Md5Instance = new(MD5.Create); public static string Md5(string txt) { var inputBytes = Encoding.ASCII.GetBytes(txt); diff --git a/src/AgileConfig.Server.Common/EnumExt.cs b/src/AgileConfig.Server.Common/EnumExt.cs index 60e39324..c2aaa18f 100644 --- a/src/AgileConfig.Server.Common/EnumExt.cs +++ b/src/AgileConfig.Server.Common/EnumExt.cs @@ -1,8 +1,6 @@ using System; -using System.Collections.Generic; using System.ComponentModel; using System.Linq; -using System.Text; namespace AgileConfig.Server.Common { @@ -16,7 +14,7 @@ public static string ToDesc(this Enum e) return ""; } var attrs = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); - if (attrs != null & attrs.Any()) + if (attrs.Length != 0) { return attrs.First().Description; } diff --git a/src/AgileConfig.Server.Common/EnvAccessor.cs b/src/AgileConfig.Server.Common/EnvAccessor.cs index 68da74bb..4351cb64 100644 --- a/src/AgileConfig.Server.Common/EnvAccessor.cs +++ b/src/AgileConfig.Server.Common/EnvAccessor.cs @@ -11,7 +11,7 @@ public interface IEnvAccessor public class EnvAccessor : IEnvAccessor { - private IHttpContextAccessor _httpContextAccessor; + private readonly IHttpContextAccessor _httpContextAccessor; public EnvAccessor(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; @@ -20,7 +20,7 @@ public string Env { get { - var env = _httpContextAccessor.HttpContext.Request.Query["env"].FirstOrDefault(); + var env = _httpContextAccessor.HttpContext?.Request.Query["env"].FirstOrDefault(); return env; } } diff --git a/src/AgileConfig.Server.Common/EventBus/TinyEventBus.cs b/src/AgileConfig.Server.Common/EventBus/TinyEventBus.cs index 5bd7362a..30ffb6a5 100644 --- a/src/AgileConfig.Server.Common/EventBus/TinyEventBus.cs +++ b/src/AgileConfig.Server.Common/EventBus/TinyEventBus.cs @@ -13,7 +13,7 @@ public class TinyEventBus : ITinyEventBus private readonly IServiceCollection _serviceCollection; private static readonly ConcurrentDictionary> EventHandlerMap = new (); private IServiceProvider _localServiceProvider; - private ILogger _logger; + private readonly ILogger _logger; public TinyEventBus(IServiceCollection serviceCollection) { @@ -30,9 +30,7 @@ public void Register() where T : class, IEventHandler } else { - EventHandlerMap.TryAdd(eventType, new List { - handlerType - }); + EventHandlerMap.TryAdd(eventType, [handlerType]); } _serviceCollection.AddScoped(); diff --git a/src/AgileConfig.Server.Common/FunctionUtil.cs b/src/AgileConfig.Server.Common/FunctionUtil.cs index 0e6510a8..ee971aa2 100644 --- a/src/AgileConfig.Server.Common/FunctionUtil.cs +++ b/src/AgileConfig.Server.Common/FunctionUtil.cs @@ -1,11 +1,9 @@ using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace AgileConfig.Server.Common { - public class FunctionUtil + public static class FunctionUtil { /// /// 尝试运行一个Func几次 @@ -18,7 +16,7 @@ public static T TRY(Func func, int tryCount) { if (func == null) { - throw new ArgumentNullException("func"); + throw new ArgumentNullException(nameof(func)); } T result = default(T); @@ -86,7 +84,7 @@ public static async Task EATAsync(Func> func, int tryCount) { if (func == null) { - throw new ArgumentNullException("func"); + throw new ArgumentNullException(nameof(func)); } T result = default(T); @@ -108,15 +106,14 @@ public static async Task EATAsync(Func> func, int tryCount) /// /// 尝试运行一个Action几次 /// - /// - /// + /// /// /// public static void TRY(Action act, int tryCount) { if (act == null) { - throw new ArgumentNullException("act"); + throw new ArgumentNullException(nameof(act)); } for (int i = 0; i < tryCount; i++) diff --git a/src/AgileConfig.Server.Common/Global.cs b/src/AgileConfig.Server.Common/Global.cs index 01ace172..6c22afb6 100644 --- a/src/AgileConfig.Server.Common/Global.cs +++ b/src/AgileConfig.Server.Common/Global.cs @@ -3,27 +3,11 @@ namespace AgileConfig.Server.Common { - public class Global + public static class Global { - private static IConfiguration _configuration; - public static IConfiguration Config - { - get { return _configuration; } - set - { - _configuration = value; - } - } + public static IConfiguration Config { get; set; } - private static ILoggerFactory _loggerFactory; - public static ILoggerFactory LoggerFactory - { - get { return _loggerFactory; } - set - { - _loggerFactory = value; - } - } + public static ILoggerFactory LoggerFactory { get; set; } public const string DefaultHttpClientName = "Default"; } diff --git a/src/AgileConfig.Server.Common/RestClient/DefaultRestClient.cs b/src/AgileConfig.Server.Common/RestClient/DefaultRestClient.cs index 7ebb44b4..8fe811fa 100644 --- a/src/AgileConfig.Server.Common/RestClient/DefaultRestClient.cs +++ b/src/AgileConfig.Server.Common/RestClient/DefaultRestClient.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; diff --git a/src/AgileConfig.Server.IService/IPremissionService.cs b/src/AgileConfig.Server.IService/IPermissionService.cs similarity index 86% rename from src/AgileConfig.Server.IService/IPremissionService.cs rename to src/AgileConfig.Server.IService/IPermissionService.cs index 80b96d84..8ec6f6b8 100644 --- a/src/AgileConfig.Server.IService/IPremissionService.cs +++ b/src/AgileConfig.Server.IService/IPermissionService.cs @@ -1,12 +1,9 @@ -using AgileConfig.Server.Data.Entity; -using System; -using System.Collections.Generic; -using System.Text; +using System.Collections.Generic; using System.Threading.Tasks; namespace AgileConfig.Server.IService { - public class Functions + public static class Functions { public const string App_Add = "APP_ADD"; public const string App_Edit = "APP_EDIT"; @@ -30,7 +27,7 @@ public class Functions public const string User_Delete = "USER_DELETE"; } - public interface IPremissionService + public interface IPermissionService { string EditConfigPermissionKey { get; } diff --git a/src/AgileConfig.Server.Service/PremissionService.cs b/src/AgileConfig.Server.Service/PermissionService.cs similarity index 94% rename from src/AgileConfig.Server.Service/PremissionService.cs rename to src/AgileConfig.Server.Service/PermissionService.cs index f2c28ac9..35ac41f7 100644 --- a/src/AgileConfig.Server.Service/PremissionService.cs +++ b/src/AgileConfig.Server.Service/PermissionService.cs @@ -7,7 +7,7 @@ namespace AgileConfig.Server.Service { - public class PermissionService : IPremissionService + public class PermissionService : IPermissionService { private readonly IUserRoleRepository _userRoleRepository; private readonly IUserAppAuthRepository _userAppAuthRepository; @@ -23,8 +23,8 @@ public PermissionService( _appRepository = appRepository; } - private static readonly List Template_SuperAdminPermissions = new List - { + private static readonly List Template_SuperAdminPermissions = + [ "GLOBAL_" + Functions.App_Add, "GLOBAL_" + Functions.App_Delete, "GLOBAL_" + Functions.App_Edit, @@ -43,11 +43,11 @@ public PermissionService( "GLOBAL_" + Functions.User_Add, "GLOBAL_" + Functions.User_Edit, - "GLOBAL_" + Functions.User_Delete, - }; + "GLOBAL_" + Functions.User_Delete + ]; - private static readonly List Template_NormalAdminPermissions = new List - { + private static readonly List Template_NormalAdminPermissions = + [ "GLOBAL_" + Functions.App_Add, "GLOBAL_" + Functions.Node_Add, "GLOBAL_" + Functions.Node_Delete, @@ -65,21 +65,21 @@ public PermissionService( "APP_{0}_" + Functions.Config_Delete, "APP_{0}_" + Functions.Config_Edit, "APP_{0}_" + Functions.Config_Offline, - "APP_{0}_" + Functions.Config_Publish, - }; + "APP_{0}_" + Functions.Config_Publish + ]; - private static readonly List Template_NormalUserPermissions_Edit = new List - { + private static readonly List Template_NormalUserPermissions_Edit = + [ "APP_{0}_" + Functions.Config_Add, "APP_{0}_" + Functions.Config_Delete, - "APP_{0}_" + Functions.Config_Edit, - }; + "APP_{0}_" + Functions.Config_Edit + ]; - private static readonly List Template_NormalUserPermissions_Publish = new List - { + private static readonly List Template_NormalUserPermissions_Publish = + [ "APP_{0}_" + Functions.Config_Offline, "APP_{0}_" + Functions.Config_Publish - }; + ]; private async Task> GetAdminUserFunctions(string userId) { @@ -181,7 +181,7 @@ private async Task> GetNormalUserFunctions(string userId) /// /// 获取角色权限的模板 /// - /// + /// /// public async Task> GetUserPermission(string userId) { @@ -210,6 +210,7 @@ public async Task> GetUserPermission(string userId) /// 获取被授权给用户的app /// /// + /// /// private async Task> GetUserAuthApp(string userId, string authPermissionKey) { diff --git a/src/AgileConfig.Server.Service/ServiceCollectionExt.cs b/src/AgileConfig.Server.Service/ServiceCollectionExt.cs index e4ac0946..ba797c69 100644 --- a/src/AgileConfig.Server.Service/ServiceCollectionExt.cs +++ b/src/AgileConfig.Server.Service/ServiceCollectionExt.cs @@ -25,7 +25,7 @@ public static void AddBusinessServices(this IServiceCollection sc) sc.AddScoped(); sc.AddScoped(); sc.AddScoped(); - sc.AddScoped(); + sc.AddScoped(); sc.AddScoped(); sc.AddScoped(); diff --git a/src/AgileConfig.Server.UI/react-ui-antd/package-lock.json b/src/AgileConfig.Server.UI/react-ui-antd/package-lock.json index b4c11db4..9c6e3950 100644 --- a/src/AgileConfig.Server.UI/react-ui-antd/package-lock.json +++ b/src/AgileConfig.Server.UI/react-ui-antd/package-lock.json @@ -2930,14 +2930,13 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "license": "MIT", + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -2953,14 +2952,23 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "license": "MIT", + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", @@ -2968,13 +2976,12 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "license": "MIT", + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@monaco-editor/loader": { @@ -3194,19 +3201,26 @@ "version": "7.29.0", "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-7.29.0.tgz", "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true, - "license": "MIT" + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/express": { "version": "4.17.14", @@ -3298,11 +3312,11 @@ "license": "MIT" }, "node_modules/@types/isomorphic-fetch": { - "version": "0.0.35", - "resolved": "https://registry.npmmirror.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz", - "integrity": "sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw==", + "version": "0.0.34", + "resolved": "https://registry.npmmirror.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.34.tgz", + "integrity": "sha512-BmJKuPCZCR6pbYYgi5nKFJrPC4pLoBgsi/B1nFN64Ba+hLLGUcKPIh7eVlR2xG763Ap08hgQafq/Wx4RFb0omQ==", "dev": true, - "license": "MIT" + "peer": true }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", @@ -3477,11 +3491,10 @@ } }, "node_modules/@types/react-redux": { - "version": "7.1.24", - "resolved": "https://registry.npmmirror.com/@types/react-redux/-/react-redux-7.1.24.tgz", - "integrity": "sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==", + "version": "7.1.34", + "resolved": "https://registry.npmmirror.com/@types/react-redux/-/react-redux-7.1.34.tgz", + "integrity": "sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/hoist-non-react-statics": "^3.3.0", "@types/react": "*", @@ -3489,18 +3502,6 @@ "redux": "^4.0.0" } }, - "node_modules/@types/react-redux/node_modules/@types/react": { - "version": "18.0.21", - "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.21.tgz", - "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, "node_modules/@types/react-router": { "version": "5.1.19", "resolved": "https://registry.npmmirror.com/@types/react-router/-/react-router-5.1.19.tgz", @@ -3591,6 +3592,19 @@ "@babel/runtime": "^7.7.6" } }, + "node_modules/@types/react-router-redux": { + "version": "5.0.27", + "resolved": "https://registry.npmmirror.com/@types/react-router-redux/-/react-router-redux-5.0.27.tgz", + "integrity": "sha512-qC5lbuP2K/kMR/HE3e5ltCJptyiQhmfV0wbklqcqWDbNdpJBDwUsBGP4f/0RDYJf09+OTbz43u6iG+8E0Zcwqw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0", + "redux": ">= 3.7.2" + } + }, "node_modules/@types/react-router/node_modules/@types/react": { "version": "18.0.21", "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.21.tgz", @@ -4953,6 +4967,115 @@ "umi": "3.x" } }, + "node_modules/@umijs/plugin-dva/node_modules/@types/isomorphic-fetch": { + "version": "0.0.35", + "resolved": "https://registry.npmmirror.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz", + "integrity": "sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw==", + "dev": true + }, + "node_modules/@umijs/plugin-dva/node_modules/connected-react-router": { + "version": "6.5.2", + "resolved": "https://registry.npmmirror.com/connected-react-router/-/connected-react-router-6.5.2.tgz", + "integrity": "sha512-qzsLPZCofSI80fwy+HgxtEgSGS4ndYUUZAWaw1dqaOGPLKX/FVwIOEb7q+hjHdnZ4v5pKZcNv5GG4urjujIoyA==", + "dev": true, + "dependencies": { + "immutable": "^3.8.1", + "prop-types": "^15.7.2", + "seamless-immutable": "^7.1.3" + }, + "peerDependencies": { + "history": "^4.7.2", + "react": "^16.4.0", + "react-redux": "^6.0.0 || ^7.1.0", + "react-router": "^4.3.1 || ^5.0.0", + "redux": "^3.6.0 || ^4.0.0" + } + }, + "node_modules/@umijs/plugin-dva/node_modules/dva": { + "version": "2.6.0-beta.23", + "resolved": "https://registry.npmmirror.com/dva/-/dva-2.6.0-beta.23.tgz", + "integrity": "sha512-noeOz3Erxpc6YLEsyyS//zGszeRYWKEvZoeCZ0LaCvWrV7Cxah9Xt/I9V1SS9eYDySaSgTUOoU+dLweQpCScAA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "@types/isomorphic-fetch": "^0.0.35", + "@types/react-redux": "^7.1.0", + "@types/react-router-dom": "^5.1.2", + "connected-react-router": "6.5.2", + "dva-core": "2.0.4", + "global": "^4.3.2", + "history": "^4.7.2", + "invariant": "^2.2.4", + "isomorphic-fetch": "^2.2.1", + "react-redux": "^7.1.0", + "react-router-dom": "^5.1.2", + "redux": "^4.0.1" + }, + "peerDependencies": { + "react": "^16.8.4", + "react-dom": "^16.8.4" + } + }, + "node_modules/@umijs/plugin-dva/node_modules/dva-core": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-2.0.4.tgz", + "integrity": "sha512-Zh39llFyItu9HKXKfCZVf9UFtDTcypdAjGBew1S+wK8BGVzFpm1GPTdd6uIMeg7O6STtCvt2Qv+RwUut1GFynA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "flatten": "^1.0.2", + "global": "^4.3.2", + "invariant": "^2.2.1", + "is-plain-object": "^2.0.3", + "redux-saga": "^0.16.0", + "warning": "^3.0.0" + }, + "peerDependencies": { + "redux": "4.x" + } + }, + "node_modules/@umijs/plugin-dva/node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmmirror.com/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@umijs/plugin-dva/node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/@umijs/plugin-dva/node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/@umijs/plugin-esbuild": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/@umijs/plugin-esbuild/-/plugin-esbuild-1.4.1.tgz", @@ -5267,20 +5390,6 @@ "node": ">=0.10.0" } }, - "node_modules/@umijs/renderer-react/node_modules/react-dom": { - "version": "16.14.0", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - }, - "peerDependencies": { - "react": "^16.14.0" - } - }, "node_modules/@umijs/renderer-react/node_modules/react-router-config": { "version": "5.1.1", "resolved": "https://registry.npmmirror.com/react-router-config/-/react-router-config-5.1.1.tgz", @@ -5294,17 +5403,6 @@ "react-router": ">=5" } }, - "node_modules/@umijs/renderer-react/node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "node_modules/@umijs/renderer-react/node_modules/use-subscription": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/use-subscription/-/use-subscription-1.5.1.tgz", @@ -5403,96 +5501,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@umijs/test/node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@umijs/test/node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@umijs/test/node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@umijs/test/node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@umijs/test/node_modules/babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/@umijs/test/node_modules/core-js": { "version": "3.8.2", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.8.2.tgz", @@ -5645,6 +5653,164 @@ "dev": true, "license": "ISC" }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "peer": true + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", @@ -6466,36 +6632,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/babel-jest/node_modules/@babel/core": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, "node_modules/babel-jest/node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", @@ -7058,9 +7194,9 @@ "license": "(MIT AND Zlib)" }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.24.2", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -7069,14 +7205,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -7276,9 +7415,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==", + "version": "1.0.30001676", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001676.tgz", + "integrity": "sha512-Qz6zwGCiPghQXGJvgQAem79esjitvJ+CxSbSQkW9H/UX5hg8XM88d4lp2W+MEQ81j+Hip58Il+jGVdazk1z9cw==", "funding": [ { "type": "opencollective", @@ -7287,9 +7426,12 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/capture-exit": { "version": "2.0.0", @@ -7606,6 +7748,15 @@ "dev": true, "license": "ISC" }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz", @@ -8014,25 +8165,6 @@ "typedarray": "^0.0.6" } }, - "node_modules/connected-react-router": { - "version": "6.5.2", - "resolved": "https://registry.npmmirror.com/connected-react-router/-/connected-react-router-6.5.2.tgz", - "integrity": "sha512-qzsLPZCofSI80fwy+HgxtEgSGS4ndYUUZAWaw1dqaOGPLKX/FVwIOEb7q+hjHdnZ4v5pKZcNv5GG4urjujIoyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "immutable": "^3.8.1", - "prop-types": "^15.7.2", - "seamless-immutable": "^7.1.3" - }, - "peerDependencies": { - "history": "^4.7.2", - "react": "^16.4.0", - "react-redux": "^6.0.0 || ^7.1.0", - "react-router": "^4.3.1 || ^5.0.0", - "redux": "^3.6.0 || ^4.0.0" - } - }, "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz", @@ -9046,37 +9178,37 @@ "license": "MIT" }, "node_modules/dva": { - "version": "2.6.0-beta.22", - "resolved": "https://registry.npmmirror.com/dva/-/dva-2.6.0-beta.22.tgz", - "integrity": "sha512-Q19fqiQxtl9L4a/woKoLTStagZR3QxTUEHuFhYBe0RLAf514HEuPmJXQrDz4p+QggNpTaI8lUzzId2TzntAFcQ==", + "version": "2.5.0-beta.2", + "resolved": "https://registry.npmmirror.com/dva/-/dva-2.5.0-beta.2.tgz", + "integrity": "sha512-kc2+CHhF1cNIU3Rg1miMhHgOKJ/VDrq9d6ynVBZf1EN2YKWU3MVFq/uTTBqMr2qkR0m9f8VKHOFmfKLtfMI93Q==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.0.0", - "@types/isomorphic-fetch": "^0.0.35", - "@types/react-redux": "^7.1.0", - "@types/react-router-dom": "^5.1.2", - "connected-react-router": "6.5.2", - "dva-core": "2.0.4", + "@types/isomorphic-fetch": "^0.0.34", + "@types/react-router-dom": "^4.2.7", + "@types/react-router-redux": "^5.0.13", + "dva-core": "^1.5.0-beta.2", "global": "^4.3.2", - "history": "^4.7.2", - "invariant": "^2.2.4", + "history": "^4.6.3", + "invariant": "^2.2.2", "isomorphic-fetch": "^2.2.1", - "react-redux": "^7.1.0", - "react-router-dom": "^5.1.2", - "redux": "^4.0.1" + "react-redux": "^5.0.5", + "react-router-dom": "^4.1.2", + "react-router-redux": "5.0.0-alpha.9", + "redux": "^3.7.2" }, "peerDependencies": { - "react": "^16.8.4", - "react-dom": "^16.8.4" + "react": "15.x || ^16.0.0-0", + "react-dom": "15.x || ^16.0.0-0" } }, "node_modules/dva-core": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-2.0.4.tgz", - "integrity": "sha512-Zh39llFyItu9HKXKfCZVf9UFtDTcypdAjGBew1S+wK8BGVzFpm1GPTdd6uIMeg7O6STtCvt2Qv+RwUut1GFynA==", + "version": "1.6.0-beta.7", + "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-1.6.0-beta.7.tgz", + "integrity": "sha512-e+0yOEWUK+XbnqflX+KXoLZDGxn+kLKgcT6XYT8GyRe0xcbmLEbwDZO0DXUkdsbxfqSOlLkIprMUoYJ3D5B4Gg==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.0.0", "flatten": "^1.0.2", @@ -9128,71 +9260,135 @@ "dva-core": "^1.1.0 | ^1.5.0-0 | ^1.6.0-0" } }, - "node_modules/dva/node_modules/@types/react": { - "version": "18.0.21", - "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.21.tgz", - "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", + "node_modules/dva/node_modules/@types/react-router-dom": { + "version": "4.3.5", + "resolved": "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-4.3.5.tgz", + "integrity": "sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "@types/history": "*", + "@types/react": "*", + "@types/react-router": "*" } }, - "node_modules/dva/node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "node_modules/dva/node_modules/dva-core": { + "version": "1.5.0-beta.2", + "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-1.5.0-beta.2.tgz", + "integrity": "sha512-xmtr/J63EZXBdVXNBW+QCD7p9CaE8kAo2U1faRyv3PIGcy0G3Y6IBDNtoBB/Cj3nzk/jvX0dv96Hnh1kpSnI7Q==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" + "@babel/runtime": "^7.0.0", + "flatten": "^1.0.2", + "global": "^4.3.2", + "invariant": "^2.2.1", + "is-plain-object": "^2.0.3", + "redux": "^3.7.1", + "redux-saga": "^0.16.0", + "warning": "^3.0.0" + }, + "peerDependencies": { + "redux": "3.x" + } + }, + "node_modules/dva/node_modules/react-redux": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/react-redux/-/react-redux-5.1.2.tgz", + "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.1.2", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.1", + "react-is": "^16.6.0", + "react-lifecycles-compat": "^3.0.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0", + "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" } }, "node_modules/dva/node_modules/react-router": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/react-router/-/react-router-5.3.3.tgz", - "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-4.3.1.tgz", + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "prop-types": "^15.6.1", + "warning": "^4.0.1" }, "peerDependencies": { "react": ">=15" } }, "node_modules/dva/node_modules/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-4.3.1.tgz", + "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", + "history": "^4.7.2", + "invariant": "^2.2.4", "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.3", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" }, "peerDependencies": { "react": ">=15" } }, + "node_modules/dva/node_modules/react-router-dom/node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/dva/node_modules/react-router/node_modules/hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", + "dev": true, + "peer": true + }, + "node_modules/dva/node_modules/react-router/node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/dva/node_modules/redux": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "dev": true, + "peer": true, + "dependencies": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" + } + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -9233,10 +9429,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.264", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", - "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==", - "license": "ISC" + "version": "1.5.50", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", + "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -9329,6 +9524,28 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enhanced-resolve/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmmirror.com/enquirer/-/enquirer-2.3.6.tgz", @@ -9567,10 +9784,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "license": "MIT", + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "engines": { "node": ">=6" } @@ -9956,7 +10172,6 @@ "version": "5.1.1", "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "devOptional": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -9970,7 +10185,6 @@ "version": "4.3.0", "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "devOptional": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -10149,7 +10363,6 @@ "version": "4.3.0", "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "devOptional": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -10162,7 +10375,6 @@ "version": "5.3.0", "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "devOptional": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -11367,12 +11579,17 @@ "node": ">= 6" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true + }, "node_modules/global": { "version": "4.4.0", "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", "dev": true, - "license": "MIT", "dependencies": { "min-document": "^2.19.0", "process": "^0.11.10" @@ -11457,10 +11674,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "license": "ISC" + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/growly": { "version": "1.3.0", @@ -12056,7 +12272,6 @@ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-3.8.2.tgz", "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14068,6 +14283,15 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, "node_modules/loader-utils": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", @@ -14101,6 +14325,13 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "peer": true + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -14623,7 +14854,6 @@ "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -14633,7 +14863,6 @@ "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -14675,7 +14904,6 @@ "version": "0.4.1", "resolved": "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.1", @@ -14686,20 +14914,6 @@ "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/mini-create-react-context/node_modules/react": { - "version": "16.14.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -15001,6 +15215,12 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "peer": true + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", @@ -15203,10 +15423,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "license": "MIT" + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/normalize-package-data": { "version": "3.0.3", @@ -18426,7 +18645,6 @@ "resolved": "https://registry.npmmirror.com/react-redux/-/react-redux-7.2.9.tgz", "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -18451,8 +18669,7 @@ "version": "17.0.2", "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/react-refresh": { "version": "0.10.0", @@ -18502,44 +18719,56 @@ "react": ">=15" } }, - "node_modules/react-router-dom/node_modules/react": { - "version": "16.14.0", - "license": "MIT", + "node_modules/react-router-redux": { + "version": "5.0.0-alpha.9", + "resolved": "https://registry.npmmirror.com/react-router-redux/-/react-router-redux-5.0.0-alpha.9.tgz", + "integrity": "sha512-euSgNIANnRXr4GydIuwA7RZCefrLQzIw5WdXspS8NPYbV+FxrKSS9MKG7U9vb6vsKHONnA4VxrVNWfnMUnUQAw==", + "deprecated": "This project is no longer maintained.", + "dev": true, "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "history": "^4.7.2", + "prop-types": "^15.6.0", + "react-router": "^4.2.0" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "react": ">=15" } }, - "node_modules/react-router/node_modules/mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "license": "MIT", + "node_modules/react-router-redux/node_modules/hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", + "dev": true, + "peer": true + }, + "node_modules/react-router-redux/node_modules/react-router": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-4.3.1.tgz", + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", + "dev": true, + "peer": true, "dependencies": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" }, "peerDependencies": { - "prop-types": "^15.0.0", - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "react": ">=15" } }, - "node_modules/react-router/node_modules/react": { - "version": "16.14.0", - "license": "MIT", + "node_modules/react-router-redux/node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - }, - "engines": { - "node": ">=0.10.0" + "loose-envify": "^1.0.0" } }, "node_modules/react-side-effect": { @@ -18738,6 +18967,40 @@ "node": "*" } }, + "node_modules/redbox-react": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/redbox-react/-/redbox-react-1.6.0.tgz", + "integrity": "sha512-mLjM5eYR41yOp5YKHpd3syFeGq6B4Wj5vZr64nbLvTZW5ZLff4LYk7VE4ITpVxkZpCY6OZuqh0HiP3A3uEaCpg==", + "dev": true, + "peer": true, + "dependencies": { + "error-stack-parser": "^1.3.6", + "object-assign": "^4.0.1", + "prop-types": "^15.5.4", + "sourcemapped-stacktrace": "^1.1.6" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0-beta || ^16.0.0", + "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0-beta || ^16.0.0" + } + }, + "node_modules/redbox-react/node_modules/error-stack-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz", + "integrity": "sha512-xhuSYd8wLgOXwNgjcPeXMPL/IiiA1Huck+OPvClpJViVNNlJVtM41o+1emp7bPvlCJwCatFX2DWc05/DgfbWzA==", + "dev": true, + "peer": true, + "dependencies": { + "stackframe": "^0.3.1" + } + }, + "node_modules/redbox-react/node_modules/stackframe": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-0.3.1.tgz", + "integrity": "sha512-XmoiF4T5nuWEp2x2w92WdGjdHGY/cZa6LIbRsDRQR/Xlk4uW0PAUlH1zJYVffocwKpCdwyuypIp25xsSXEtZHw==", + "dev": true, + "peer": true + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz", @@ -18766,11 +19029,10 @@ } }, "node_modules/redux": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.9.2" } @@ -18779,8 +19041,7 @@ "version": "0.16.2", "resolved": "https://registry.npmmirror.com/redux-saga/-/redux-saga-0.16.2.tgz", "integrity": "sha512-iIjKnRThI5sKPEASpUvySemjzwqwI13e3qP7oLub+FycCRDysLSAOwt958niZW6LhxfmS6Qm1BzbU70w/Koc4w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/regenerate": { "version": "1.4.2", @@ -19898,10 +20159,9 @@ } }, "node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "license": "MIT", + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -19928,8 +20188,7 @@ "version": "7.1.4", "resolved": "https://registry.npmmirror.com/seamless-immutable/-/seamless-immutable-7.1.4.tgz", "integrity": "sha512-XiUO1QP4ki4E2PHegiGAlu6r82o5A+6tRh7IkGGTVg/h+UoeX4nFBeCGPOhb4CYjvkqsfm/TUtvOMYC1xmV30A==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/semver": { "version": "6.3.0", @@ -20002,6 +20261,15 @@ "node": ">=4" } }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", @@ -20403,6 +20671,26 @@ "dev": true, "license": "MIT" }, + "node_modules/sourcemapped-stacktrace": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.11.tgz", + "integrity": "sha512-O0pcWjJqzQFVsisPlPXuNawJHHg9N9UgpJ/aDmvi9+vnS3x1C0NhwkVFzzZ1VN0Xo+bekyweoqYvBw5ZBKiNnQ==", + "dev": true, + "peer": true, + "dependencies": { + "source-map": "0.5.6" + } + }, + "node_modules/sourcemapped-stacktrace/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -21200,6 +21488,16 @@ "prettier": "^2.1.1" } }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -21390,6 +21688,108 @@ "node": ">=10" } }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/terser/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", @@ -22499,9 +22899,9 @@ "license": "MIT" }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -22510,25 +22910,27 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" } }, "node_modules/update-browserslist-db/node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "license": "ISC" + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/uppercamelcase": { "version": "3.0.0", @@ -22913,6 +23315,19 @@ "loose-envify": "^1.0.0" } }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", @@ -22933,6 +23348,52 @@ "node": ">=10.4" } }, + "node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, "node_modules/webpack-chain": { "version": "6.5.1", "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", @@ -22969,6 +23430,42 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "peer": true + }, + "node_modules/webpack/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -25243,13 +25740,13 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "requires": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { @@ -25258,9 +25755,19 @@ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" + }, + "@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } }, "@jridgewell/sourcemap-codec": { "version": "1.4.14", @@ -25268,12 +25775,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@monaco-editor/loader": { @@ -25446,17 +25953,25 @@ "version": "7.29.0", "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-7.29.0.tgz", "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "dev": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" } }, + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "peer": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "@types/express": { "version": "4.17.14", @@ -25543,10 +26058,11 @@ "dev": true }, "@types/isomorphic-fetch": { - "version": "0.0.35", - "resolved": "https://registry.npmmirror.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz", - "integrity": "sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw==", - "dev": true + "version": "0.0.34", + "resolved": "https://registry.npmmirror.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.34.tgz", + "integrity": "sha512-BmJKuPCZCR6pbYYgi5nKFJrPC4pLoBgsi/B1nFN64Ba+hLLGUcKPIh7eVlR2xG763Ap08hgQafq/Wx4RFb0omQ==", + "dev": true, + "peer": true }, "@types/istanbul-lib-coverage": { "version": "2.0.4", @@ -25702,28 +26218,15 @@ } }, "@types/react-redux": { - "version": "7.1.24", - "resolved": "https://registry.npmmirror.com/@types/react-redux/-/react-redux-7.1.24.tgz", - "integrity": "sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==", + "version": "7.1.34", + "resolved": "https://registry.npmmirror.com/@types/react-redux/-/react-redux-7.1.34.tgz", + "integrity": "sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==", "dev": true, "requires": { "@types/hoist-non-react-statics": "^3.3.0", "@types/react": "*", "hoist-non-react-statics": "^3.3.0", "redux": "^4.0.0" - }, - "dependencies": { - "@types/react": { - "version": "18.0.21", - "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.21.tgz", - "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - } } }, "@types/react-router": { @@ -25823,6 +26326,19 @@ } } }, + "@types/react-router-redux": { + "version": "5.0.27", + "resolved": "https://registry.npmmirror.com/@types/react-router-redux/-/react-router-redux-5.0.27.tgz", + "integrity": "sha512-qC5lbuP2K/kMR/HE3e5ltCJptyiQhmfV0wbklqcqWDbNdpJBDwUsBGP4f/0RDYJf09+OTbz43u6iG+8E0Zcwqw==", + "dev": true, + "peer": true, + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0", + "redux": ">= 3.7.2" + } + }, "@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz", @@ -26774,6 +27290,97 @@ "dva": "^2.6.0-beta.20", "dva-immer": "^0.5.2", "dva-loading": "^3.0.20" + }, + "dependencies": { + "@types/isomorphic-fetch": { + "version": "0.0.35", + "resolved": "https://registry.npmmirror.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz", + "integrity": "sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw==", + "dev": true + }, + "connected-react-router": { + "version": "6.5.2", + "resolved": "https://registry.npmmirror.com/connected-react-router/-/connected-react-router-6.5.2.tgz", + "integrity": "sha512-qzsLPZCofSI80fwy+HgxtEgSGS4ndYUUZAWaw1dqaOGPLKX/FVwIOEb7q+hjHdnZ4v5pKZcNv5GG4urjujIoyA==", + "dev": true, + "requires": { + "immutable": "^3.8.1", + "prop-types": "^15.7.2", + "seamless-immutable": "^7.1.3" + } + }, + "dva": { + "version": "2.6.0-beta.23", + "resolved": "https://registry.npmmirror.com/dva/-/dva-2.6.0-beta.23.tgz", + "integrity": "sha512-noeOz3Erxpc6YLEsyyS//zGszeRYWKEvZoeCZ0LaCvWrV7Cxah9Xt/I9V1SS9eYDySaSgTUOoU+dLweQpCScAA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "@types/isomorphic-fetch": "^0.0.35", + "@types/react-redux": "^7.1.0", + "@types/react-router-dom": "^5.1.2", + "connected-react-router": "6.5.2", + "dva-core": "2.0.4", + "global": "^4.3.2", + "history": "^4.7.2", + "invariant": "^2.2.4", + "isomorphic-fetch": "^2.2.1", + "react-redux": "^7.1.0", + "react-router-dom": "^5.1.2", + "redux": "^4.0.1" + } + }, + "dva-core": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-2.0.4.tgz", + "integrity": "sha512-Zh39llFyItu9HKXKfCZVf9UFtDTcypdAjGBew1S+wK8BGVzFpm1GPTdd6uIMeg7O6STtCvt2Qv+RwUut1GFynA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "flatten": "^1.0.2", + "global": "^4.3.2", + "invariant": "^2.2.1", + "is-plain-object": "^2.0.3", + "redux-saga": "^0.16.0", + "warning": "^3.0.0" + } + }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmmirror.com/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } } }, "@umijs/plugin-esbuild": { @@ -27032,16 +27639,6 @@ "prop-types": "^15.6.2" } }, - "react-dom": { - "version": "16.14.0", - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, "react-router-config": { "version": "5.1.1", "resolved": "https://registry.npmmirror.com/react-router-config/-/react-router-config-5.1.1.tgz", @@ -27050,16 +27647,6 @@ "@babel/runtime": "^7.1.2" } }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "use-subscription": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/use-subscription/-/use-subscription-1.5.1.tgz", @@ -27137,70 +27724,6 @@ "semver": "^6.3.0" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, "core-js": { "version": "3.8.2", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.8.2.tgz", @@ -27321,6 +27844,164 @@ } } }, + "@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "peer": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "peer": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "peer": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "peer": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "peer": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "peer": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "peer": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "peer": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "peer": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "peer": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "peer": true + }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", @@ -27920,28 +28601,6 @@ "slash": "^3.0.0" }, "dependencies": { - "@babel/core": { - "version": "7.18.6", - "dev": true, - "peer": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, "@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", @@ -28387,14 +29046,14 @@ } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.24.2", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" } }, "bser": { @@ -28523,9 +29182,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==" + "version": "1.0.30001676", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001676.tgz", + "integrity": "sha512-Qz6zwGCiPghQXGJvgQAem79esjitvJ+CxSbSQkW9H/UX5hg8XM88d4lp2W+MEQ81j+Hip58Il+jGVdazk1z9cw==" }, "capture-exit": { "version": "2.0.0", @@ -28756,6 +29415,12 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "peer": true + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz", @@ -29063,17 +29728,6 @@ "typedarray": "^0.0.6" } }, - "connected-react-router": { - "version": "6.5.2", - "resolved": "https://registry.npmmirror.com/connected-react-router/-/connected-react-router-6.5.2.tgz", - "integrity": "sha512-qzsLPZCofSI80fwy+HgxtEgSGS4ndYUUZAWaw1dqaOGPLKX/FVwIOEb7q+hjHdnZ4v5pKZcNv5GG4urjujIoyA==", - "dev": true, - "requires": { - "immutable": "^3.8.1", - "prop-types": "^15.7.2", - "seamless-immutable": "^7.1.3" - } - }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz", @@ -29785,88 +30439,155 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, "dva": { - "version": "2.6.0-beta.22", - "resolved": "https://registry.npmmirror.com/dva/-/dva-2.6.0-beta.22.tgz", - "integrity": "sha512-Q19fqiQxtl9L4a/woKoLTStagZR3QxTUEHuFhYBe0RLAf514HEuPmJXQrDz4p+QggNpTaI8lUzzId2TzntAFcQ==", + "version": "2.5.0-beta.2", + "resolved": "https://registry.npmmirror.com/dva/-/dva-2.5.0-beta.2.tgz", + "integrity": "sha512-kc2+CHhF1cNIU3Rg1miMhHgOKJ/VDrq9d6ynVBZf1EN2YKWU3MVFq/uTTBqMr2qkR0m9f8VKHOFmfKLtfMI93Q==", "dev": true, + "peer": true, "requires": { "@babel/runtime": "^7.0.0", - "@types/isomorphic-fetch": "^0.0.35", - "@types/react-redux": "^7.1.0", - "@types/react-router-dom": "^5.1.2", - "connected-react-router": "6.5.2", - "dva-core": "2.0.4", + "@types/isomorphic-fetch": "^0.0.34", + "@types/react-router-dom": "^4.2.7", + "@types/react-router-redux": "^5.0.13", + "dva-core": "^1.5.0-beta.2", "global": "^4.3.2", - "history": "^4.7.2", - "invariant": "^2.2.4", + "history": "^4.6.3", + "invariant": "^2.2.2", "isomorphic-fetch": "^2.2.1", - "react-redux": "^7.1.0", - "react-router-dom": "^5.1.2", - "redux": "^4.0.1" + "react-redux": "^5.0.5", + "react-router-dom": "^4.1.2", + "react-router-redux": "5.0.0-alpha.9", + "redux": "^3.7.2" }, "dependencies": { - "@types/react": { - "version": "18.0.21", - "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.21.tgz", - "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", + "@types/react-router-dom": { + "version": "4.3.5", + "resolved": "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-4.3.5.tgz", + "integrity": "sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==", "dev": true, + "peer": true, "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "@types/history": "*", + "@types/react": "*", + "@types/react-router": "*" } }, - "@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dva-core": { + "version": "1.5.0-beta.2", + "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-1.5.0-beta.2.tgz", + "integrity": "sha512-xmtr/J63EZXBdVXNBW+QCD7p9CaE8kAo2U1faRyv3PIGcy0G3Y6IBDNtoBB/Cj3nzk/jvX0dv96Hnh1kpSnI7Q==", "dev": true, + "peer": true, "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" + "@babel/runtime": "^7.0.0", + "flatten": "^1.0.2", + "global": "^4.3.2", + "invariant": "^2.2.1", + "is-plain-object": "^2.0.3", + "redux": "^3.7.1", + "redux-saga": "^0.16.0", + "warning": "^3.0.0" + } + }, + "react-redux": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/react-redux/-/react-redux-5.1.2.tgz", + "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==", + "dev": true, + "peer": true, + "requires": { + "@babel/runtime": "^7.1.2", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.1", + "react-is": "^16.6.0", + "react-lifecycles-compat": "^3.0.0" } }, "react-router": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/react-router/-/react-router-5.3.3.tgz", - "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-4.3.1.tgz", + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", "dev": true, + "peer": true, "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "prop-types": "^15.6.1", + "warning": "^4.0.1" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", + "dev": true, + "peer": true + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.0.0" + } + } } }, "react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-4.3.1.tgz", + "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", "dev": true, + "peer": true, "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", + "history": "^4.7.2", + "invariant": "^2.2.4", "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.3", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "redux": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "dev": true, + "peer": true, + "requires": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } } } }, "dva-core": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-2.0.4.tgz", - "integrity": "sha512-Zh39llFyItu9HKXKfCZVf9UFtDTcypdAjGBew1S+wK8BGVzFpm1GPTdd6uIMeg7O6STtCvt2Qv+RwUut1GFynA==", + "version": "1.6.0-beta.7", + "resolved": "https://registry.npmmirror.com/dva-core/-/dva-core-1.6.0-beta.7.tgz", + "integrity": "sha512-e+0yOEWUK+XbnqflX+KXoLZDGxn+kLKgcT6XYT8GyRe0xcbmLEbwDZO0DXUkdsbxfqSOlLkIprMUoYJ3D5B4Gg==", "dev": true, + "peer": true, "requires": { "@babel/runtime": "^7.0.0", "flatten": "^1.0.2", @@ -29936,9 +30657,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.264", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", - "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==" + "version": "1.5.50", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", + "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==" }, "elliptic": { "version": "6.5.4", @@ -30009,6 +30730,24 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "dependencies": { + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "peer": true + } + } + }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmmirror.com/enquirer/-/enquirer-2.3.6.tgz", @@ -30191,9 +30930,9 @@ } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" }, "escape-html": { "version": "1.0.3", @@ -30500,7 +31239,6 @@ "version": "5.1.1", "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "devOptional": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -30509,8 +31247,7 @@ "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "devOptional": true + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" } } }, @@ -30587,7 +31324,6 @@ "version": "4.3.0", "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "devOptional": true, "requires": { "estraverse": "^5.2.0" } @@ -30595,8 +31331,7 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "devOptional": true + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" }, "esutils": { "version": "2.0.3", @@ -31463,6 +32198,12 @@ "is-glob": "^4.0.1" } }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true + }, "global": { "version": "4.4.0", "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", @@ -31525,9 +32266,9 @@ } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "growly": { "version": "1.3.0", @@ -33369,6 +34110,12 @@ } } }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "peer": true + }, "loader-utils": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", @@ -33393,6 +34140,13 @@ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "peer": true + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -33763,14 +34517,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -33800,22 +34552,9 @@ "version": "0.4.1", "resolved": "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "dev": true, "requires": { "@babel/runtime": "^7.12.1", "tiny-warning": "^1.0.3" - }, - "dependencies": { - "react": { - "version": "16.14.0", - "dev": true, - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - } } }, "minimalistic-assert": { @@ -34040,6 +34779,12 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "peer": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", @@ -34201,9 +34946,9 @@ } }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "normalize-package-data": { "version": "3.0.3", @@ -36500,26 +37245,6 @@ "react-is": "^16.6.0", "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0" - }, - "dependencies": { - "mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - }, - "react": { - "version": "16.14.0", - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - } } }, "react-router-dom": { @@ -36534,15 +37259,51 @@ "react-router": "5.2.0", "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0" + } + }, + "react-router-redux": { + "version": "5.0.0-alpha.9", + "resolved": "https://registry.npmmirror.com/react-router-redux/-/react-router-redux-5.0.0-alpha.9.tgz", + "integrity": "sha512-euSgNIANnRXr4GydIuwA7RZCefrLQzIw5WdXspS8NPYbV+FxrKSS9MKG7U9vb6vsKHONnA4VxrVNWfnMUnUQAw==", + "dev": true, + "peer": true, + "requires": { + "history": "^4.7.2", + "prop-types": "^15.6.0", + "react-router": "^4.2.0" }, "dependencies": { - "react": { - "version": "16.14.0", + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", + "dev": true, + "peer": true + }, + "react-router": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-4.3.1.tgz", + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", + "dev": true, "peer": true, "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.0.0" } } } @@ -36700,6 +37461,38 @@ } } }, + "redbox-react": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/redbox-react/-/redbox-react-1.6.0.tgz", + "integrity": "sha512-mLjM5eYR41yOp5YKHpd3syFeGq6B4Wj5vZr64nbLvTZW5ZLff4LYk7VE4ITpVxkZpCY6OZuqh0HiP3A3uEaCpg==", + "dev": true, + "peer": true, + "requires": { + "error-stack-parser": "^1.3.6", + "object-assign": "^4.0.1", + "prop-types": "^15.5.4", + "sourcemapped-stacktrace": "^1.1.6" + }, + "dependencies": { + "error-stack-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz", + "integrity": "sha512-xhuSYd8wLgOXwNgjcPeXMPL/IiiA1Huck+OPvClpJViVNNlJVtM41o+1emp7bPvlCJwCatFX2DWc05/DgfbWzA==", + "dev": true, + "peer": true, + "requires": { + "stackframe": "^0.3.1" + } + }, + "stackframe": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-0.3.1.tgz", + "integrity": "sha512-XmoiF4T5nuWEp2x2w92WdGjdHGY/cZa6LIbRsDRQR/Xlk4uW0PAUlH1zJYVffocwKpCdwyuypIp25xsSXEtZHw==", + "dev": true, + "peer": true + } + } + }, "redent": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz", @@ -36722,9 +37515,9 @@ } }, "redux": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dev": true, "requires": { "@babel/runtime": "^7.9.2" @@ -37597,9 +38390,9 @@ } }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -37677,6 +38470,15 @@ } } }, + "serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "peer": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "serve-static": { "version": "1.15.0", "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", @@ -37983,6 +38785,25 @@ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, + "sourcemapped-stacktrace": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.11.tgz", + "integrity": "sha512-O0pcWjJqzQFVsisPlPXuNawJHHg9N9UgpJ/aDmvi9+vnS3x1C0NhwkVFzzZ1VN0Xo+bekyweoqYvBw5ZBKiNnQ==", + "dev": true, + "peer": true, + "requires": { + "source-map": "0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "dev": true, + "peer": true + } + } + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -38566,6 +39387,13 @@ "prettier": "^2.1.1" } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "peer": true + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -38716,6 +39544,65 @@ } } }, + "terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "dependencies": { + "acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "peer": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "terser": { + "version": "5.36.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "peer": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + } + } + }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz", @@ -39520,18 +40407,18 @@ "integrity": "sha512-AAn47ZncPvgBGOvMcn8tSRxsrqwf2VdAPxLASTuLJvZt4rhKfDvUkmYZLGfclImSfTVMv7tF4ynaVxin0JjDCA==" }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "dependencies": { "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" } } }, @@ -39823,6 +40710,16 @@ "loose-envify": "^1.0.0" } }, + "watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "peer": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", @@ -39838,6 +40735,63 @@ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true }, + "webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "peer": true, + "requires": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "peer": true + }, + "es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "peer": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "peer": true + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "peer": true + } + } + }, "webpack-chain": { "version": "6.5.1", "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", diff --git a/src/AgileConfig.Server.UI/react-ui-antd/src/pages/Apps/service.ts b/src/AgileConfig.Server.UI/react-ui-antd/src/pages/Apps/service.ts index 821578d9..7e2f7eba 100644 --- a/src/AgileConfig.Server.UI/react-ui-antd/src/pages/Apps/service.ts +++ b/src/AgileConfig.Server.UI/react-ui-antd/src/pages/Apps/service.ts @@ -41,7 +41,7 @@ export async function inheritancedApps(currentAppId: string) { } export async function enableOrdisableApp(appId:string) { - return request('app/DisableOrEanble', { + return request('app/DisableOrEnable', { method: 'POST', params: { id: appId diff --git a/test/ApiSiteTests/TestAppController.cs b/test/ApiSiteTests/TestAppController.cs index 267ebe2b..20c806eb 100644 --- a/test/ApiSiteTests/TestAppController.cs +++ b/test/ApiSiteTests/TestAppController.cs @@ -24,7 +24,7 @@ public async Task TestAdd() var appService = new Mock(); var logService = new Mock(); var userService = new Mock(); - var permissionService = new Mock(); + var permissionService = new Mock(); var eventBus = new Mock(); var ctl = new AgileConfig.Server.Apisite.Controllers.AppController(appService.Object, permissionService.Object, userService.Object, eventBus.Object); @@ -45,7 +45,7 @@ public async Task TestAdd() var jr = result as JsonResult; Assert.IsNotNull(jr.Value); Console.WriteLine(jr.Value.ToString()); - //Assert.IsTrue(jr.Value.ToString().Contains("ӦIdѴڣ")); + //Assert.IsTrue(jr.Value.ToString().Contains("Ӧ��Id�Ѵ��ڣ�����������")); App nullApp = null; appService.Setup(s => s.GetAsync("02")).ReturnsAsync(nullApp);