From b8dab5b6e07f330edf7098b6b84ad837e208c38d Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 7 Jan 2021 17:20:54 +0300 Subject: [PATCH 001/309] CmsKit - Remove Content value from list items --- .../Volo/CmsKit/Admin/Contents/ContentGetListDto.cs | 12 ++++++++++++ .../CmsKit/Admin/Contents/IContentAdminAppService.cs | 1 + .../Admin/CmsKitAdminApplicationAutoMapperProfile.cs | 1 + .../CmsKit/Admin/Contents/ContentAdminAppService.cs | 3 ++- .../CmsKit/Admin/Contents/ContentAdminController.cs | 2 +- 5 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentGetListDto.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentGetListDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentGetListDto.cs new file mode 100644 index 0000000000..ce1ca1e86c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentGetListDto.cs @@ -0,0 +1,12 @@ +using System; +using Volo.Abp.Application.Dtos; + +namespace Volo.CmsKit.Admin.Contents +{ + public class ContentGetListDto : EntityDto + { + public string EntityType { get; set; } + + public string EntityId { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs index 02b25aa16d..e910d42c2f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs @@ -7,6 +7,7 @@ namespace Volo.CmsKit.Admin.Contents public interface IContentAdminAppService : ICrudAppService< ContentDto, + ContentGetListDto, Guid, ContentGetListInput, ContentCreateDto, diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs index 4b7a6eb58f..1524fe6299 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs @@ -13,6 +13,7 @@ namespace Volo.CmsKit.Admin CreateMap(); CreateMap(MemberList.Destination); + CreateMap(MemberList.Destination); CreateMap(MemberList.Source); CreateMap(MemberList.Source); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs index 4695339fd7..5c058b5fe8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs @@ -14,6 +14,7 @@ namespace Volo.CmsKit.Admin.Contents CrudAppService< Content, ContentDto, + ContentGetListDto, Guid, ContentGetListInput, ContentCreateDto, @@ -51,7 +52,7 @@ namespace Volo.CmsKit.Admin.Contents await ContentManager.InsertAsync(entity); - return MapToGetListOutputDto(entity); + return MapToGetOutputDto(entity); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs index 935606b686..f519109022 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs @@ -48,7 +48,7 @@ namespace Volo.CmsKit.Admin.Contents [HttpGet] [Authorize(CmsKitAdminPermissions.Contents.Default)] - public Task> GetListAsync(ContentGetListInput input) + public Task> GetListAsync(ContentGetListInput input) { return ContentAdminAppService.GetListAsync(input); } From f2ee973860b464b37dd50cba0433665182a872b7 Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 8 Jan 2021 17:35:59 +0300 Subject: [PATCH 002/309] CmsKit - Initial of Tag Definitions --- .../CmsKit/Admin/Tags/ITagAdminAppService.cs | 3 ++ .../CmsKit/Admin/Tags/TagDefinitionDto.cs | 8 ++++ ...CmsKitAdminApplicationAutoMapperProfile.cs | 4 ++ .../CmsKit/Admin/Tags/TagAdminAppService.cs | 9 ++++- .../Volo/CmsKit/CmsKitDomainModule.cs | 18 +++++++++ .../Volo/CmsKit/CmsKitOptions.cs | 9 ++--- .../Volo/CmsKit/PolicySpecifiedDefinition.cs | 37 +++++++++++++++++++ .../CmsKit/Tags/DefaultTagDefinitionStore.cs | 33 +++++++++++++++++ .../Volo/CmsKit/Tags/ITagDefinitionStore.cs | 13 +++++++ .../Volo/CmsKit/Tags/ITagManager.cs | 3 ++ .../CmsKit/Tags/TagDefinitionDictionary.cs | 20 ++++++++++ .../Volo/CmsKit/Tags/TagDefiniton.cs | 27 ++++++++++++++ .../Volo/CmsKit/Tags/TagManager.cs | 14 ++++++- .../CmsKitDomainTestModule.cs | 1 - .../Tags/TagManager_Tests.cs | 10 +++++ .../CmsKitDataSeedContributor.cs | 18 ++++++++- .../Volo.CmsKit.TestBase/CmsKitTestData.cs | 2 + 17 files changed, 218 insertions(+), 11 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/ITagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/ITagAdminAppService.cs index e677a54c28..a5ae9d85d4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/ITagAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/ITagAdminAppService.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Threading.Tasks; using Volo.Abp.Application.Services; using Volo.CmsKit.Tags; @@ -6,5 +8,6 @@ namespace Volo.CmsKit.Admin.Tags { public interface ITagAdminAppService : ICrudAppService { + Task> GetTagDefinitionsAsync(); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs new file mode 100644 index 0000000000..b5abf8b69c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs @@ -0,0 +1,8 @@ +namespace Volo.CmsKit.Admin.Tags +{ + public class TagDefinitionDto + { + public string EntityType { get; set; } + public string DisplayName { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs index 4b7a6eb58f..c36a64ca84 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs @@ -1,8 +1,10 @@ using AutoMapper; +using Volo.CmsKit.Admin.Application.Contracts.Volo.CmsKit.Admin.Tags; using Volo.CmsKit.Admin.Contents; using Volo.CmsKit.Admin.Pages; using Volo.CmsKit.Contents; using Volo.CmsKit.Pages; +using Volo.CmsKit.Tags; namespace Volo.CmsKit.Admin { @@ -15,6 +17,8 @@ namespace Volo.CmsKit.Admin CreateMap(MemberList.Destination); CreateMap(MemberList.Source); CreateMap(MemberList.Source); + + CreateMap(MemberList.Destination); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs index cda45c23de..29fbb943bb 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs @@ -2,11 +2,9 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; -using Volo.CmsKit.Admin.Tags; using Volo.CmsKit.Permissions; using Volo.CmsKit.Tags; @@ -68,5 +66,12 @@ namespace Volo.CmsKit.Admin.Tags x.Name.ToLower().Contains(input.Filter) || x.EntityType.ToLower().Contains(input.Filter)); } + + public async Task> GetTagDefinitionsAsync() + { + var definitions = await TagManager.GetTagDefinitionsAsync(); + + return ObjectMapper.Map, List>(definitions); + } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs index b1937dd6e0..719a5bc215 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs @@ -1,6 +1,11 @@ using Volo.Abp.Domain; +using Volo.Abp.GlobalFeatures; +using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.Users; +using Volo.CmsKit.GlobalFeatures; +using Volo.CmsKit.Localization; +using Volo.CmsKit.Pages; using Volo.CmsKit.Reactions; namespace Volo.CmsKit @@ -28,7 +33,20 @@ namespace Volo.CmsKit options.Reactions.AddOrReplace(StandardReactions.HeartBroken); options.Reactions.AddOrReplace(StandardReactions.Rocket); options.Reactions.AddOrReplace(StandardReactions.Pray); + + if (GlobalFeatureManager.Instance.IsEnabled()) + { + if (GlobalFeatureManager.Instance.IsEnabled()) + { + options.Tags.AddOrReplace(typeof(Page).Name, L("Page")); + } + } }); } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs index cc69f715ce..20fde8704d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs @@ -1,16 +1,15 @@ using JetBrains.Annotations; using Volo.CmsKit.Reactions; +using Volo.CmsKit.Tags; namespace Volo.CmsKit { public class CmsKitOptions { [NotNull] - public ReactionDefinitionDictionary Reactions { get; } + public ReactionDefinitionDictionary Reactions { get; } = new ReactionDefinitionDictionary(); - public CmsKitOptions() - { - Reactions = new ReactionDefinitionDictionary(); - } + [NotNull] + public TagDefinitionDictionary Tags { get; } = new TagDefinitionDictionary(); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs new file mode 100644 index 0000000000..88fd6eb824 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs @@ -0,0 +1,37 @@ +using JetBrains.Annotations; +using Volo.Abp; +using Volo.Abp.Localization; + +namespace Volo.CmsKit.Domain.Volo.CmsKit +{ + public abstract class PolicySpecifiedDefinition + { + protected PolicySpecifiedDefinition() + { + } + + public PolicySpecifiedDefinition( + [CanBeNull] ILocalizableString displayName = null, + [CanBeNull] string createPolicy = null, + [CanBeNull] string updatePolicy = null, + [CanBeNull] string deletePolicy = null) + { + DisplayName = displayName; + CreatePolicy = createPolicy; + DeletePolicy = deletePolicy; + UpdatePolicy = updatePolicy; + } + + [CanBeNull] + public virtual ILocalizableString DisplayName { get; } + + [CanBeNull] + public virtual string CreatePolicy { get; set; } + + [CanBeNull] + public virtual string UpdatePolicy { get; set; } + + [CanBeNull] + public virtual string DeletePolicy { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs new file mode 100644 index 0000000000..b851c9af9c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -0,0 +1,33 @@ +using JetBrains.Annotations; +using Microsoft.Extensions.Options; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.DependencyInjection; + +namespace Volo.CmsKit.Tags +{ + public class DefaultTagDefinitionStore : ITagDefinitionStore, ITransientDependency + { + private readonly CmsKitOptions options; + + public DefaultTagDefinitionStore(IOptions options) + { + this.options = options.Value; + } + + public Task GetTagDefinitionOrNullAsync([NotNull] string entityType) + { + Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); + return Task.FromResult(options.Tags.GetOrDefault(entityType)); + } + + public Task> GetTagDefinitionsAsync() + { + return Task.FromResult(options.Tags.Values.ToList()); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs new file mode 100644 index 0000000000..9fa06f92d4 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs @@ -0,0 +1,13 @@ +using JetBrains.Annotations; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Volo.CmsKit.Tags +{ + public interface ITagDefinitionStore + { + Task> GetTagDefinitionsAsync(); + + Task GetTagDefinitionOrNullAsync([NotNull] string entityType); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs index 943fd6af00..23d34d6a19 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs @@ -1,5 +1,6 @@ using JetBrains.Annotations; using System; +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Services; @@ -26,5 +27,7 @@ namespace Volo.CmsKit.Tags [NotNull] string name, Guid? tenantId = null, CancellationToken cancellationToken = default); + + Task> GetTagDefinitionsAsync(CancellationToken cancellationToken = default); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs new file mode 100644 index 0000000000..dbbfd29219 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs @@ -0,0 +1,20 @@ +using JetBrains.Annotations; +using System.Collections.Generic; +using Volo.Abp.Localization; + +namespace Volo.CmsKit.Tags +{ + public class TagDefinitionDictionary : Dictionary + { + public void AddOrReplace( + [NotNull] string entityType, + [CanBeNull] ILocalizableString displayName = null, + [CanBeNull] string createPolicy = null, + [CanBeNull] string updatePolicy = null, + [CanBeNull] string deletePolicy = null + ) + { + this[entityType] = new TagDefiniton(entityType, displayName, createPolicy, updatePolicy, deletePolicy); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs new file mode 100644 index 0000000000..6ccff22f2c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs @@ -0,0 +1,27 @@ +using JetBrains.Annotations; +using Volo.Abp; +using Volo.Abp.Localization; +using Volo.CmsKit.Domain.Volo.CmsKit; + +namespace Volo.CmsKit.Tags +{ + public class TagDefiniton : PolicySpecifiedDefinition + { + public string EntityType { get; } + + public TagDefiniton() + { + } + + public TagDefiniton( + [NotNull] string entityType, + [CanBeNull] ILocalizableString displayName = null, + [CanBeNull] string createPolicy = null, + [CanBeNull] string updatePolicy = null, + [CanBeNull] string deletePolicy = null) : base(displayName, createPolicy, updatePolicy, deletePolicy) + { + EntityType = Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); + + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs index 042b4e27a9..0c2cbd63ed 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs @@ -1,5 +1,8 @@ using JetBrains.Annotations; +using Microsoft.Extensions.Options; using System; +using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; using Volo.Abp; @@ -10,10 +13,14 @@ namespace Volo.CmsKit.Tags public class TagManager : DomainService, ITagManager { private readonly ITagRepository _tagRepository; + private readonly ITagDefinitionStore _tagDefinitionStore; - public TagManager(ITagRepository tagRepository) + public TagManager( + ITagRepository tagRepository, + ITagDefinitionStore tagDefinitionStore) { _tagRepository = tagRepository; + _tagDefinitionStore = tagDefinitionStore; } public async Task GetOrAddAsync( @@ -70,5 +77,10 @@ namespace Volo.CmsKit.Tags return await _tagRepository.UpdateAsync(entity, cancellationToken: cancellationToken); } + + public Task> GetTagDefinitionsAsync(CancellationToken cancellationToken = default) + { + return _tagDefinitionStore.GetTagDefinitionsAsync(); + } } } \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/CmsKitDomainTestModule.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/CmsKitDomainTestModule.cs index fc41440757..b5af93fc74 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/CmsKitDomainTestModule.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/CmsKitDomainTestModule.cs @@ -12,6 +12,5 @@ namespace Volo.CmsKit )] public class CmsKitDomainTestModule : AbpModule { - } } diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs index aa31b015cc..0fe8d5ddb4 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs @@ -100,5 +100,15 @@ namespace Volo.CmsKit.Tags Should.Throw(async () => await _tagManager.UpdateAsync(tag.Id, newName)); } + + [Fact] + public async Task ShouldGetTagDefinitionsProperly_WithoutParameter() + { + var definitions = await _tagManager.GetTagDefinitionsAsync(); + + definitions.ShouldNotBeNull(); + definitions.Count.ShouldBeGreaterThan(1); + definitions.ShouldContain(x => x.EntityType == _cmsKitTestData.TagDefinition_1_EntityType); + } } } \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index 46a552641b..d9f671229d 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -1,4 +1,5 @@ -using System; +using Microsoft.Extensions.Options; +using System; using System.Linq; using System.Threading.Tasks; using Volo.Abp.Data; @@ -29,6 +30,8 @@ namespace Volo.CmsKit private readonly IEntityTagRepository _entityTagRepository; private readonly ITagManager _tagManager; private readonly IPageRepository _pageRepository; + private readonly IOptions _options; + public CmsKitDataSeedContributor( IGuidGenerator guidGenerator, ICmsUserRepository cmsUserRepository, @@ -40,7 +43,8 @@ namespace Volo.CmsKit IContentRepository contentRepository, ITagManager tagManager, IEntityTagRepository entityTagRepository, - IPageRepository pageRepository) + IPageRepository pageRepository, + IOptions options) { _guidGenerator = guidGenerator; _cmsUserRepository = cmsUserRepository; @@ -53,6 +57,7 @@ namespace Volo.CmsKit _tagManager = tagManager; _entityTagRepository = entityTagRepository; _pageRepository = pageRepository; + _options = options; } public async Task SeedAsync(DataSeedContext context) @@ -72,9 +77,18 @@ namespace Volo.CmsKit await SeedTagsAsync(); await SeedPagesAsync(); + + await ConfigureCmsKitOptionsAsync(); } } + private Task ConfigureCmsKitOptionsAsync() + { + _options.Value.Tags.AddOrReplace(_cmsKitTestData.TagDefinition_1_EntityType); + + return Task.CompletedTask; + } + private async Task SeedUsersAsync() { await _cmsUserRepository.InsertAsync(new CmsUser(new UserData(_cmsKitTestData.User1Id, "user1", diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs index 7433759f40..c07b038714 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs @@ -59,5 +59,7 @@ namespace Volo.CmsKit public Guid Page_2_Id { get; } = Guid.NewGuid(); public string Page_2_Content => Content_2; + + public string TagDefinition_1_EntityType => "My.Namespace.CustomType"; } } From 584306b171d385bbae096b6f6d4e8ab58a35a5eb Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 8 Jan 2021 17:53:33 +0300 Subject: [PATCH 003/309] CmsKit - TagAdminController implementation --- .../CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs | 2 +- .../Volo/CmsKit/Admin/Tags/TagAdminController.cs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs index c36a64ca84..5edcfd8a04 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs @@ -1,7 +1,7 @@ using AutoMapper; -using Volo.CmsKit.Admin.Application.Contracts.Volo.CmsKit.Admin.Tags; using Volo.CmsKit.Admin.Contents; using Volo.CmsKit.Admin.Pages; +using Volo.CmsKit.Admin.Tags; using Volo.CmsKit.Contents; using Volo.CmsKit.Pages; using Volo.CmsKit.Tags; diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs index cc755fa63f..afc9a83fc8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.Application.Dtos; @@ -60,5 +61,10 @@ namespace Volo.CmsKit.Admin.Tags { return TagAdminAppService.UpdateAsync(id, input); } + + public Task> GetTagDefinitionsAsync() + { + return TagAdminAppService.GetTagDefinitionsAsync(); + } } } From 88d990fa9cf809dd5836c314f13b4012dd801b5a Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 11 Jan 2021 11:38:33 +0300 Subject: [PATCH 004/309] CmsKit - Add EntityNotTaggableException --- .../Volo/CmsKit/CmsKitErrorCodes.cs | 1 + .../CmsKit/Tags/DefaultTagDefinitionStore.cs | 5 +++++ .../CmsKit/Tags/EntityNotTaggableException.cs | 19 +++++++++++++++++++ .../Volo/CmsKit/Tags/ITagDefinitionStore.cs | 2 ++ .../Volo/CmsKit/Tags/TagManager.cs | 5 +++++ 5 files changed, 32 insertions(+) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs index 4b57a5a52e..59b78259fb 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs @@ -4,5 +4,6 @@ { public const string TagAlreadyExist = "CmsKit:0001"; public const string ContentAlreadyExist = "CmsKit:0002"; + public const string EntityNotTaggable = "CmsKit:0003"; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs index b851c9af9c..5b30ab08b9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -29,5 +29,10 @@ namespace Volo.CmsKit.Tags { return Task.FromResult(options.Tags.Values.ToList()); } + + public Task IsDefinedAsync([NotNull] string entityType) + { + return Task.FromResult(options.Tags.ContainsKey(entityType)); + } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs new file mode 100644 index 0000000000..1987bef869 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs @@ -0,0 +1,19 @@ +using System; +using Volo.Abp; + +namespace Volo.CmsKit.Tags +{ + [Serializable] + public class EntityNotTaggableException : BusinessException + { + public EntityNotTaggableException(string code = null, string message = null, string details = null, Exception innerException = null, Microsoft.Extensions.Logging.LogLevel logLevel = Microsoft.Extensions.Logging.LogLevel.Warning) : base(code, message, details, innerException, logLevel) + { + } + + public EntityNotTaggableException(string entityType) + { + Code = CmsKitErrorCodes.EntityNotTaggable; + WithData(nameof(Tag.EntityType), entityType); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs index 9fa06f92d4..033c6e6a5f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs @@ -9,5 +9,7 @@ namespace Volo.CmsKit.Tags Task> GetTagDefinitionsAsync(); Task GetTagDefinitionOrNullAsync([NotNull] string entityType); + + Task IsDefinedAsync([NotNull] string entityType); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs index 0c2cbd63ed..5318336502 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs @@ -51,6 +51,11 @@ namespace Volo.CmsKit.Tags throw new TagAlreadyExistException(entityType, name); } + if (!await _tagDefinitionStore.IsDefinedAsync(entityType)) + { + throw new EntityNotTaggableException(entityType); + } + return await _tagRepository.InsertAsync( new Tag( id, From e95dd13cda292946bc63a7b247e14dca1fbc1f5f Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 11 Jan 2021 11:42:37 +0300 Subject: [PATCH 005/309] CmsKit - Add resources for CmsKit:0003 --- .../Volo/CmsKit/Localization/Resources/en.json | 1 + .../Volo/CmsKit/Localization/Resources/tr.json | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 8ad45af0ff..393097a72d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -2,6 +2,7 @@ "culture": "en", "texts": { "CmsKit:0002": "Content already exists!", + "CmsKit:0003": "The entity {0} is not taggable.", "CommentAuthorizationExceptionMessage": "Those comments are not allowed for public display.", "Comments": "Comments", "Delete": "Delete", diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json index c081b86fc7..b469b76968 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json @@ -2,6 +2,7 @@ "culture": "tr", "texts": { "CmsKit:0002": "İçerik zaten mevcut!", + "CmsKit:0003": "{0} ögesi etiketlenebilir değil.", "CommentAuthorizationExceptionMessage": "Bu yorumları görebilmek için yetki gerekir.", "Comments": "Yorumlar", "Delete": "Sil", From f0ae90d8b5fc6ae7305cd902606e28298f03a295 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 11 Jan 2021 12:57:07 +0300 Subject: [PATCH 006/309] CmsKit - Implementation of EntityTag Domain logic --- .../Volo/CmsKit/Tags/EntityTag.cs | 3 +- .../Volo/CmsKit/Tags/EntityTagManager.cs | 52 +++++++++++++++++++ .../Volo/CmsKit/Tags/IEntityTagManager.cs | 24 +++++++++ .../Volo/CmsKit/Tags/IEntityTagRepository.cs | 12 ++++- .../CmsKit/Tags/EfCoreEntityTagRepository.cs | 19 ++++++- .../MongoDB/Tags/MongoEntityTagRepository.cs | 19 ++++++- 6 files changed, 123 insertions(+), 6 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTagManager.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagManager.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTag.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTag.cs index 5d27e8b15f..c49a9661ef 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTag.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTag.cs @@ -16,7 +16,7 @@ namespace Volo.CmsKit.Tags { } - public EntityTag(Guid tagId, string entityId, Guid? tenantId = null) + internal EntityTag(Guid tagId, string entityId, Guid? tenantId = null) { TagId = tagId; EntityId = entityId; @@ -27,6 +27,5 @@ namespace Volo.CmsKit.Tags { return new object[] { TagId, EntityId }; } - } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTagManager.cs new file mode 100644 index 0000000000..0de6328775 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityTagManager.cs @@ -0,0 +1,52 @@ +using JetBrains.Annotations; +using System; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Domain.Services; +using Volo.CmsKit.Tags; + +namespace Volo.CmsKit.Tags +{ + public class EntityTagManager : DomainService, IEntityTagManager + { + protected readonly IEntityTagRepository _entityTagRepository; + protected readonly ITagDefinitionStore _tagDefinitionStore; + + public EntityTagManager( + IEntityTagRepository entityTagRepository, + ITagDefinitionStore tagDefinitionStore) + { + _entityTagRepository = entityTagRepository; + _tagDefinitionStore = tagDefinitionStore; + } + + public async Task AddTagToEntityAsync( + [NotNull] Guid tagId, + [NotNull] string entityType, + [NotNull] string entityId, + [CanBeNull] Guid? tenantId = null, + CancellationToken cancellationToken = default) + { + if (!await _tagDefinitionStore.IsDefinedAsync(entityType)) + { + throw new EntityNotTaggableException(entityType); + } + + var entityTag = new EntityTag(tagId, entityId, tenantId); + + return await _entityTagRepository.InsertAsync(entityTag, cancellationToken: cancellationToken); + } + + public async Task RemoveTagFromEntityAsync( + [NotNull] Guid tagId, + [NotNull] string entityType, + [NotNull] string entityId, + [CanBeNull] Guid? tenantId = null, + CancellationToken cancellationToken = default) + { + var entityTag = await _entityTagRepository.FindAsync(tagId, entityId, tenantId, cancellationToken); + + await _entityTagRepository.DeleteAsync(entityTag); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagManager.cs new file mode 100644 index 0000000000..704568619a --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagManager.cs @@ -0,0 +1,24 @@ +using JetBrains.Annotations; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace Volo.CmsKit.Tags +{ + public interface IEntityTagManager + { + Task AddTagToEntityAsync( + [NotNull] Guid tagId, + [NotNull] string entityType, + [NotNull] string entityId, + [CanBeNull] Guid? tenantId = null, + CancellationToken cancellationToken = default); + + Task RemoveTagFromEntityAsync( + [NotNull] Guid tagId, + [NotNull] string entityType, + [NotNull] string entityId, + [CanBeNull] Guid? tenantId = null, + CancellationToken cancellationToken = default); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagRepository.cs index 6ec0fd4b44..f2ed160671 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/IEntityTagRepository.cs @@ -1,9 +1,17 @@ -using Volo.Abp.Domain.Repositories; +using JetBrains.Annotations; +using System; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; namespace Volo.CmsKit.Tags { public interface IEntityTagRepository : IBasicRepository { - + Task FindAsync( + [NotNull] Guid tagId, + [NotNull] string entityId, + [CanBeNull] Guid? tenantId, + CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreEntityTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreEntityTagRepository.cs index cca61b802b..a82fb7005a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreEntityTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreEntityTagRepository.cs @@ -1,4 +1,8 @@ -using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using JetBrains.Annotations; +using System; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; using Volo.CmsKit.EntityFrameworkCore; @@ -9,5 +13,18 @@ namespace Volo.CmsKit.Tags public EfCoreEntityTagRepository(IDbContextProvider dbContextProvider) : base(dbContextProvider) { } + + public Task FindAsync( + [NotNull] Guid tagId, + [NotNull] string entityId, + [CanBeNull] Guid? tenantId, + CancellationToken cancellationToken = default) + { + return base.FindAsync(x => + x.TagId == tagId && + x.EntityId == entityId && + x.TenantId == tenantId, + cancellationToken: cancellationToken); + } } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs index 5ac1a4b69c..3f9e1814fc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoEntityTagRepository.cs @@ -1,4 +1,8 @@ -using Volo.Abp.Domain.Repositories.MongoDB; +using JetBrains.Annotations; +using System; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; using Volo.CmsKit.Tags; @@ -9,5 +13,18 @@ namespace Volo.CmsKit.MongoDB.Tags public MongoEntityTagRepository(IMongoDbContextProvider dbContextProvider) : base(dbContextProvider) { } + + public Task FindAsync( + [NotNull] Guid tagId, + [NotNull] string entityId, + [CanBeNull] Guid? tenantId, + CancellationToken cancellationToken = default) + { + return base.FindAsync(x => + x.TagId == tagId && + x.EntityId == entityId && + x.TenantId == tenantId, + cancellationToken: cancellationToken); + } } } \ No newline at end of file From dce59dadb7b91a745914ee6471eacb69b1bc5b83 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 11 Jan 2021 12:57:25 +0300 Subject: [PATCH 007/309] CmsKit - Update Tests according to EntityTag domain logic --- .../Tags/TagAdminAppService_Tests.cs | 4 +-- .../Tags/EntityTagManager_Tests.cs | 27 +++++++++++++++ .../Tags/TagManager_Tests.cs | 20 ++++++++--- .../CmsKitDataSeedContributor.cs | 34 +++++++++++-------- 4 files changed, 64 insertions(+), 21 deletions(-) create mode 100644 modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagAdminAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagAdminAppService_Tests.cs index 4ad0d43468..b2128bb385 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagAdminAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagAdminAppService_Tests.cs @@ -32,8 +32,8 @@ namespace Volo.CmsKit.Tags { var list = await _tagAdminAppService.CreateAsync(new TagCreateDto { - EntityType = "any_new_type", - Name = "1", + EntityType = _cmsKitTestData.EntityType1, + Name = "My First Tag", }); list.Id.ShouldNotBe(Guid.Empty); diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs new file mode 100644 index 0000000000..e259472d96 --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Volo.CmsKit.Tags +{ + public class EntityTagManager_Tests : CmsKitDomainTestBase + { + private readonly CmsKitTestData _cmsKitTestData; + private readonly IEntityTagManager _entityTagManager; + private readonly IEntityTagManager _entityTagManager; + + public EntityTagManager_Tests() + { + _cmsKitTestData = GetRequiredService(); + _entityTagManager = GetRequiredService(); + } + + public async Task AddTagToEntityAsync_ShouldAdd_WhenEverythingCorrect() + { + var tag = await + await _entityTagManager.AddTagToEntityAsync(_cmsKitTestData.tag) + } + } +} diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs index 0fe8d5ddb4..7d7416c8ce 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagManager_Tests.cs @@ -22,7 +22,7 @@ namespace Volo.CmsKit.Tags [Fact] public async Task ShouldAddWhenGettingAsync() { - var newTagEntityType = "testEntity"; + var newTagEntityType = _cmsKitTestData.EntityType1; var newTagName = "test_tag_2123"; var doesExist = await _tagRepository.AnyAsync(newTagEntityType, newTagName); @@ -53,16 +53,28 @@ namespace Volo.CmsKit.Tags } [Fact] - public async Task ShouldInsert() + public async Task ShouldInsertAsync() { - var tag = await _tagManager.InsertAsync(Guid.NewGuid(), "test", "test"); + var tagName = "Freshly Created New Tag"; + var tag = await _tagManager.InsertAsync(Guid.NewGuid(), _cmsKitTestData.EntityType1, tagName); tag.ShouldNotBeNull(); - var doesExist = await _tagRepository.AnyAsync("test", "test"); + var doesExist = await _tagRepository.AnyAsync(_cmsKitTestData.EntityType1, tagName); doesExist.ShouldBeTrue(); } + [Fact] + public async Task ShouldntInsertWithUnconfiguredEntityTypeAsync() + { + var notConfiguredEntityType = "My.Namespace.SomeEntity"; + + var exception = await Should.ThrowAsync(async () => + await _tagManager.InsertAsync(Guid.NewGuid(), notConfiguredEntityType, "test")); + + exception.ShouldNotBeNull(); + exception.Data[nameof(Tag.EntityType)].ShouldBe(notConfiguredEntityType); + } [Fact] public async Task ShouldNotInsert() diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index d9f671229d..589249a65f 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -27,7 +27,7 @@ namespace Volo.CmsKit private readonly IRatingRepository _ratingRepository; private readonly ICurrentTenant _currentTenant; private readonly IContentRepository _contentRepository; - private readonly IEntityTagRepository _entityTagRepository; + private readonly IEntityTagManager _entityTagManager; private readonly ITagManager _tagManager; private readonly IPageRepository _pageRepository; private readonly IOptions _options; @@ -39,10 +39,10 @@ namespace Volo.CmsKit ICommentRepository commentRepository, ReactionManager reactionManager, IRatingRepository ratingRepository, - ICurrentTenant currentTenant, + ICurrentTenant currentTenant, IContentRepository contentRepository, - ITagManager tagManager, - IEntityTagRepository entityTagRepository, + ITagManager tagManager, + IEntityTagManager entityTagManager, IPageRepository pageRepository, IOptions options) { @@ -55,7 +55,7 @@ namespace Volo.CmsKit _currentTenant = currentTenant; _contentRepository = contentRepository; _tagManager = tagManager; - _entityTagRepository = entityTagRepository; + _entityTagManager = entityTagManager; _pageRepository = pageRepository; _options = options; } @@ -64,6 +64,8 @@ namespace Volo.CmsKit { using (_currentTenant.Change(context?.TenantId)) { + await ConfigureCmsKitOptionsAsync(); + await SeedUsersAsync(); await SeedCommentsAsync(); @@ -77,13 +79,15 @@ namespace Volo.CmsKit await SeedTagsAsync(); await SeedPagesAsync(); - - await ConfigureCmsKitOptionsAsync(); } } private Task ConfigureCmsKitOptionsAsync() { + _options.Value.Tags.AddOrReplace(_cmsKitTestData.EntityType1); + _options.Value.Tags.AddOrReplace(_cmsKitTestData.EntityType2); + _options.Value.Tags.AddOrReplace(_cmsKitTestData.Content_1_EntityType); + _options.Value.Tags.AddOrReplace(_cmsKitTestData.Content_2_EntityType); _options.Value.Tags.AddOrReplace(_cmsKitTestData.TagDefinition_1_EntityType); return Task.CompletedTask; @@ -222,14 +226,14 @@ namespace Volo.CmsKit _cmsKitTestData.Content_1_EntityId, _cmsKitTestData.Content_1 ); - + var content2 = new Content( _cmsKitTestData.Content_2_Id, _cmsKitTestData.Content_2_EntityType, _cmsKitTestData.Content_2_EntityId, _cmsKitTestData.Content_2 ); - + var content3 = new Content( Guid.NewGuid(), "deleted_entity_type", @@ -251,14 +255,14 @@ namespace Volo.CmsKit { var tagEntity = await _tagManager.InsertAsync(_guidGenerator.Create(), _cmsKitTestData.Content_1_EntityType, tag); - await _entityTagRepository.InsertAsync(new EntityTag(tagEntity.Id, _cmsKitTestData.Content_1_EntityId)); + await _entityTagManager.AddTagToEntityAsync(tagEntity.Id, _cmsKitTestData.Content_1_EntityType, _cmsKitTestData.Content_1_EntityId); } - + foreach (var tag in _cmsKitTestData.Content_2_Tags) { var tagEntity = await _tagManager.InsertAsync(_guidGenerator.Create(), _cmsKitTestData.Content_2_EntityType, tag); - - await _entityTagRepository.InsertAsync(new EntityTag(tagEntity.Id, _cmsKitTestData.Content_2_EntityId)); + + await _entityTagManager.AddTagToEntityAsync(tagEntity.Id, _cmsKitTestData.Content_2_EntityType, _cmsKitTestData.Content_2_EntityId); } } @@ -266,10 +270,10 @@ namespace Volo.CmsKit { var page1 = new Page(_cmsKitTestData.Page_1_Id, _cmsKitTestData.Page_1_Title, _cmsKitTestData.Page_1_Url, _cmsKitTestData.Page_1_Description); var page1Content = new Content(_guidGenerator.Create(), nameof(Page), page1.Id.ToString(), _cmsKitTestData.Page_1_Content); - + await _pageRepository.InsertAsync(page1); await _contentRepository.InsertAsync(page1Content); - + var page2 = new Page(_cmsKitTestData.Page_2_Id, _cmsKitTestData.Page_2_Title, _cmsKitTestData.Page_2_Url, _cmsKitTestData.Page_2_Description); var page2Content = new Content(_guidGenerator.Create(), nameof(Page), page2.Id.ToString(), _cmsKitTestData.Page_2_Content); From 8c607c4b5a00c5b97a48ae8b9f7b5600251708bd Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 11 Jan 2021 12:59:32 +0300 Subject: [PATCH 008/309] CmsKit - Remove EntityTagManager tests --- .../Tags/EntityTagManager_Tests.cs | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs deleted file mode 100644 index e259472d96..0000000000 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Volo.CmsKit.Tags -{ - public class EntityTagManager_Tests : CmsKitDomainTestBase - { - private readonly CmsKitTestData _cmsKitTestData; - private readonly IEntityTagManager _entityTagManager; - private readonly IEntityTagManager _entityTagManager; - - public EntityTagManager_Tests() - { - _cmsKitTestData = GetRequiredService(); - _entityTagManager = GetRequiredService(); - } - - public async Task AddTagToEntityAsync_ShouldAdd_WhenEverythingCorrect() - { - var tag = await - await _entityTagManager.AddTagToEntityAsync(_cmsKitTestData.tag) - } - } -} From 56513002753bbf161590d88d9555b27289946b12 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 11 Jan 2021 13:43:35 +0300 Subject: [PATCH 009/309] CmsKit - Add EntityTag tests --- .../Tags/EntityTagManager_Tests.cs | 55 +++++++++++++++++++ .../CmsKitDataSeedContributor.cs | 8 +++ .../Volo.CmsKit.TestBase/CmsKitTestData.cs | 9 +++ 3 files changed, 72 insertions(+) create mode 100644 modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs new file mode 100644 index 0000000000..2e0d17fadd --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs @@ -0,0 +1,55 @@ +using Shouldly; +using System.Linq; +using System.Threading.Tasks; +using Xunit; + +namespace Volo.CmsKit.Tags +{ + public class EntityTagManager_Tests : CmsKitDomainTestBase + { + private readonly CmsKitTestData _cmsKitTestData; + private readonly IEntityTagManager _entityTagManager; + private readonly ITagRepository _tagRepository; + + public EntityTagManager_Tests() + { + _cmsKitTestData = GetRequiredService(); + _entityTagManager = GetRequiredService(); + _tagRepository = GetRequiredService(); + } + + [Fact] + public async Task AddTagToEntityAsync_ShouldAdd_WhenEverythingCorrect() + { + var entityTag = await _entityTagManager.AddTagToEntityAsync(_cmsKitTestData.TagId_1, _cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1); + + entityTag.ShouldNotBeNull(); + } + + [Fact] + public async Task AddTagToEntity_ShouldThrowNotTaggable_WithNotConfiguredEntityType() + { + var entityType = "Not.Configured.EntityType"; + + var exception = Should.Throw(async () => + await _entityTagManager.AddTagToEntityAsync(_cmsKitTestData.TagId_1, entityType, _cmsKitTestData.EntityId1) + ); + + exception.ShouldNotBeNull(); + exception.Data[nameof(Tag.EntityType)].ShouldBe(entityType); + } + + [Fact] + public async Task RemoveTagFromEntityAsync_ShouldRemove_WhenEverythingCorrect() + { + var tagToDelete = (await _tagRepository.GetAllRelatedTagsAsync(_cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1)) + .First(); + + await _entityTagManager.RemoveTagFromEntityAsync(tagToDelete.Id, tagToDelete.EntityType, _cmsKitTestData.EntityId1); + + var tags = await _tagRepository.GetAllRelatedTagsAsync(_cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1); + + tags.ShouldNotContain(x => x.Id == tagToDelete.Id); + } + } +} diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index 589249a65f..9adc4442cb 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -251,6 +251,14 @@ namespace Volo.CmsKit private async Task SeedTagsAsync() { + var created1 = await _tagManager.InsertAsync(_cmsKitTestData.TagId_1, _cmsKitTestData.EntityType1, _cmsKitTestData.TagName_1); + + await _entityTagManager.AddTagToEntityAsync(created1.Id, created1.EntityType, _cmsKitTestData.EntityId1); + + var created2 = await _tagManager.InsertAsync(_cmsKitTestData.TagId_2, _cmsKitTestData.EntityType2, _cmsKitTestData.TagName_2); + + await _entityTagManager.AddTagToEntityAsync(created2.Id, created2.EntityType, _cmsKitTestData.EntityId2); + foreach (var tag in _cmsKitTestData.Content_1_Tags) { var tagEntity = await _tagManager.InsertAsync(_guidGenerator.Create(), _cmsKitTestData.Content_1_EntityType, tag); diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs index c07b038714..4415cd7eb3 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs @@ -12,6 +12,7 @@ namespace Volo.CmsKit public Guid CommentWithChildId { get; } = Guid.NewGuid(); + public string EntityType1 { get; } = "EntityName1"; public string EntityType2 { get; } = "EntityName2"; @@ -61,5 +62,13 @@ namespace Volo.CmsKit public string Page_2_Content => Content_2; public string TagDefinition_1_EntityType => "My.Namespace.CustomType"; + + public Guid TagId_1 { get; } = Guid.NewGuid(); + + public string TagName_1 => "Awesome"; + + public Guid TagId_2 { get; } = Guid.NewGuid(); + + public string TagName_2 => "News"; } } From b28ad6b82e23be39401c65f158c1f1fa70251e00 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 11 Jan 2021 15:18:50 +0300 Subject: [PATCH 010/309] CmsKit - Fix EntityTag Tests --- .../Tags/EntityTagManager_Tests.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs index 2e0d17fadd..5a6144733c 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs @@ -1,6 +1,7 @@ using Shouldly; using System.Linq; using System.Threading.Tasks; +using Volo.Abp.Guids; using Xunit; namespace Volo.CmsKit.Tags @@ -10,18 +11,22 @@ namespace Volo.CmsKit.Tags private readonly CmsKitTestData _cmsKitTestData; private readonly IEntityTagManager _entityTagManager; private readonly ITagRepository _tagRepository; + private readonly IGuidGenerator _guidGenerator; public EntityTagManager_Tests() { _cmsKitTestData = GetRequiredService(); _entityTagManager = GetRequiredService(); _tagRepository = GetRequiredService(); + _guidGenerator = GetRequiredService(); } [Fact] public async Task AddTagToEntityAsync_ShouldAdd_WhenEverythingCorrect() { - var entityTag = await _entityTagManager.AddTagToEntityAsync(_cmsKitTestData.TagId_1, _cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1); + var tag = await _tagRepository.InsertAsync(new Tag(_guidGenerator.Create(), _cmsKitTestData.EntityType1, "My Test Tag #1")); + + var entityTag = await _entityTagManager.AddTagToEntityAsync(tag.Id, _cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1); entityTag.ShouldNotBeNull(); } From a92a5c98ab95aab4c456d9068c141e6fddba8109 Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 12 Jan 2021 13:36:35 +0300 Subject: [PATCH 011/309] CmsKit - Fix localization problem for TagDefinitions --- .../Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs | 10 ++++++++++ .../Volo/CmsKit/Admin/Tags/TagAdminAppService.cs | 12 ++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs index b5abf8b69c..0fdfe04b00 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagDefinitionDto.cs @@ -2,7 +2,17 @@ { public class TagDefinitionDto { + public TagDefinitionDto() + { + } + public TagDefinitionDto(string entityType, string displayName) + { + EntityType = entityType; + DisplayName = displayName; + } + public string EntityType { get; set; } + public string DisplayName { get; set; } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs index 29fbb943bb..54e2a7a530 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Localization; using System; using System.Collections.Generic; using System.Linq; @@ -23,11 +24,15 @@ namespace Volo.CmsKit.Admin.Tags { protected ITagManager TagManager { get; } + protected IStringLocalizerFactory StringLocalizerFactory { get; } + public TagAdminAppService( IRepository repository, - ITagManager tagManager) : base(repository) + ITagManager tagManager, + IStringLocalizerFactory stringLocalizerFactory) : base(repository) { TagManager = tagManager; + StringLocalizerFactory = stringLocalizerFactory; GetListPolicyName = CmsKitAdminPermissions.Tags.Default; GetPolicyName = CmsKitAdminPermissions.Tags.Default; @@ -71,7 +76,10 @@ namespace Volo.CmsKit.Admin.Tags { var definitions = await TagManager.GetTagDefinitionsAsync(); - return ObjectMapper.Map, List>(definitions); + return definitions + .Select(s => + new TagDefinitionDto(s.EntityType, s.DisplayName.Localize(StringLocalizerFactory))) + .ToList(); } } } From 02a66342c71dedb484ccf9ca414a3c8066d17bb3 Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 12 Jan 2021 13:58:31 +0300 Subject: [PATCH 012/309] CmsKit - Refactor DefaultTagDefinitionStore --- .../Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs index 5b30ab08b9..bf52474446 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -1,9 +1,7 @@ using JetBrains.Annotations; using Microsoft.Extensions.Options; -using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.DependencyInjection; @@ -19,19 +17,20 @@ namespace Volo.CmsKit.Tags this.options = options.Value; } - public Task GetTagDefinitionOrNullAsync([NotNull] string entityType) + public virtual Task GetTagDefinitionOrNullAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); return Task.FromResult(options.Tags.GetOrDefault(entityType)); } - public Task> GetTagDefinitionsAsync() + public virtual Task> GetTagDefinitionsAsync() { return Task.FromResult(options.Tags.Values.ToList()); } - public Task IsDefinedAsync([NotNull] string entityType) + public virtual Task IsDefinedAsync([NotNull] string entityType) { + Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); return Task.FromResult(options.Tags.ContainsKey(entityType)); } } From 20db982c20fec04713afc8243ece1522e96cce63 Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 13 Jan 2021 11:47:03 +0300 Subject: [PATCH 013/309] CmsKit - Move DisplayName to TagDefinition from PolicySpecifiedDefinition --- .../Volo/CmsKit/PolicySpecifiedDefinition.cs | 5 ----- .../src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs | 6 +++++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs index 88fd6eb824..6105beab97 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/PolicySpecifiedDefinition.cs @@ -11,20 +11,15 @@ namespace Volo.CmsKit.Domain.Volo.CmsKit } public PolicySpecifiedDefinition( - [CanBeNull] ILocalizableString displayName = null, [CanBeNull] string createPolicy = null, [CanBeNull] string updatePolicy = null, [CanBeNull] string deletePolicy = null) { - DisplayName = displayName; CreatePolicy = createPolicy; DeletePolicy = deletePolicy; UpdatePolicy = updatePolicy; } - [CanBeNull] - public virtual ILocalizableString DisplayName { get; } - [CanBeNull] public virtual string CreatePolicy { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs index 6ccff22f2c..6029ab3946 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs @@ -9,6 +9,9 @@ namespace Volo.CmsKit.Tags { public string EntityType { get; } + [CanBeNull] + public virtual ILocalizableString DisplayName { get; } + public TagDefiniton() { } @@ -18,10 +21,11 @@ namespace Volo.CmsKit.Tags [CanBeNull] ILocalizableString displayName = null, [CanBeNull] string createPolicy = null, [CanBeNull] string updatePolicy = null, - [CanBeNull] string deletePolicy = null) : base(displayName, createPolicy, updatePolicy, deletePolicy) + [CanBeNull] string deletePolicy = null) : base(createPolicy, updatePolicy, deletePolicy) { EntityType = Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); + DisplayName = displayName; } } } From fa48c8a4515653a91f8b6bd777df98f39b4084ea Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 13 Jan 2021 15:16:20 +0300 Subject: [PATCH 014/309] CmsKit - Add EntityTagAppService --- .../CmsKit/Admin/Tags/EntityTagCreateDto.cs | 16 ++++++ .../CmsKit/Admin/Tags/EntityTagRemoveDto.cs | 17 ++++++ .../Admin/Tags/IEntityTagAdminAppService.cs | 11 ++++ .../CmsKit/Admin/Pages/PageAdminAppService.cs | 1 - .../Admin/Tags/EntityTagAdminAppService.cs | 52 +++++++++++++++++++ .../CmsKit/Tags/DefaultTagDefinitionStore.cs | 7 ++- .../Volo/CmsKit/Tags/ITagDefinitionStore.cs | 2 +- 7 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagCreateDto.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagRemoveDto.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagCreateDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagCreateDto.cs new file mode 100644 index 0000000000..92e83fecf4 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagCreateDto.cs @@ -0,0 +1,16 @@ +using System.ComponentModel.DataAnnotations; + +namespace Volo.CmsKit.Admin.Tags +{ + public class EntityTagCreateDto + { + [Required] + public string TagName { get; set; } + + [Required] + public string EntityType { get; set; } + + [Required] + public string EntityId { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagRemoveDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagRemoveDto.cs new file mode 100644 index 0000000000..411d4c7157 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/EntityTagRemoveDto.cs @@ -0,0 +1,17 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace Volo.CmsKit.Admin.Tags +{ + public class EntityTagRemoveDto + { + [Required] + public Guid TagId { get; set; } + + [Required] + public string EntityType { get; set; } + + [Required] + public string EntityId { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs new file mode 100644 index 0000000000..aece4d5c00 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/IEntityTagAdminAppService.cs @@ -0,0 +1,11 @@ +using System.Threading.Tasks; + +namespace Volo.CmsKit.Admin.Tags +{ + public interface IEntityTagAdminAppService + { + Task AddTagToEntityAsync(EntityTagCreateDto input); + + Task RemoveTagFromEntityAsync(EntityTagRemoveDto input); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs index 6778dd7916..3934f8a6b2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs @@ -21,7 +21,6 @@ namespace Volo.CmsKit.Admin.Pages public virtual async Task GetAsync(Guid id) { var page = await PageRepository.GetAsync(id); - return ObjectMapper.Map(page); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs new file mode 100644 index 0000000000..848a2ea11e --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs @@ -0,0 +1,52 @@ +using System; +using System.Threading.Tasks; +using Volo.CmsKit.Admin.Tags; +using Volo.CmsKit.Tags; + +namespace Volo.CmsKit.Admin.Application.Volo.CmsKit.Admin.Tags +{ + public class EntityTagAdminAppService : CmsKitAdminAppServiceBase, IEntityTagAdminAppService + { + protected ITagDefinitionStore _tagDefinitionStore; + protected IEntityTagManager _entityTagManager; + protected ITagManager _tagManager; + + public EntityTagAdminAppService( + ITagDefinitionStore tagDefinitionStore, + IEntityTagManager entityTagManager, + ITagManager tagManager) + { + _tagDefinitionStore = tagDefinitionStore; + _entityTagManager = entityTagManager; + _tagManager = tagManager; + } + + public async Task AddTagToEntityAsync(EntityTagCreateDto input) + { + var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType); + + await CheckPolicyAsync(definition.CreatePolicy); + + var tag = await _tagManager.GetOrAddAsync(input.EntityType, input.TagName, CurrentTenant?.Id); + + await _entityTagManager.AddTagToEntityAsync( + tag.Id, + input.EntityType, + input.EntityId, + CurrentTenant?.Id); + } + + public async Task RemoveTagFromEntityAsync(EntityTagRemoveDto input) + { + var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType); + + await CheckPolicyAsync(definition.DeletePolicy); + + await _entityTagManager.RemoveTagFromEntityAsync( + input.TagId, + input.EntityType, + input.EntityId, + CurrentTenant?.Id); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs index bf52474446..b080720129 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -17,10 +17,13 @@ namespace Volo.CmsKit.Tags this.options = options.Value; } - public virtual Task GetTagDefinitionOrNullAsync([NotNull] string entityType) + public virtual Task GetTagDefinitionAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - return Task.FromResult(options.Tags.GetOrDefault(entityType)); + + var result = options.Tags.GetOrDefault(entityType) ?? throw new EntityNotTaggableException(entityType); + + return Task.FromResult(result); } public virtual Task> GetTagDefinitionsAsync() diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs index 033c6e6a5f..c2e12eb16b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs @@ -8,7 +8,7 @@ namespace Volo.CmsKit.Tags { Task> GetTagDefinitionsAsync(); - Task GetTagDefinitionOrNullAsync([NotNull] string entityType); + Task GetTagDefinitionAsync([NotNull] string entityType); Task IsDefinedAsync([NotNull] string entityType); } From 77b5b1e68297d81077c8bf6f74a02e7430cea5b5 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Thu, 14 Jan 2021 10:38:47 +0300 Subject: [PATCH 015/309] Add missing admin localizations --- .../AbpIoLocalization/Admin/Localization/Resources/en.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index c190a91470..6daf3c47bc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -198,6 +198,8 @@ "Language": "Language", "Optional": "Optional", "CreateArticleLanguageInfo": "The language in which the post is written", - "Enum:ContentSource:2": "Video Post" + "Enum:ContentSource:2": "Video Post", + "VideoPreview": "Video Preview", + "VideoPreviewErrorMessage": "Given video url couldn't retrieve from Youtube. This can be caused by either video is private or the given URL is not available." } } From ebaf78869374974a6c3f51520e3496cd2c5cd14e Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Thu, 14 Jan 2021 10:51:19 +0300 Subject: [PATCH 016/309] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index f5db446396..b16d6e2c85 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 4.2.0 + 4.2.0-rc.1 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From bafc809dcfd84aafa42595b1a774cbdc253e11ea Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 14 Jan 2021 16:25:12 +0800 Subject: [PATCH 017/309] Add Access denied page to Account module. Resolve #7207 --- .../Account/Localization/Resources/en.json | 4 +++- .../Account/Localization/Resources/tr.json | 4 +++- .../Localization/Resources/zh-Hans.json | 4 +++- .../Localization/Resources/zh-Hant.json | 4 +++- .../Pages/Account/AccessDenied.cshtml | 15 ++++++++++++ .../Pages/Account/AccessDenied.cshtml.cs | 24 +++++++++++++++++++ 6 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml create mode 100644 modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml.cs diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json index 755cd5674b..459d115398 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json @@ -60,6 +60,8 @@ "Volo.Account:InvalidEmailAddress": "Can not find the given email address: {0}", "PasswordReset": "Password reset", "PasswordResetInfoInEmail": "We received an account recovery request! If you initiated this request, click the following link to reset your password.", - "ResetMyPassword": "Reset my password" + "ResetMyPassword": "Reset my password", + "AccessDenied": "Access denied!", + "AccessDeniedMessage": "You do not have access to this resource." } } diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/tr.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/tr.json index d8cf5dd74f..a1c899357b 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/tr.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/tr.json @@ -60,6 +60,8 @@ "Volo.Account:InvalidEmailAddress": "Email adresi bulunamadı: {0}", "PasswordReset": "Şifre Sıfırlama", "PasswordResetInfoInEmail": "Şifrenizi sıfırlamanız için bir talep aldık! Eğer bu talebi siz gerçekleştirmişseniz, şifrenizi sıfırlamak için bağlantıya tıklayın.", - "ResetMyPassword": "Şifremi sıfırla" + "ResetMyPassword": "Şifremi sıfırla", + "AccessDenied": "Erişim reddedildi!", + "AccessDeniedMessage": "Bu kaynağa erişiminiz yok." } } diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json index 53fe6135f2..26c6fc3337 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hans.json @@ -60,6 +60,8 @@ "Volo.Account:InvalidEmailAddress": "找不到给定的电子邮件地址:{0}", "PasswordReset": "重设密码", "PasswordResetInfoInEmail": "我们收到了帐户恢复请求!如果你发起了此请求,请单击以下链接以重置密码.", - "ResetMyPassword": "重置我的密码" + "ResetMyPassword": "重置我的密码", + "AccessDenied": "拒绝访问!", + "AccessDeniedMessage": "你无权访问此资源." } } diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json index a67ea8d63f..8a57429344 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json @@ -58,6 +58,8 @@ "ReturnToApplication": "返回到應用程序", "PasswordReset": "重設密碼", "PasswordResetInfoInEmail": "我們收到了帳戶恢復請求!如果你發起了此請求,請單擊以下鏈接以重置密碼.", - "ResetMyPassword": "重置我的密碼" + "ResetMyPassword": "重置我的密碼", + "AccessDenied": "拒絕訪問!", + "AccessDeniedMessage": "您無權訪問此資源." } } diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml new file mode 100644 index 0000000000..28608ff883 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml @@ -0,0 +1,15 @@ +@page +@model Volo.Abp.Account.Web.Pages.Account.AccessDeniedModel +@using Microsoft.AspNetCore.Mvc.Localization +@using Volo.Abp.Account.Localization +@inject IHtmlLocalizer L + +
+
+

@L["AccessDenied"]

+
+

@L["AccessDeniedMessage"]

+ ← @L["BackToLogin"] +
+
+
diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml.cs new file mode 100644 index 0000000000..7ac9639d0b --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccessDenied.cshtml.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace Volo.Abp.Account.Web.Pages.Account +{ + public class AccessDeniedModel : AccountPageModel + { + [BindProperty(SupportsGet = true)] + public string ReturnUrl { get; set; } + + [BindProperty(SupportsGet = true)] + public string ReturnUrlHash { get; set; } + + public virtual Task OnGetAsync() + { + return Task.FromResult(Page()); + } + + public virtual Task OnPostAsync() + { + return Task.FromResult(Page()); + } + } +} From e928a57e97ac42a1415112ef75f8c158b7d01a52 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 14 Jan 2021 16:49:56 +0800 Subject: [PATCH 018/309] Always store string type values to JobDataMap --- .../Quartz/AbpBackgroundJobQuartzOptions.cs | 16 +++++++-------- .../Quartz/QuartzBackgroundJobManager.cs | 14 ++++++++----- .../Quartz/QuartzJobExecutionAdapter.cs | 20 +++++++++++-------- 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs index e9ecb41c57..1f9836d57d 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.BackgroundJobs.Quartz public int RetryCount { get; set; } public int RetryIntervalMillisecond { get; set; } - + [NotNull] public Func RetryStrategy @@ -19,28 +19,28 @@ namespace Volo.Abp.BackgroundJobs.Quartz set => _retryStrategy = Check.NotNull(value, nameof(value)); } private Func _retryStrategy; - + public AbpBackgroundJobQuartzOptions() { RetryCount = 3; RetryIntervalMillisecond = 3000; _retryStrategy = DefaultRetryStrategy; } - + private async Task DefaultRetryStrategy(int retryIndex, IJobExecutionContext executionContext, JobExecutionException exception) { exception.RefireImmediately = true; - - var retryCount = executionContext.JobDetail.JobDataMap.GetIntValue(QuartzBackgroundJobManager.JobDataPrefix+ nameof(RetryCount)); + + var retryCount = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix+ nameof(RetryCount)).To(); if (retryIndex > retryCount) { exception.RefireImmediately = false; exception.UnscheduleAllTriggers = true; return; } - - var retryInterval = executionContext.JobDetail.JobDataMap.GetIntValue(QuartzBackgroundJobManager.JobDataPrefix+ nameof(RetryIntervalMillisecond)); + + var retryInterval = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix+ nameof(RetryIntervalMillisecond)).To(); await Task.Delay(retryInterval); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs index 83b74297a5..42e89ffb93 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Options; using Quartz; using Volo.Abp.DependencyInjection; +using Volo.Abp.Json; namespace Volo.Abp.BackgroundJobs.Quartz { @@ -16,9 +17,12 @@ namespace Volo.Abp.BackgroundJobs.Quartz protected AbpBackgroundJobQuartzOptions Options { get; } - public QuartzBackgroundJobManager(IScheduler scheduler, IOptions options) + protected IJsonSerializer JsonSerializer { get; } + + public QuartzBackgroundJobManager(IScheduler scheduler, IOptions options, IJsonSerializer jsonSerializer) { Scheduler = scheduler; + JsonSerializer = jsonSerializer; Options = options.Value; } @@ -33,10 +37,10 @@ namespace Volo.Abp.BackgroundJobs.Quartz { var jobDataMap = new JobDataMap { - {nameof(TArgs), args}, - {JobDataPrefix+ nameof(Options.RetryCount), retryCount}, - {JobDataPrefix+ nameof(Options.RetryIntervalMillisecond), retryIntervalMillisecond}, - {JobDataPrefix+ RetryIndex, 0} + {nameof(TArgs), JsonSerializer.Serialize(args)}, + {JobDataPrefix+ nameof(Options.RetryCount), retryCount.ToString()}, + {JobDataPrefix+ nameof(Options.RetryIntervalMillisecond), retryIntervalMillisecond.ToString()}, + {JobDataPrefix+ RetryIndex, "0"} }; var jobDetail = JobBuilder.Create>().RequestRecovery().SetJobData(jobDataMap).Build(); diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs index b6759b256e..79776d0726 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Quartz; +using Volo.Abp.Json; namespace Volo.Abp.BackgroundJobs.Quartz { @@ -16,15 +17,18 @@ namespace Volo.Abp.BackgroundJobs.Quartz protected AbpBackgroundJobQuartzOptions BackgroundJobQuartzOptions { get; } protected IServiceScopeFactory ServiceScopeFactory { get; } protected IBackgroundJobExecuter JobExecuter { get; } + protected IJsonSerializer JsonSerializer { get; } public QuartzJobExecutionAdapter( IOptions options, IOptions backgroundJobQuartzOptions, IBackgroundJobExecuter jobExecuter, - IServiceScopeFactory serviceScopeFactory) + IServiceScopeFactory serviceScopeFactory, + IJsonSerializer jsonSerializer) { JobExecuter = jobExecuter; ServiceScopeFactory = serviceScopeFactory; + JsonSerializer = jsonSerializer; Options = options.Value; BackgroundJobQuartzOptions = backgroundJobQuartzOptions.Value; Logger = NullLogger>.Instance; @@ -34,7 +38,7 @@ namespace Volo.Abp.BackgroundJobs.Quartz { using (var scope = ServiceScopeFactory.CreateScope()) { - var args = (TArgs) context.JobDetail.JobDataMap.Get(nameof(TArgs)); + var args = JsonSerializer.Deserialize(context.JobDetail.JobDataMap.GetString(nameof(TArgs))); var jobType = Options.GetJob(typeof(TArgs)).JobType; var jobContext = new JobExecutionContext(scope.ServiceProvider, jobType, args); try @@ -44,16 +48,16 @@ namespace Volo.Abp.BackgroundJobs.Quartz catch (Exception exception) { var jobExecutionException = new JobExecutionException(exception); - - var retryIndex = context.JobDetail.JobDataMap.GetIntValue(QuartzBackgroundJobManager.JobDataPrefix+ QuartzBackgroundJobManager.RetryIndex); + + var retryIndex = context.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix+ QuartzBackgroundJobManager.RetryIndex).To(); retryIndex++; - context.JobDetail.JobDataMap.Put(QuartzBackgroundJobManager.JobDataPrefix+ QuartzBackgroundJobManager.RetryIndex, retryIndex); - + context.JobDetail.JobDataMap.Put(QuartzBackgroundJobManager.JobDataPrefix+ QuartzBackgroundJobManager.RetryIndex, retryIndex.ToString()); + await BackgroundJobQuartzOptions.RetryStrategy.Invoke(retryIndex, context, jobExecutionException); - + throw jobExecutionException; } } } } -} \ No newline at end of file +} From 616a02ad63c3534762415286b4f2163d34e95635 Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Thu, 14 Jan 2021 11:58:24 +0300 Subject: [PATCH 019/309] Update auto-pr.yml --- .github/workflows/auto-pr.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/auto-pr.yml b/.github/workflows/auto-pr.yml index c8e8663069..83ca4e55fc 100644 --- a/.github/workflows/auto-pr.yml +++ b/.github/workflows/auto-pr.yml @@ -1,24 +1,24 @@ -name: Merge branch dev with rel-4.1 +name: Merge branch rel-4.2 with rel-4.1 on: push: branches: - rel-4.1 jobs: - merge-dev-with-rel-4-1: + merge-rel-4-2-with-rel-4-1: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: - ref: dev + ref: rel-4.2 - name: Reset promotion branch run: | - git fetch origin $GITHUB_REF:$GITHUB_REF - git reset --hard $GITHUB_REF + git fetch origin rel-4.1:rel-4.1 + git reset --hard rel-4.1 - name: Create Pull Request uses: peter-evans/create-pull-request@v3 with: branch: auto-merge/rel-4-1/${{github.run_number}} - title: Merge branch dev with rel-4.1 - body: This PR generated automatically to merge dev with rel-4.1. Please review the changed files before merging to prevent any errors that may occur. + title: Merge branch rel-4.2 with rel-4.1 + body: This PR generated automatically to merge rel-4.2 with rel-4.1. Please review the changed files before merging to prevent any errors that may occur. reviewers: ${{github.actor}} token: ${{ github.token }} From 44329dfa67eb6c667711bf9fd503f2b1550346c2 Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Thu, 14 Jan 2021 12:34:44 +0300 Subject: [PATCH 020/309] Update auto-pr.yml --- .github/workflows/auto-pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-pr.yml b/.github/workflows/auto-pr.yml index d35f868540..be8ad519d4 100644 --- a/.github/workflows/auto-pr.yml +++ b/.github/workflows/auto-pr.yml @@ -12,8 +12,8 @@ jobs: ref: dev - name: Reset promotion branch run: | - git fetch origin rel-4.1:rel-4.1 - git reset --hard rel-4.1 + git fetch origin rel-4.2:rel-4.2 + git reset --hard rel-4.2 - name: Create Pull Request uses: peter-evans/create-pull-request@v3 with: From 31c894d237ad1747904b4af3d1814ad774f8d5da Mon Sep 17 00:00:00 2001 From: erolarkat Date: Thu, 14 Jan 2021 15:59:45 +0300 Subject: [PATCH 021/309] npm packages 4.2.0-rc.1 --- .../package.json | 2 +- .../yarn.lock | 224 ++++++------ .../package.json | 4 +- .../yarn.lock | 260 +++++++------- .../app/Volo.BloggingTestApp/package.json | 4 +- .../app/Volo.BloggingTestApp/yarn.lock | 332 +++++++++--------- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 238 ++++++------- modules/cms-kit/angular/package.json | 8 +- .../angular/projects/cms-kit/package.json | 4 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 238 ++++++------- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 238 ++++++------- .../host/Volo.CmsKit.Web.Unified/package.json | 4 +- .../host/Volo.CmsKit.Web.Unified/yarn.lock | 258 +++++++------- modules/docs/app/VoloDocs.Web/package.json | 4 +- modules/docs/app/VoloDocs.Web/yarn.lock | 298 ++++++++-------- npm/lerna.json | 2 +- npm/ng-packs/lerna.version.json | 2 +- npm/ng-packs/package.json | 20 +- npm/ng-packs/packages/components/package.json | 4 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/identity/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 4 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 4 +- .../packages/theme-shared/package.json | 4 +- npm/ng-packs/yarn.lock | 100 +++--- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 30 +- npm/packs/aspnetcore.mvc.ui/package-lock.json | 2 +- npm/packs/aspnetcore.mvc.ui/package.json | 2 +- npm/packs/blogging/package.json | 10 +- npm/packs/bootstrap-datepicker/package.json | 2 +- npm/packs/bootstrap/package.json | 4 +- npm/packs/chart.js/package.json | 2 +- npm/packs/clipboard/package.json | 4 +- npm/packs/cms-kit/package.json | 4 +- npm/packs/codemirror/package.json | 4 +- npm/packs/core/package.json | 4 +- npm/packs/cropperjs/package.json | 4 +- npm/packs/datatables.net-bs4/package.json | 4 +- npm/packs/datatables.net/package.json | 4 +- npm/packs/docs/package.json | 12 +- npm/packs/flag-icon-css/package.json | 2 +- npm/packs/font-awesome/package.json | 4 +- npm/packs/highlight.js/package.json | 4 +- npm/packs/jquery-form/package.json | 4 +- .../package.json | 4 +- npm/packs/jquery-validation/package.json | 4 +- npm/packs/jquery/package.json | 4 +- npm/packs/jstree/package.json | 4 +- npm/packs/lodash/package.json | 4 +- npm/packs/luxon/package.json | 4 +- .../package.json | 4 +- npm/packs/markdown-it/package.json | 4 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/star-rating-svg/package.json | 4 +- npm/packs/sweetalert/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 10 +- npm/packs/uppy/package.json | 4 +- npm/packs/utils/package.json | 2 +- npm/packs/vee-validate/package.json | 4 +- npm/packs/virtual-file-explorer/package.json | 6 +- npm/packs/vue/package.json | 2 +- templates/app/angular/package.json | 16 +- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web/yarn.lock | 238 ++++++------- templates/module/angular/package.json | 16 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- 93 files changed, 2108 insertions(+), 2108 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index adf881d848..062385c1ba 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^4.1.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.0-rc.1", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 26b95fd56b..e678a40f48 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -36,145 +36,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index d0ca5464b0..793476df47 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1", - "@abp/prismjs": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", + "@abp/prismjs": "^4.2.0-rc.1" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index ae59906117..a02a9ecf62 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,162 +43,162 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.1.tgz#65d3c8ec430029e292f79549e4f8245d08fdc85c" - integrity sha512-dy6Ewb0NHoYqXP/uInaRV9d22uzpJR+XjNrEe+g+i9JXWPwtQ/+ch439E607Z1oV3AkpjSCYCmlTuy641A2klQ== +"@abp/clipboard@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.1.tgz#c98b9639d34ece6249929a958d22f2c2a8997979" + integrity sha512-/mIRwYlwx6oJGWbuhQZ7e0otKi98yzzDjJtNVi1IDimtn9EbfW2aXQ9U7QKX8tZAag9Yran8NYg1KaaghpYSxQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" clipboard "^2.0.6" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.1.tgz#ebdbea3a09e1c1bb5c7ebe2c53b12b48c7634313" - integrity sha512-11cKcdXlf99FEbxmpOcCOj5WR/gPrIJxJfGbgvIKoYvovivleyejGmCx7yzrD39gnKf+ukKp0f2aojnj/fykEw== +"@abp/prismjs@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.1.tgz#4a091790900b23eea2390b016ae20b7fc3c57331" + integrity sha512-dYvcCJ9loOdgnMED0wid7zHK4wQu+3W+7p0nF/+yregZXQt87n8H7nZvAkxiq7PUSkgeJ+8kyutXfddY/Opgsw== dependencies: - "@abp/clipboard" "~4.1.1" - "@abp/core" "~4.1.1" + "@abp/clipboard" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.1" prismjs "^1.20.0" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index cc5a7d76a7..12d1b92f10 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1", - "@abp/blogging": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", + "@abp/blogging": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index f362cc9180..c28f607b01 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,214 +43,214 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/blogging@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.1.1.tgz#378ab4d7700b1832449f7f6fc81d4666487f2c84" - integrity sha512-nA3tpanGdPNGUqYOpAllLp4pkFjmrtABlQaeqLaExbnd5TXH+q2LjONykVC6h73Z6asaClEQMq9o1MFQ+62O3w== +"@abp/blogging@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.2.0-rc.1.tgz#433c8baea0ad489796e04b96dff9e55959e82d71" + integrity sha512-codkbZrBX7GtW5owjv58gWJIY3HeKAiTJl5pnPpvioxIDa/+Oto9W1hIlcFTgqWzC4QJd43RjF0rPb3cYGHtWw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - "@abp/owl.carousel" "~4.1.1" - "@abp/prismjs" "~4.1.1" - "@abp/tui-editor" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + "@abp/owl.carousel" "~4.2.0-rc.1" + "@abp/prismjs" "~4.2.0-rc.1" + "@abp/tui-editor" "~4.2.0-rc.1" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.1.tgz#65d3c8ec430029e292f79549e4f8245d08fdc85c" - integrity sha512-dy6Ewb0NHoYqXP/uInaRV9d22uzpJR+XjNrEe+g+i9JXWPwtQ/+ch439E607Z1oV3AkpjSCYCmlTuy641A2klQ== +"@abp/clipboard@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.1.tgz#c98b9639d34ece6249929a958d22f2c2a8997979" + integrity sha512-/mIRwYlwx6oJGWbuhQZ7e0otKi98yzzDjJtNVi1IDimtn9EbfW2aXQ9U7QKX8tZAag9Yran8NYg1KaaghpYSxQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" clipboard "^2.0.6" -"@abp/codemirror@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.1.1.tgz#b580c94da97049a2ea7f75ff5a133e64a67be04c" - integrity sha512-aRxkO/8uN0bzOWz/lDgskRmzoroXWM+cvIBtJtb9wiE4VkOYg2BSnbpg1H0RGKBOQ1d+PX8cVTeJFymHtiqvmQ== +"@abp/codemirror@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.2.0-rc.1.tgz#e6af9e93dde6b13854e73031f6c626b83d405eee" + integrity sha512-Sqzb4IJ+8B48O5hoFhdhDFzT7AJ5+6AgRfwJKH2kFm0c3PrYzPvr7gGVmitaI7Rb8oN4ROJzRIZDZ90YPMZTSA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" codemirror "^5.54.0" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.1.1.tgz#e918db0e9b45100e26a66e746755fcb80545964a" - integrity sha512-Y29+9qJMj+NfVXmO9D+ZD5YiVzHBq+zTAbo8cS9MxEs2f73c3af2SuIc2hvdD+Te1ZUZmil6F24NLxMq9DUxbw== +"@abp/highlight.js@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.2.0-rc.1.tgz#d0462aa10c8a8afaf256f4e15f163c15d38ade14" + integrity sha512-ZZmGrpX7D9/8kbnBDkEvyp1XPEMYZBMiUyK1an/NUWMdBYlMxda675ZD6xAacI3UAKmwPslEOlFA/dpfbpYXVA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.1.1.tgz#f1ed7e7e801ce4ad0ba17ecdaaed02e67683ddfc" - integrity sha512-cQw4XPMfM8mqW0uluvv0CpyXjAy9PwF85JdrcaGmS2dtp0QticRZ9L2hkYRtGNxHDRrGruDUqHb0K5p/rMideg== +"@abp/markdown-it@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.2.0-rc.1.tgz#6abbe865ada85b600312a93c2bdd520624575562" + integrity sha512-MP+mT/IM8ZHl42Cne2dzqaHfprLGXj79NbsCzgA3RjrhKDosSMDBEpfleuHI8m8zkYyhno+VKBzeqjm+3rQomA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" markdown-it "^11.0.0" -"@abp/owl.carousel@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.1.1.tgz#b5daa7d29e739537e0e4fc984b37ae6f6af2fc6e" - integrity sha512-cCrlzFspX4FxjUSqO2RyBXE1LbgpuN3xG98zjcFWhTVgJUlZJXWBcI7DxFw1AVll50SoyuZy+gvYrFlIHMQF9g== +"@abp/owl.carousel@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.2.0-rc.1.tgz#b5ec191d4bd8f861edf21fd5a4bf85c8c76b37d3" + integrity sha512-a8auKT+pGwNQydEgx6OwBHfzmPBi4cKAXDvIHtWEexQXPa+a9wuBYjHc0Ba0x+0pt/vzm8lq2QvUW9Qa9S9ivg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" owl.carousel "^2.3.4" -"@abp/prismjs@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.1.tgz#ebdbea3a09e1c1bb5c7ebe2c53b12b48c7634313" - integrity sha512-11cKcdXlf99FEbxmpOcCOj5WR/gPrIJxJfGbgvIKoYvovivleyejGmCx7yzrD39gnKf+ukKp0f2aojnj/fykEw== +"@abp/prismjs@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.1.tgz#4a091790900b23eea2390b016ae20b7fc3c57331" + integrity sha512-dYvcCJ9loOdgnMED0wid7zHK4wQu+3W+7p0nF/+yregZXQt87n8H7nZvAkxiq7PUSkgeJ+8kyutXfddY/Opgsw== dependencies: - "@abp/clipboard" "~4.1.1" - "@abp/core" "~4.1.1" + "@abp/clipboard" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.1" prismjs "^1.20.0" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/tui-editor@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.1.1.tgz#a2ce06e58c83e7d809ad1d4b3b124788955eae9a" - integrity sha512-NcnPEptmMDD4TIfjJzVR2+lchOiiScX7b5VzlFxIuhpAwiC1/rHMkQo7/TARQ/LNMSu3mDmrslKRyypcK1FrNw== +"@abp/tui-editor@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.2.0-rc.1.tgz#1d6a482566ee8a826e6ea57622b4606ea722f6cc" + integrity sha512-UAMkXa10tM03smyhaYpF00Xvw9JVRyRM2sgkZmpThlFwCWJVPG/lRAptIxnJK05cuo1DfBcYdonvlaAR9XBhEg== dependencies: - "@abp/codemirror" "~4.1.1" - "@abp/highlight.js" "~4.1.1" - "@abp/jquery" "~4.1.1" - "@abp/markdown-it" "~4.1.1" + "@abp/codemirror" "~4.2.0-rc.1" + "@abp/highlight.js" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.1" + "@abp/markdown-it" "~4.2.0-rc.1" tui-editor "^1.4.10" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 743e4c3a8e..bcab1c3adc 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index bdbe727501..40d91d6a9f 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index cdddc1ad78..01fc520af3 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -16,10 +16,10 @@ "private": true, "dependencies": { "@abp/ng.account": "~3.3.2", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", + "@abp/ng.identity": "~4.2.0-rc.1", + "@abp/ng.setting-management": "~4.2.0-rc.1", + "@abp/ng.tenant-management": "~4.2.0-rc.1", + "@abp/ng.theme.basic": "~4.2.0-rc.1", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 61b5223f80..177d9513b2 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.1.1", - "@abp/ng.theme.shared": ">=4.1.1" + "@abp/ng.core": ">=4.2.0-rc.1", + "@abp/ng.theme.shared": ">=4.2.0-rc.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 4bfd8075d6..c3565d00d9 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 69b141033e..5f2ba264fd 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 55dac5290f..7ee2fbd745 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index ca2f211431..67e34beb12 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 4b0810ca70..32fdf8dc7e 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1", - "@abp/cms-kit": "4.1.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", + "@abp/cms-kit": "4.2.0-rc.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 91ec717f08..406920507a 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,160 +43,160 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/cms-kit@4.1.0-rc.2": - version "4.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.1.0-rc.2.tgz#d2790dd3812214ab0c8eba6e9ad2b8019889e056" - integrity sha512-bS632Qp3tN+LHVj505lUgwtu2JVOhSf3W6VAXlYG0pSy8n1ltonDZHNKO6iwvnskdPaAA4wgJPWgqjXigChx0Q== +"@abp/cms-kit@4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.0-rc.1.tgz#cacb8958a97d8d591960cecfc9074e0797ec522d" + integrity sha512-230HXRAQKWldq5h4f4kT0Ei9VRQloKBVmCtQNyFNttXU/eIf5ggsJEpbn7j5rByypInZGqUO1elfCVetmK64Qw== dependencies: - "@abp/star-rating-svg" "~4.1.0-rc.2" + "@abp/star-rating-svg" "~4.2.0-rc.1" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/star-rating-svg@~4.1.0-rc.2": - version "4.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.1.0-rc.2.tgz#558c681eb591847b3e8f114cbe610e4331f8a0a2" - integrity sha512-LNFCfytarGhqS+91lxYHQKMvlbHMDpjU0Knj8qyefNtQ+rbM2CEspWEtcducim+Qn4brqIHRudUvLI+eEC/0yQ== +"@abp/star-rating-svg@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.0-rc.1.tgz#8a1c28a1dc4e20f05ba6199062563e9a18ac9312" + integrity sha512-vOZcK3c+92VTB6tsSPyi6+qsiN3Ke2ybqWAKCLOK7OyQ0n4HKn2FMhdsoWhI52ACSgJkxVkXEz9ULHqi7a18AQ== dependencies: - "@abp/jquery" "~4.1.0-rc.2" + "@abp/jquery" "~4.2.0-rc.1" star-rating-svg "^3.5.0" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 91860c65aa..1022e9f102 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1", - "@abp/docs": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", + "@abp/docs": "^4.2.0-rc.1" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index c3f6473b33..fc67a247e1 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.1.1.tgz#3d29a59db406d99e612ece32053c1879a2f66b32" - integrity sha512-t7rLY2Jt9C++cf6im9+ib2fcgIp+u43n0TdOYOBfLL2cUKfGbkHROS41fSr+hzrN2ZgF5bXvAt5Fq/KZmlvraQ== +"@abp/anchor-js@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.2.0-rc.1.tgz#eb53fdef1edf0c981b6e3b107a27a16473553e95" + integrity sha512-jOtUbkqNh5uGLnldiwFxlmITk8vjsSE8d1wfU042fbwRz8HgvIrrpFUBCPM23QFulUpnLxP9gmSFoTtKEpHtHA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -51,181 +51,181 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.1.tgz#65d3c8ec430029e292f79549e4f8245d08fdc85c" - integrity sha512-dy6Ewb0NHoYqXP/uInaRV9d22uzpJR+XjNrEe+g+i9JXWPwtQ/+ch439E607Z1oV3AkpjSCYCmlTuy641A2klQ== +"@abp/clipboard@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.1.tgz#c98b9639d34ece6249929a958d22f2c2a8997979" + integrity sha512-/mIRwYlwx6oJGWbuhQZ7e0otKi98yzzDjJtNVi1IDimtn9EbfW2aXQ9U7QKX8tZAag9Yran8NYg1KaaghpYSxQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" clipboard "^2.0.6" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/docs@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.1.1.tgz#8fa960e2b22e46d185591dba80616b29b88dea2d" - integrity sha512-cNcTnoCw/0ft07wcGoQ6QjLn99mWBZUowkIc5x9Fxk6IclYgEP9/avFrXx4jkoW9Eii7jip6J2ngMdpbcI8Chg== +"@abp/docs@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.2.0-rc.1.tgz#ac01ff0f16e61d87e5846c97787b3ce5128da239" + integrity sha512-FFuQ+W6SeTNA17ev1Nelre70Hj6tsjaakFjYbSRHZzXr48FlIhySFMiAqi7zuUEfAdcenAuyDVDcmbd8k0dXjQ== dependencies: - "@abp/anchor-js" "~4.1.1" - "@abp/clipboard" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/popper.js" "~4.1.1" - "@abp/prismjs" "~4.1.1" + "@abp/anchor-js" "~4.2.0-rc.1" + "@abp/clipboard" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/popper.js" "~4.2.0-rc.1" + "@abp/prismjs" "~4.2.0-rc.1" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.1.1.tgz#f01554639ca847af085c769c7a869ff235257dc5" - integrity sha512-C992GXOETg1JpBxStNQKKxasklXhQ9MCIS4oeH9sofB5MInXgSBCt8aJb1pnYLkyU5LIabdk/druFj4eLiDNXQ== +"@abp/popper.js@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.2.0-rc.1.tgz#c68db59d180f13a345e76b7ae6553526dadd5d1c" + integrity sha512-kst3Z9b6MB6RdCDhb3abC84A/87Gd3LWqOiDz/X2WhY+7Toan6k4VvcuDoDSwMQA15nKEM/Ogz5A9kRObzp+2Q== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" popper.js "^1.16.0" -"@abp/prismjs@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.1.tgz#ebdbea3a09e1c1bb5c7ebe2c53b12b48c7634313" - integrity sha512-11cKcdXlf99FEbxmpOcCOj5WR/gPrIJxJfGbgvIKoYvovivleyejGmCx7yzrD39gnKf+ukKp0f2aojnj/fykEw== +"@abp/prismjs@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.1.tgz#4a091790900b23eea2390b016ae20b7fc3c57331" + integrity sha512-dYvcCJ9loOdgnMED0wid7zHK4wQu+3W+7p0nF/+yregZXQt87n8H7nZvAkxiq7PUSkgeJ+8kyutXfddY/Opgsw== dependencies: - "@abp/clipboard" "~4.1.1" - "@abp/core" "~4.1.1" + "@abp/clipboard" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.1" prismjs "^1.20.0" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/npm/lerna.json b/npm/lerna.json index e1106de3ed..0a2f6d2a83 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index fa05cd5653..c171482772 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index e0af0ddc1d..c3a45697f7 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -26,16 +26,16 @@ "postinstall": "npm run compile:ivy" }, "devDependencies": { - "@abp/ng.core": "~4.1.1", - "@abp/ng.feature-management": "~4.1.1", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.permission-management": "~4.1.1", - "@abp/ng.schematics": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", - "@abp/utils": "^4.1.1", + "@abp/ng.core": "~4.2.0-rc.1", + "@abp/ng.feature-management": "~4.2.0-rc.1", + "@abp/ng.identity": "~4.2.0-rc.1", + "@abp/ng.permission-management": "~4.2.0-rc.1", + "@abp/ng.schematics": "~4.2.0-rc.1", + "@abp/ng.setting-management": "~4.2.0-rc.1", + "@abp/ng.tenant-management": "~4.2.0-rc.1", + "@abp/ng.theme.basic": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/utils": "^4.2.0-rc.1", "@angular-builders/jest": "^10.0.0", "@angular-devkit/build-angular": "~0.1100.0", "@angular-devkit/build-ng-packagr": "~0.1001.2", diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index f0ebac29ee..d505ac53f7 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.components", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=4.1.1", + "@abp/ng.core": ">=4.2.0-rc.1", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 3727b50bc4..990952e6d0 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^4.1.1", + "@abp/utils": "^4.2.0-rc.1", "@angular/localize": "~10.0.10", "@ngxs/store": "^3.7.0", "angular-oauth2-oidc": "^10.0.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 4fdbeab8b4..4aeec75f18 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index b4ade1d604..b18f726f7a 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.permission-management": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 89ab8c542e..a5fc280295 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index c495c53f6f..1ee4a53af4 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "4.1.1", + "version": "4.2.0-rc.1", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index abf9e4ec09..7ae11bc32f 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.setting-management", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index bfd3d357c3..dd5c537cba 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.feature-management": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 8fe51f1d8b..ebff735120 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.basic", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index fdf767100e..dd60bcb3ea 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "4.1.1", + "version": "4.2.0-rc.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~4.1.1", + "@abp/ng.core": "~4.2.0-rc.1", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.13", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index b1054fbeea..a42903acdd 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@abp/ng.core@~4.1.0", "@abp/ng.core@~4.1.0-rc.2": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.1.0.tgz#be90be576300e9f379775484bc22643013e79b74" - integrity sha512-Jd9d4qIAzrhmU4cyZXCS4qOHIDQRJpirwxKwaPooKeeNrNs1HqVVLTNAlhGC/ofmukYsiJC99wpmd7pvUN2tBA== +"@abp/ng.core@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.1.1.tgz#9ef78d157515356eb284ff3f45bf5922a2bac199" + integrity sha512-H1L3YxDvI0N4bQ4NtYo0x2K8Mfuhamh940XvtcC14pet4+aptqycfUrKHsKulGvDPZC60gf/E7JjZnQHw0rx+w== dependencies: - "@abp/utils" "^4.1.0-rc.2" + "@abp/utils" "^4.1.0" "@angular/localize" "~10.0.10" "@ngxs/store" "^3.7.0" angular-oauth2-oidc "^10.0.0" @@ -17,35 +17,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~4.1.0", "@abp/ng.feature-management@~4.1.0-rc.2": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.1.0.tgz#5e87592d276315994fa1b5f35f2a568476d9cf3d" - integrity sha512-PJM/rj5mjzGHXUEKa6UWbhhgjJafoKkHTYW/4+4KNM8tmwggNS+YmwOj0xdqfQlF1aYtUsMWpI0koMbtqgBH/A== +"@abp/ng.feature-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.1.1.tgz#94944d88489c1a9414653179504d59d078b5644a" + integrity sha512-957QGxJJ16URxOkJ/k88cCh8fmX1pXNgdfpmRqeTeac1GIFjs05WDxjfIPIdE9wX5iAI93p8LWLy61+xba6qmQ== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.identity@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.1.0.tgz#bebf0e4b85f0332313a827cc344c3d9e6af59d33" - integrity sha512-doBqoPtxPdT8e27s4h97ldV6tsMHeKCXpyNiMAlweTFcsXjZjXnVJbuXYvqdoyRItqTbSxSlBKxk+6KRb9lPQQ== +"@abp/ng.identity@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.1.1.tgz#37da658648dd261d4b707864078cbb995239858f" + integrity sha512-0lkkUjOFSMEa8Mlk/yiqzejuNJ+mlyRiBWgpHbasWCj7eOP0KvSpF9VNtOefwflsI5kg2W5rTfjb/QIsHqmHDw== dependencies: - "@abp/ng.permission-management" "~4.1.0" - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.permission-management" "~4.1.1" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.permission-management@~4.1.0", "@abp/ng.permission-management@~4.1.0-rc.2": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.1.0.tgz#1bf09f21a254c265d75db83e96f48a5706214a08" - integrity sha512-/kc9wFtGmwHW28a2GfroJqUOk6PPlGQ8YNzU37cuN5BBK7909Eu1Q+4a9JigQqCsBGTxVgIpP4WQ2p7CcfIymg== +"@abp/ng.permission-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.1.1.tgz#f96d327eb2163e30d3dc91ee985c78a7d57b63c3" + integrity sha512-e89j6Z5sje3/gY8vw9PTPlDne1XiJqTu3EuX+K14TpfDfgIzo+xEhqjygkAEsg+PW/bXJyfAMPeR0Ygn6MobLA== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.schematics@~4.1.0-rc.2": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.1.0.tgz#f2b2361ccbe49c7981d3c2fe6b43c745eedc46c1" - integrity sha512-BNpyqkkWBEF8nYZwK+krHjqbbQHHiqUoXe/FspNDkSuVTvC6wGmNe/8BalJLZzPF3lNI8ByNC2/MwrGh/Tzlpg== +"@abp/ng.schematics@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.1.1.tgz#2450108711e93efb480cee410a6312db85a3fde0" + integrity sha512-9GGAKXSa6lCrRLwtul70MrlBt60Dijpz2QtH8W4to0CgQeLsDMSODNNHwfAvFk6Utk7hSLdFTVwetvujqBVjsA== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -53,37 +53,37 @@ jsonc-parser "^2.3.0" typescript "~3.9.2" -"@abp/ng.setting-management@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.1.0.tgz#8ef31a7f4c75be34f5be78427165f2d2b85ae16e" - integrity sha512-8zH4jCNVwPIGgYlrHSm/0BKje1bFCQBOwAsdlVP6A6GRyOVY/6G5166ZAnEqbim8K6ln5WXPHTHtYnxB7Qur8Q== +"@abp/ng.setting-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.1.1.tgz#87ecc6cd0dec1bbc73ddddd712f34bcd05ee9ae0" + integrity sha512-ETMI66eviUyObT4O7yl+dA0X3AlnL9iXITpPHssLfEVgAJh1LbAOmTJDGyDgLPAOQnfZ3+CYGvDWfEmRNuqa0w== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.tenant-management@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.1.0.tgz#ec59e469e806a5081b52b1c597c333b49381afe7" - integrity sha512-VZ/qiOz/XbUJT6rb+X9GUhwnBTqTt9UIAlAGiT7qONH/39pqUpe6n5d3lbL5oGGZ+ZxJ6S2/+dSKLC1cFt+Bgg== +"@abp/ng.tenant-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.1.1.tgz#a3ff09dbc00e5bdb790dfb1758ee9767810ec6bb" + integrity sha512-cmMxOty6/0d+dnTnp+/bANe2Bpv/Fb+04atu61IkwiOUtUvQGMLE7BAhTv/xjVAPrpvwKAIuqM0+OeWG1yOcKQ== dependencies: - "@abp/ng.feature-management" "~4.1.0" - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.feature-management" "~4.1.1" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.theme.basic@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.1.0.tgz#0931a33ca6cdb7375d77e75611cd7d3542b16c43" - integrity sha512-rI80s3meGZzgHa4Ke5fAhwP79D/MRiThI47ixFhxUyPSP3+ogjziAn98SIsadkcjhH86lsSV9s2uCnzeqReBMg== +"@abp/ng.theme.basic@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.1.1.tgz#c78fe49a029674fb474e65eb0b03c55519acd2c2" + integrity sha512-/CnNp3dtDxyWBTWAlEzscYmwth0BXAz7bNxkREZoLR/7fSYetExk0ncIJnxelPMV9jZK9WwULDssJpfh0g5lSw== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.theme.shared@~4.1.0", "@abp/ng.theme.shared@~4.1.0-rc.2": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.1.0.tgz#e0140bdc9f44609e77097dd046ce3067546fc6ca" - integrity sha512-0YtyVBp/1Tciu+8ORkRVTHSFT7kJGTqH+cdq+FnbqD90JQ5XZjlHcz+h/VhARoB00xbXsG8ZbwCOi/8ZFDg5wQ== +"@abp/ng.theme.shared@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.1.1.tgz#b5952a0c3e48833147515dc7484e986d7ae78df8" + integrity sha512-sU6BDcUeRMXsPn9J6u13dekJSc6Yi40Vl5JrdPPQT8T5f3oCXT3IbnC+gC2fD53WRXKIn1gPPvw4kT9N5mSeJQ== dependencies: - "@abp/ng.core" "~4.1.0" + "@abp/ng.core" "~4.1.1" "@fortawesome/fontawesome-free" "^5.14.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.13" @@ -99,10 +99,10 @@ dependencies: just-compare "^1.3.0" -"@abp/utils@^4.1.0-rc.2": - version "4.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.0-rc.2.tgz#eb6dbf0ee493d0f050b37347d2d6d283098aedae" - integrity sha512-V2k5I89lVBoeGIKgg4p2H9GlMAcDWbctwKZPVwBEMVEVm1uTR2xQAWdTdSFd5Q8I8Xsf/aIG8ELM7l5j2h7/zQ== +"@abp/utils@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" + integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== dependencies: just-compare "^1.3.0" diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index ff8190ebb8..0680d6a098 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index c81019ac5a..1524296fc4 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 0b0cacf1ef..b78e252ed8 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,24 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~4.1.1", - "@abp/bootstrap": "~4.1.1", - "@abp/bootstrap-datepicker": "~4.1.1", - "@abp/datatables.net-bs4": "~4.1.1", - "@abp/font-awesome": "~4.1.1", - "@abp/jquery-form": "~4.1.1", - "@abp/jquery-validation-unobtrusive": "~4.1.1", - "@abp/lodash": "~4.1.1", - "@abp/luxon": "~4.1.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.1.1", - "@abp/select2": "~4.1.1", - "@abp/sweetalert": "~4.1.1", - "@abp/timeago": "~4.1.1", - "@abp/toastr": "~4.1.1" + "@abp/aspnetcore.mvc.ui": "~4.2.0-rc.1", + "@abp/bootstrap": "~4.2.0-rc.1", + "@abp/bootstrap-datepicker": "~4.2.0-rc.1", + "@abp/datatables.net-bs4": "~4.2.0-rc.1", + "@abp/font-awesome": "~4.2.0-rc.1", + "@abp/jquery-form": "~4.2.0-rc.1", + "@abp/jquery-validation-unobtrusive": "~4.2.0-rc.1", + "@abp/lodash": "~4.2.0-rc.1", + "@abp/luxon": "~4.2.0-rc.1", + "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.1", + "@abp/select2": "~4.2.0-rc.1", + "@abp/sweetalert": "~4.2.0-rc.1", + "@abp/timeago": "~4.2.0-rc.1", + "@abp/toastr": "~4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 2f5b58594e..260b7aaebc 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "4.1.1", + "version": "4.2.0-rc.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index bc591bc349..0609b13d78 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/aspnetcore.mvc.ui", "publishConfig": { "access": "public" diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index dec02a35f5..9df7353f9c 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.1.1", - "@abp/owl.carousel": "~4.1.1", - "@abp/prismjs": "~4.1.1", - "@abp/tui-editor": "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.1", + "@abp/owl.carousel": "~4.2.0-rc.1", + "@abp/prismjs": "~4.2.0-rc.1", + "@abp/tui-editor": "~4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 58fcf90122..ae0e6d9cb6 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/bootstrap-datepicker", "publishConfig": { "access": "public" diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index cc9f76609f..a680bdc675 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/bootstrap", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "bootstrap": "^4.5.0", "bootstrap-v4-rtl": "4.4.1-2" }, diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index ac5ff9359c..4cd3516593 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index ebe10e6c4f..d7d9cdea41 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 19b9fece3f..96b4af59bc 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/star-rating-svg": "~4.1.1" + "@abp/star-rating-svg": "~4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 02ba9aec6a..16e7097c25 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index f37f93a833..34d60f20f1 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/core", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^4.1.1" + "@abp/utils": "^4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index b2ca404e85..4cbeeb4f33 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 5e50d3505f..41590140ca 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/datatables.net-bs4", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~4.1.1", + "@abp/datatables.net": "~4.2.0-rc.1", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index d19fc22230..370ed83b5f 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/datatables.net", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.2.0-rc.1", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 0cd0037b7f..12115c37c7 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~4.1.1", - "@abp/clipboard": "~4.1.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.1.1", - "@abp/popper.js": "~4.1.1", - "@abp/prismjs": "~4.1.1" + "@abp/anchor-js": "~4.2.0-rc.1", + "@abp/clipboard": "~4.2.0-rc.1", + "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.1", + "@abp/popper.js": "~4.2.0-rc.1", + "@abp/prismjs": "~4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 76b4f31548..2bc928dd09 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 0142db1faa..aad44c7006 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/font-awesome", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index f7e9e2cdb2..874f84d496 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1" + "@abp/core": "~4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index ffcc37665f..0576427c17 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/jquery-form", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.2.0-rc.1", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 444aabd226..f634763f83 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/jquery-validation-unobtrusive", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~4.1.1", + "@abp/jquery-validation": "~4.2.0-rc.1", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 5f3afc028e..31ef368b26 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/jquery-validation", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.2.0-rc.1", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 110d4845b5..fc9d66b509 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/jquery", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "jquery": "~3.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 0e9b3937cc..d3b5cb2420 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.2.0-rc.1", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index eeccba52ca..34fb363feb 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/lodash", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index c5c653834b..5d9311a0b1 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/luxon", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "luxon": "^1.24.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index f151722d03..530eee7b20 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/malihu-custom-scrollbar-plugin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index ad0950a706..2a0361295d 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index da74f5a4c8..c8bea01a38 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 4a6c6237d8..dbd73acbd1 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "popper.js": "^1.16.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 9642a5432c..387dda531a 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.1.1", - "@abp/core": "~4.1.1", + "@abp/clipboard": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.1", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 56d10b4965..b8ee85ea7e 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/select2", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 4d9b4a6ba0..5ead5f7edd 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index 4cb936e30d..b9d837e80a 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.2.0-rc.1", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert/package.json b/npm/packs/sweetalert/package.json index 032666cd3f..bb6a70fb8f 100644 --- a/npm/packs/sweetalert/package.json +++ b/npm/packs/sweetalert/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/sweetalert", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "sweetalert": "^2.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 9d71eedf1a..4339509c4e 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/timeago", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.2.0-rc.1", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 4ab30c5c06..8dc49693fc 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/toastr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.2.0-rc.1", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index f66e31b988..7b0888bf21 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~4.1.1", - "@abp/highlight.js": "~4.1.1", - "@abp/jquery": "~4.1.1", - "@abp/markdown-it": "~4.1.1", + "@abp/codemirror": "~4.2.0-rc.1", + "@abp/highlight.js": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.1", + "@abp/markdown-it": "~4.2.0-rc.1", "tui-editor": "^1.4.10" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 3b314107a6..fd381bb8e8 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.2.0-rc.1", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 6a9ffaf87d..9dea904281 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "4.1.1", + "version": "4.2.0-rc.1", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index eb147cb830..c83c1639d3 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~4.1.1", + "@abp/vue": "~4.2.0-rc.1", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 62a3514e59..3a84312aec 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.1.1", - "@abp/prismjs": "~4.1.1" + "@abp/clipboard": "~4.2.0-rc.1", + "@abp/prismjs": "~4.2.0-rc.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index f039e589b0..b7a9f44fab 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.2.0-rc.1", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 23c24b3528..6617752ea3 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,13 +12,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.1.1", - "@abp/ng.core": "~4.1.1", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.components": "~4.2.0-rc.1", + "@abp/ng.core": "~4.2.0-rc.1", + "@abp/ng.identity": "~4.2.0-rc.1", + "@abp/ng.setting-management": "~4.2.0-rc.1", + "@abp/ng.tenant-management": "~4.2.0-rc.1", + "@abp/ng.theme.basic": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -32,7 +32,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.1.1", + "@abp/ng.schematics": "~4.2.0-rc.1", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 55dac5290f..7ee2fbd745 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index fb1fbd6bad..5ee071ba9b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index 4bfd8075d6..c3565d00d9 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 69b141033e..5f2ba264fd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 55dac5290f..7ee2fbd745 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 69b141033e..5f2ba264fd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 55dac5290f..7ee2fbd745 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index fb1fbd6bad..5ee071ba9b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 9fe715068a..5b924f607a 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,13 +15,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.1.1", - "@abp/ng.core": "~4.1.1", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.components": "~4.2.0-rc.1", + "@abp/ng.core": "~4.2.0-rc.1", + "@abp/ng.identity": "~4.2.0-rc.1", + "@abp/ng.setting-management": "~4.2.0-rc.1", + "@abp/ng.tenant-management": "~4.2.0-rc.1", + "@abp/ng.theme.basic": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.1", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -35,7 +35,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.1.1", + "@abp/ng.schematics": "~4.2.0-rc.1", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 7591bb4e25..46e42f02b4 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.1.1", - "@abp/ng.theme.shared": ">=4.1.1" + "@abp/ng.core": ">=4.2.0-rc.1", + "@abp/ng.theme.shared": ">=4.2.0-rc.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index 4bfd8075d6..c3565d00d9 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 69b141033e..5f2ba264fd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 55dac5290f..7ee2fbd745 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 69b141033e..5f2ba264fd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 55dac5290f..7ee2fbd745 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock index ba87a529ac..976937fb0c 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" + integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" + integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" + "@abp/bootstrap" "~4.2.0-rc.1" + "@abp/bootstrap-datepicker" "~4.2.0-rc.1" + "@abp/datatables.net-bs4" "~4.2.0-rc.1" + "@abp/font-awesome" "~4.2.0-rc.1" + "@abp/jquery-form" "~4.2.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" + "@abp/lodash" "~4.2.0-rc.1" + "@abp/luxon" "~4.2.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" + "@abp/select2" "~4.2.0-rc.1" + "@abp/sweetalert" "~4.2.0-rc.1" + "@abp/timeago" "~4.2.0-rc.1" + "@abp/toastr" "~4.2.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" + integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" + integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" + integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" + integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" + integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.2.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" + integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" + integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" + integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" + integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.2.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" + integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" + integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" + integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" + integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" + integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" + integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" + integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.2.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" + integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" + integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.2.0-rc.1" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== dependencies: just-compare "^1.3.0" From 2424e2832e870154216d9bde1c5dfdbc8432a7fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Jan 2021 21:07:16 +0300 Subject: [PATCH 022/309] Initial 4.2 blog post --- .../2021-01-14 v4_2_Preview/POST.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md new file mode 100644 index 0000000000..0c44e43825 --- /dev/null +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -0,0 +1,51 @@ +# ABP Framework 4.2 RC Has Been Published + +Today, we have released the [ABP Framework](https://abp.io/) and the [ABP Commercial](https://commercial.abp.io/) 4.2.0 RC (Release Candidate). This blog post introduces the new features and important changes in this new version. + +> **The planned release date for the [4.2.0 final](https://github.com/abpframework/abp/milestone/48) version is January 28, 2021**. + +## Get Started with the 4.2 RC + +If you want to try the version `4.2.0` today, follow the steps below; + +1) **Upgrade** the ABP CLI to the version `4.2.0-rc.1` using a command line terminal: + +````bash +dotnet tool update Volo.Abp.Cli -g --version 4.2.0-rc.1 +```` + +**or install** if you haven't installed before: + +````bash +dotnet tool install Volo.Abp.Cli -g --version 4.2.0-rc.1 +```` + +2) Create a **new application** with the `--preview` option: + +````bash +abp new BookStore --preview +```` + +See the [ABP CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all the available options. + +> You can also use the *Direct Download* tab on the [Get Started](https://abp.io/get-started) page by selecting the **Preview checkbox**. + +## What's new with the ABP Framework 4.2 + +TODO + +## What's new with the ABP Commercial 4.2 + +TODO + +## ABP Commercial + +TODO + +## About the Next Release(s) + +TODO + +## Feedback + +Please check out the ABP Framework 4.2.0 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. **The planned release date for the [4.2.0 final](https://github.com/abpframework/abp/milestone/48) version is January 28, 2021**. From a1b8cc01263d33a573fedf3d6110f17cf7013f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Jan 2021 21:49:08 +0300 Subject: [PATCH 023/309] Documented IRepository.GetQueryableAsync() change in the blog post. --- .../2021-01-14 v4_2_Preview/POST.md | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 0c44e43825..253fc4a803 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -32,7 +32,79 @@ See the [ABP CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all t ## What's new with the ABP Framework 4.2 -TODO +## IRepository.GetQueryableAsync() + +> **This version comes with an important change about using `IQueryable` features over the [repositories](https://docs.abp.io/en/abp/4.2/Repositories). It is suggested to read this section carefully and apply in your applications.** + +`IRepository` interface inherits `IQueryable`, so you can directly use the standard LINQ extension methods, like `Where`, `OrderBy`, `First`, `Sum`... etc. + +**Example: Using LINQ directly over the repository object** + +````csharp +public class BookAppService : ApplicationService, IBookAppService +{ + private readonly IRepository _bookRepository; + + public BookAppService(IRepository bookRepository) + { + _bookRepository = bookRepository; + } + + public async Task DoItInOldWayAsync() + { + //Apply any standard LINQ extension method + var query = _bookRepository + .Where(x => x.Price > 10) + .OrderBy(x => x.Name); + + //Execute the query asynchronously + var books = await AsyncExecuter.ToListAsync(query); + } +} +```` + +*See [the documentation](https://docs.abp.io/en/abp/4.2/Repositories#iqueryable-async-operations) if you wonder what is the `AsyncExecuter`.* + +Beginning from the version 4.2, the recommended way is using `IRepository.GetQueryableAsync()` to obtain an `IQueryable`, then use the LINQ extension methods over it. + +**Example: Using the new GetQueryableAsync method** + +````csharp +public async Task DoItInNewWayAsync() +{ + //Use GetQueryableAsync to obtain the IQueryable first + var queryable = await _bookRepository.GetQueryableAsync(); + + //Then apply any standard LINQ extension method + var query = queryable + .Where(x => x.Price > 10) + .OrderBy(x => x.Name); + + //Finally, execute the query asynchronously + var books = await AsyncExecuter.ToListAsync(query); +} +```` + +ABP may start a database transaction when you get an `IQueryable` (If current [Unit Of Work](https://docs.abp.io/en/abp/latest/Unit-Of-Work) is transactional). In this new way, it is possible to **start the database transaction in an asynchronous way**. Previously, we could not get the advantage of asynchronous while starting the transactions. + +> **The new way has a significant performance and scalability gain. The old usage (directly using LINQ over the repositories) will be removed in the next major version.** You have a lot of time for the change, but we recommend to immediately take the action since the old usage has a big scalability problem. + +#### About IRepository Async Extension Methods + +Using IRepository Async Extension Methods has no such a problem. The examples below are pretty fine: + +````csharp +var countAll = await _personRepository + .CountAsync(); + +var count = await _personRepository + .CountAsync(x => x.Name.StartsWith("A")); + +var book1984 = await _bookRepository + .FirstOrDefaultAsync(x => x.Name == "John"); +```` + +See the [repository documentation](https://docs.abp.io/en/abp/4.2/Repositories#iqueryable-async-operations) to understand the relation between `IQueryable` and asynchronous operations. ## What's new with the ABP Commercial 4.2 From cdbd7ab0dbd776377e2b3197c1279e411294f282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Jan 2021 22:10:16 +0300 Subject: [PATCH 024/309] Added sections to the blog post --- .../2021-01-14 v4_2_Preview/POST.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 253fc4a803..094a2d64d1 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -106,6 +106,36 @@ var book1984 = await _bookRepository See the [repository documentation](https://docs.abp.io/en/abp/4.2/Repositories#iqueryable-async-operations) to understand the relation between `IQueryable` and asynchronous operations. +### Repository Bulk Operations + +This version adds the following methods to the repositories: + +* `InsertManyAsync` +* `UpdateManyAsync` +* `DeleteManyAsync` + +The purpose of these methods to insert, update or delete many entities in one call with a better performance. + +Currently, **MongoDB** provider implements these methods as a single bulk operation since MongoDB API natively supports. But current **Entity Framework Core** implementation is not a real bulk operation. Instead, it does its best with the native API of the EF Core. If you want to implement in a more performant way, you can [customize the bulk operations](https://docs.abp.io/en/abp/4.2/Entity-Framework-Core#customize-bulk-operations) with your own implementation or by using a library. We could find a good open source library for EF Core 5.0 to implement it. + +### Selecting DBMS on Template Creation + +And DbMigrator creates the initial migration if no migration exists. + +**TODO** + +### Angular Unit Testing + +We've improved the modules and the startup template to setup and write unit tests easier with the Angular UI. See the [Angular Unit Testing document](https://docs.abp.io/en/abp/4.2/UI/Angular/Testing) for details. + +### Other News + +* Improved HTTP **request-response performance** by resolving dependencies in a deferred way in the action/page filters, interceptors and some other services. +* Removed `MultipleActiveResultSets` from connection strings for new templates for SQL Server, since the new EF Core gives a warning when using it. If you want to use it, you need to change the connection string yourself. +* Added `HardDeleteAsync` extension method that takes a predicate to delete multiple entities. This extension method is available if the entity [Soft Delete](https://docs.abp.io/en/abp/latest/Data-Filtering). +* Implemented the [Page Alerts](https://docs.abp.io/en/abp/4.2/UI/Angular/Page-Alerts) for Angular UI. +* Implemented [Page Progressbar](https://github.com/abpframework/abp/blob/dev/docs/en/UI/Blazor/Page-Progress.md). It automatically shows an undetermined progress bar on top of the page while performing an AJAX request. It also proves an API to you if you need to show/hide the progress bar in your code. + ## What's new with the ABP Commercial 4.2 TODO From ab1af66478374239e391047ba6eb515db2ed6e37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Jan 2021 22:14:24 +0300 Subject: [PATCH 025/309] Added sections to the post --- .../2021-01-14 v4_2_Preview/POST.md | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 094a2d64d1..aaa69d9335 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -124,6 +124,10 @@ And DbMigrator creates the initial migration if no migration exists. **TODO** +### Swagger Login + +TODO + ### Angular Unit Testing We've improved the modules and the startup template to setup and write unit tests easier with the Angular UI. See the [Angular Unit Testing document](https://docs.abp.io/en/abp/4.2/UI/Angular/Testing) for details. @@ -138,12 +142,30 @@ We've improved the modules and the startup template to setup and write unit test ## What's new with the ABP Commercial 4.2 +### Microservice Startup Template + +TODO + +### Public Website in the Startup Templates + TODO -## ABP Commercial +### Easy CRM Blazor UI TODO +### Other News + +* Implemented Iyzico as a payment gateway for the payment module in addition to Paypal, Stripe, 2Checkout and Payu. +* TODO: Suite news + +## ABP Community News + +TODO: + +* Video content support +* Multi-language support - accepting content in every language! + ## About the Next Release(s) TODO From 8293b0aa0fc67d5ec5d6f3f028ffa440b27b5bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Jan 2021 22:15:06 +0300 Subject: [PATCH 026/309] Update POST.md --- docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index aaa69d9335..21654d2b1c 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -137,8 +137,8 @@ We've improved the modules and the startup template to setup and write unit test * Improved HTTP **request-response performance** by resolving dependencies in a deferred way in the action/page filters, interceptors and some other services. * Removed `MultipleActiveResultSets` from connection strings for new templates for SQL Server, since the new EF Core gives a warning when using it. If you want to use it, you need to change the connection string yourself. * Added `HardDeleteAsync` extension method that takes a predicate to delete multiple entities. This extension method is available if the entity [Soft Delete](https://docs.abp.io/en/abp/latest/Data-Filtering). -* Implemented the [Page Alerts](https://docs.abp.io/en/abp/4.2/UI/Angular/Page-Alerts) for Angular UI. -* Implemented [Page Progressbar](https://github.com/abpframework/abp/blob/dev/docs/en/UI/Blazor/Page-Progress.md). It automatically shows an undetermined progress bar on top of the page while performing an AJAX request. It also proves an API to you if you need to show/hide the progress bar in your code. +* Implemented the [Page Alerts](https://docs.abp.io/en/abp/4.2/UI/Angular/Page-Alerts) for the **Angular UI**. +* Implemented [Page Progressbar](https://github.com/abpframework/abp/blob/dev/docs/en/UI/Blazor/Page-Progress.md) for the **Blazor UI**. It automatically shows an undetermined progress bar on top of the page while performing an AJAX request. It also proves an API to you if you need to show/hide the progress bar in your code. ## What's new with the ABP Commercial 4.2 From 7695f3ea541ebec57c4737b1101c8914706eb703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Jan 2021 22:17:30 +0300 Subject: [PATCH 027/309] Added Blazor Page Progress to the docs menu --- docs/en/docs-nav.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 517da0239f..3fff6d67c1 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -681,6 +681,10 @@ { "text": "Page Alerts", "path": "UI/Blazor/Page-Alerts.md" + }, + { + "text": "Page Progress", + "path": "UI/Blazor/Page-Progress.md" } ] }, From f5c34c4227ca1b2a36080d914936d10aee5ef2ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 14 Jan 2021 23:18:13 +0300 Subject: [PATCH 028/309] Added section: Microservice Startup Template --- .../2021-01-14 v4_2_Preview/POST.md | 26 ++++++++++++++++-- .../microservice-template-diagram.png | Bin 0 -> 76701 bytes 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 docs/en/Blog-Posts/2021-01-14 v4_2_Preview/microservice-template-diagram.png diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 21654d2b1c..1f78629cb1 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -138,13 +138,35 @@ We've improved the modules and the startup template to setup and write unit test * Removed `MultipleActiveResultSets` from connection strings for new templates for SQL Server, since the new EF Core gives a warning when using it. If you want to use it, you need to change the connection string yourself. * Added `HardDeleteAsync` extension method that takes a predicate to delete multiple entities. This extension method is available if the entity [Soft Delete](https://docs.abp.io/en/abp/latest/Data-Filtering). * Implemented the [Page Alerts](https://docs.abp.io/en/abp/4.2/UI/Angular/Page-Alerts) for the **Angular UI**. -* Implemented [Page Progressbar](https://github.com/abpframework/abp/blob/dev/docs/en/UI/Blazor/Page-Progress.md) for the **Blazor UI**. It automatically shows an undetermined progress bar on top of the page while performing an AJAX request. It also proves an API to you if you need to show/hide the progress bar in your code. +* Implemented [Page Progress](https://docs.abp.io/en/abp/4.2/UI/Blazor/Page-Progress) for the **Blazor UI**. It automatically shows an undetermined progress bar on top of the page while performing an AJAX request. It also proves an API to you if you need to show/hide the progress bar in your code. ## What's new with the ABP Commercial 4.2 ### Microservice Startup Template -TODO +The new [Microservice Startup Template](https://docs.abp.io/en/commercial/4.2/startup-templates/microservice/index) is a generic solution to start a new microservice solution. + +While we accept that every microservice solution will be different and every system has its own design requirements and trade-offs, we believe such a startup solution is a very useful starting point for most of the solutions, and a useful example for others. + +![microservice-template-diagram](microservice-template-diagram.png) + +*Figure: A simplified overall diagram of the microservice solution.* + +You can [follow the documentation](https://docs.abp.io/en/commercial/4.2/startup-templates/microservice/index) to get started with this startup template. **This template should be considered as an early release**. We will improve it and write a lot of guides. + +If you want to use the ABP Suite to create your solution, then you need to first upgrade it: + +````bash +abp suite update +```` + +If you want, you can directly create a new solution from the command line: + +````bash +abp new Volosoft.MyMicroserviceSystem -t microservice-pro --preview +```` + +Company Name is optional. Solution name could be *MyMicroserviceSystem* for this example. ### Public Website in the Startup Templates diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/microservice-template-diagram.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/microservice-template-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6df5ab7440f9103872bae80e913d0d3198a36c GIT binary patch literal 76701 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 Date: Thu, 14 Jan 2021 23:54:54 +0300 Subject: [PATCH 029/309] Added section: Public Website in the Startup Templates --- .../Blog-Posts/2021-01-14 v4_2_Preview/POST.md | 8 +++++++- .../2021-01-14 v4_2_Preview/public-website.jpg | Bin 0 -> 290579 bytes 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 docs/en/Blog-Posts/2021-01-14 v4_2_Preview/public-website.jpg diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 1f78629cb1..66090d670f 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -170,7 +170,13 @@ Company Name is optional. Solution name could be *MyMicroserviceSystem* for this ### Public Website in the Startup Templates -TODO +As mentioned in the previous release post, we've added a *Public Website* application to the startup templates. It is configured to authenticate through the IdentityServer with a single sign-on system. + +You can use this application to create a landing page for your actual application or a corporate website for your business. + +![public-website](public-website.jpg) + +It uses the same *Lepton Theme*, so you can apply [all the styles](https://commercial.abp.io/themes). The Public Website has a different layout and also has a different setting for the styling (that can be configured in the *Settings / Lepton Theme* page of the main web application). ### Easy CRM Blazor UI diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/public-website.jpg b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/public-website.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5784519bd4aff8b222ca54f9da8fc21d30158ad GIT binary patch literal 290579 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�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

YY; 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

A2++1ylNTa>R;wdb6XsggJO_7kq(^S8Ez;ivrwX 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

DznJpK5p|1bf_Nii*#qQ(aA!_UAyJt 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 VK!5%Rx^;mRWAk5gZUk@me*kXr(6j&m literal 0 HcmV?d00001 From e45412894b8c11748f3e84b8da8eaef18edde2ec Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 15 Jan 2021 00:00:28 +0300 Subject: [PATCH 030/309] limit chars allowed before System when parsing types --- npm/ng-packs/packages/schematics/src/utils/type.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/type.ts b/npm/ng-packs/packages/schematics/src/utils/type.ts index a087392d40..dbae0c55db 100644 --- a/npm/ng-packs/packages/schematics/src/utils/type.ts +++ b/npm/ng-packs/packages/schematics/src/utils/type.ts @@ -9,7 +9,7 @@ import { parseGenerics } from './tree'; export function createTypeSimplifier() { const parseType = createTypeParser(t => { let type = t.replace( - /System\.([0-9A-Za-z.]+)/g, + /(? SYSTEM_TYPES.get(match) ?? 'any', ); From 8c3877a962f1551f0fe994074a03ba1c38ea2114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 15 Jan 2021 00:05:36 +0300 Subject: [PATCH 031/309] Added section: About the Next Release --- docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 66090d670f..11d7bed7db 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -172,12 +172,14 @@ Company Name is optional. Solution name could be *MyMicroserviceSystem* for this As mentioned in the previous release post, we've added a *Public Website* application to the startup templates. It is configured to authenticate through the IdentityServer with a single sign-on system. -You can use this application to create a landing page for your actual application or a corporate website for your business. +You can use this application to create a landing page for your actual application or a corporate website for your business. An example screenshot: ![public-website](public-website.jpg) It uses the same *Lepton Theme*, so you can apply [all the styles](https://commercial.abp.io/themes). The Public Website has a different layout and also has a different setting for the styling (that can be configured in the *Settings / Lepton Theme* page of the main web application). +TODO: How to get started? + ### Easy CRM Blazor UI TODO @@ -194,9 +196,11 @@ TODO: * Video content support * Multi-language support - accepting content in every language! -## About the Next Release(s) +## About the Next Release -TODO +The next feature version will be 4.3.0. It is planned to release the 4.3 RC (Release Candidate) on March 11 and the final version on March 25, 2021. + +We decided to slow down the feature development for the [next milestone](https://github.com/abpframework/abp/milestone/49). We will continue to improve the existing features and introduce new ones, sure, but wanted to have more time for the planning, documentation, creating guides and improving the development experience. ## Feedback From c17d85caa25b520858d4dc840c42ced9ee78c9fc Mon Sep 17 00:00:00 2001 From: jerviscui Date: Fri, 15 Jan 2021 10:10:17 +0800 Subject: [PATCH 032/309] fix images path error --- docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md b/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md index db434ab365..81755fbf0d 100644 --- a/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md +++ b/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md @@ -1767,7 +1767,7 @@ public async Task ChangeTitleAsync(Issue issue, string title) 如前所述,领域驱动设计中的*业务逻辑*分为两部分(各层):领域逻辑和应用逻辑 -![domain-driven-design-domain-vs-application-logic](../../../abpframework.abp/docs/en/images/domain-driven-design-domain-vs-application-logic.png) +![domain-driven-design-domain-vs-application-logic](images/domain-driven-design-domain-vs-application-logic.png) 领域逻辑是系统的*核心领域规则*组成,而应用逻辑则满足特定的*用例*. @@ -1783,7 +1783,7 @@ public async Task ChangeTitleAsync(Issue issue, string title) * 一个**后台管理系统**,UI使用Angular,通过REST API请求数据.内部员工使用这个系统来维护数据(例如,编辑商品说明). * 一个**移动端应用程序**,它比公开的网站UI上更加简洁.它通过REST API或其它技术(例如,TCP sockets)请求数据. -![domain-driven-design-multiple-applications](../../../abpframework.abp/docs/en/images/domain-driven-design-multiple-applications.png) +![domain-driven-design-multiple-applications](images/domain-driven-design-multiple-applications.png) 每个应用程序都有不同的**需求**,不同的**用例**(应用服务方法),不同的DTO,不同的**验证**和**授权**规则等. From a71e460892198824280136ba4d64acf85474157e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 15 Jan 2021 09:42:32 +0300 Subject: [PATCH 033/309] Fix DbMigrator for mongodb resolves https://github.com/abpframework/abp/issues/7242 --- .../Data/MyProjectNameDbMigrationService.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index aec2fb6de7..13ba7dc40f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -41,9 +41,9 @@ namespace MyCompanyName.MyProjectName.Data { try { - if (!await MigrationsFolderExists()) + if (await DbMigrationsProjectExistsAsync() && !await MigrationsFolderExistsAsync()) { - await AddInitialMigration(); + await AddInitialMigrationAsync(); return; } } @@ -108,14 +108,21 @@ namespace MyCompanyName.MyProjectName.Data await _dataSeeder.SeedAsync(tenant?.Id); } - private async Task MigrationsFolderExists() + private async Task DbMigrationsProjectExistsAsync() + { + var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); + + return dbMigrationsProjectFolder != null; + } + + private async Task MigrationsFolderExistsAsync() { var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); return Directory.Exists(Path.Combine(dbMigrationsProjectFolder, "migrations")); } - private async Task AddInitialMigration() + private async Task AddInitialMigrationAsync() { Logger.LogInformation("Creating initial migration..."); @@ -147,7 +154,7 @@ namespace MyCompanyName.MyProjectName.Data } } - private static string GetDbMigrationsProjectFolderPath() + private string GetDbMigrationsProjectFolderPath() { var slnDirectoryPath = GetSolutionDirectoryPath(); @@ -162,7 +169,7 @@ namespace MyCompanyName.MyProjectName.Data .FirstOrDefault(d => d.EndsWith(".DbMigrations")); } - private static string GetSolutionDirectoryPath() + private string GetSolutionDirectoryPath() { var currentDirectory = new DirectoryInfo(Directory.GetCurrentDirectory()); From 732afa51d5bbf1580f7b512c483f34004a501b14 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 15 Jan 2021 10:10:11 +0300 Subject: [PATCH 034/309] MyProjectNameDbMigrationService remove unneccessary async --- .../Data/MyProjectNameDbMigrationService.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index 13ba7dc40f..aece171844 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -41,7 +41,7 @@ namespace MyCompanyName.MyProjectName.Data { try { - if (await DbMigrationsProjectExistsAsync() && !await MigrationsFolderExistsAsync()) + if (DbMigrationsProjectExists() && !MigrationsFolderExists()) { await AddInitialMigrationAsync(); return; @@ -108,14 +108,14 @@ namespace MyCompanyName.MyProjectName.Data await _dataSeeder.SeedAsync(tenant?.Id); } - private async Task DbMigrationsProjectExistsAsync() + private bool DbMigrationsProjectExists() { var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); return dbMigrationsProjectFolder != null; } - private async Task MigrationsFolderExistsAsync() + private bool MigrationsFolderExists() { var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); From 1835b5ec248625f0c1b7c6bf563121c5d71f7957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 15 Jan 2021 10:42:00 +0300 Subject: [PATCH 035/309] Rename camelCase company names. --- .../Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs index abdb9e45f5..611d4d5266 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs @@ -54,10 +54,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps if (_companyName != null) { RenameHelper.RenameAll(_entries, _companyNamePlaceHolder, _companyName); + RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToCamelCase(), _companyName.ToCamelCase()); } else { RenameHelper.RenameAll(_entries, _companyNamePlaceHolder + "." + _projectNamePlaceHolder, _projectNamePlaceHolder); + RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToCamelCase() + "." + _projectNamePlaceHolder.ToCamelCase(), _projectNamePlaceHolder.ToCamelCase()); } } From d52198bb397eae429a4d192f78885b0b62e4ef5e Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 15 Jan 2021 15:50:20 +0800 Subject: [PATCH 036/309] Rename AddInitialMigrationAsync to AddInitialMigration --- .../Data/MyProjectNameDbMigrationService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index aece171844..1cb3ba052c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -43,7 +43,7 @@ namespace MyCompanyName.MyProjectName.Data { if (DbMigrationsProjectExists() && !MigrationsFolderExists()) { - await AddInitialMigrationAsync(); + AddInitialMigration(); return; } } @@ -122,7 +122,7 @@ namespace MyCompanyName.MyProjectName.Data return Directory.Exists(Path.Combine(dbMigrationsProjectFolder, "migrations")); } - private async Task AddInitialMigrationAsync() + private void AddInitialMigration() { Logger.LogInformation("Creating initial migration..."); From 6c79036052a12c0769bbe9f4df15a6941014c412 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 15 Jan 2021 11:06:51 +0300 Subject: [PATCH 037/309] Fix RemoveEfCoreDependencyFromPublicStep condition --- .../Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 8f52e03203..9a32caf378 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -139,7 +139,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App steps.Add(new ChangePublicAuthPortStep()); } - if (context.BuildArgs.DatabaseProvider != DatabaseProvider.NotSpecified || context.BuildArgs.DatabaseProvider != DatabaseProvider.EntityFrameworkCore) + if (context.BuildArgs.DatabaseProvider != DatabaseProvider.NotSpecified && context.BuildArgs.DatabaseProvider != DatabaseProvider.EntityFrameworkCore) { steps.Add(new RemoveEfCoreDependencyFromPublicStep()); } From 1039f71dd1280f1958df52e7935ba3d665a01486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 15 Jan 2021 12:02:44 +0300 Subject: [PATCH 038/309] Update post (ABP Community News) --- .../2021-01-14 v4_2_Preview/POST.md | 18 ++++++++++++------ .../2021-01-14 v4_2_Preview/easy-crm.png | Bin 0 -> 261956 bytes 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 docs/en/Blog-Posts/2021-01-14 v4_2_Preview/easy-crm.png diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 11d7bed7db..f580303190 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -178,23 +178,29 @@ You can use this application to create a landing page for your actual applicatio It uses the same *Lepton Theme*, so you can apply [all the styles](https://commercial.abp.io/themes). The Public Website has a different layout and also has a different setting for the styling (that can be configured in the *Settings / Lepton Theme* page of the main web application). -TODO: How to get started? +> *Public Website* is optional and you need to select the "Public Website" option while creating a new solution using the ABP Suite, or use the `--with-public-website` option while using the `abp new` CLI command. ### Easy CRM Blazor UI -TODO +Easy CRM is an example application built with the ABP Commercial. MVC (Razor Pages) and Angular UI implementations were already provided. With the version 4.2, we are providing the Blazor UI implementation for this application. + +![easy-crm](easy-crm.png) ### Other News * Implemented Iyzico as a payment gateway for the payment module in addition to Paypal, Stripe, 2Checkout and Payu. -* TODO: Suite news ## ABP Community News -TODO: +### Sharing Video Contents + +[community.abp.io](https://community.abp.io/) is a place to share ABP related contents. It started with publishing articles. Now, it supports to publish video contents. [See this example](https://community.abp.io/articles/be-a-superhero-on-day-1-with-abp.io-wvifcy9s). All you need to do is to create a video and upload to YouTube. Then you can [submit](https://community.abp.io/articles/submit) the YouTube link to the ABP Community website. + +### Multi-language support + +We planned ABP Community to publish English-only contents. However, we see that people want to share contents in other languages too. Now, **it is possible to submit a content in any language**. Just select the Language option while submitting your content. -* Video content support -* Multi-language support - accepting content in every language! +**When you submit a non-English content, it is not visible to all the visitors by default**. Visitors can see a non-English content only if their browser language or the selected language matches to the content language (there is a language selection at the end of the website). ## About the Next Release diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/easy-crm.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/easy-crm.png new file mode 100644 index 0000000000000000000000000000000000000000..02c47777a4933885052873a5d6f74c29a1c8271b GIT binary patch literal 261956 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

    ex$^U*;fZ7L|nv-94WZy9q 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 Date: Fri, 15 Jan 2021 17:10:00 +0800 Subject: [PATCH 039/309] Remove the redis connection string when the public website option is not specified --- .../ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs index 94056cbf5a..4ac2acb50e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs @@ -1,4 +1,6 @@ -using System.Linq; +using System; +using System.Linq; +using NUglify.Helpers; using Volo.Abp.Cli.ProjectBuilding.Files; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps @@ -12,6 +14,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj"))?.RemoveTemplateCodeIfNot("PUBLIC-REDIS"); context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.HttpApi.Host.csproj"))?.RemoveTemplateCodeIfNot("PUBLIC-REDIS"); context.Files.FirstOrDefault(f => f.Name.EndsWith("MyProjectNameHttpApiHostModule.cs"))?.RemoveTemplateCodeIfNot("PUBLIC-REDIS"); + context.Files.Where(f => f.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase)).ForEach(x => x.RemoveTemplateCodeIfNot("PUBLIC-REDIS")); } } } From 572d8bdbfa01cf6775861bec4f7d6fd6f534d091 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 15 Jan 2021 17:13:23 +0800 Subject: [PATCH 040/309] Update RemovePublicRedisStep --- .../Building/Steps/RemovePublicRedisStep.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs index 4ac2acb50e..1299f5b15d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemovePublicRedisStep.cs @@ -1,6 +1,5 @@ using System; using System.Linq; -using NUglify.Helpers; using Volo.Abp.Cli.ProjectBuilding.Files; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps @@ -14,7 +13,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj"))?.RemoveTemplateCodeIfNot("PUBLIC-REDIS"); context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.HttpApi.Host.csproj"))?.RemoveTemplateCodeIfNot("PUBLIC-REDIS"); context.Files.FirstOrDefault(f => f.Name.EndsWith("MyProjectNameHttpApiHostModule.cs"))?.RemoveTemplateCodeIfNot("PUBLIC-REDIS"); - context.Files.Where(f => f.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase)).ForEach(x => x.RemoveTemplateCodeIfNot("PUBLIC-REDIS")); + + var appSettingsFiles = context.Files.Where(f => f.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase)).ToList(); + foreach (var appSettings in appSettingsFiles) + { + appSettings.RemoveTemplateCodeIfNot("PUBLIC-REDIS"); + } } } } From 60c9b6bc087186083c2195edea81442a9fe86704 Mon Sep 17 00:00:00 2001 From: Bunyamin Coskuner Date: Fri, 15 Jan 2021 12:17:02 +0300 Subject: [PATCH 041/309] docs: add small note about xsrf token setup --- docs/en/CSRF-Anti-Forgery.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/en/CSRF-Anti-Forgery.md b/docs/en/CSRF-Anti-Forgery.md index 720edc5924..ee684aaa52 100644 --- a/docs/en/CSRF-Anti-Forgery.md +++ b/docs/en/CSRF-Anti-Forgery.md @@ -144,4 +144,19 @@ Let's talk about why. First, take a look at [Angular's code](https://github.com/angular/angular/blob/master/packages/common/http/src/xsrf.ts#L81) -It does not intercept any request that starts with `http://` or `https://`. There is a good reason for that. Any cross-site request does not need this token for security. This verification is only valid if the request is made to the same domain from which the web page is served. So, simply put, if you serve everything from a single domain, you just use a relative path. \ No newline at end of file +It does not intercept any request that starts with `http://` or `https://`. There is a good reason for that. Any cross-site request does not need this token for security. This verification is only valid if the request is made to the same domain from which the web page is served. So, simply put, if you serve everything from a single domain, you just use a relative path. + +If you serve your APIs from the root, i.e. no context root (https://testdomain.com/api/identity/users), leave `url` empty as follows: + +```typescript +export const environment = { + production: true, + // .... + apis: { + default: { + url: '', // <- should be empty string, not '/' + // ... + }, + }, +} as Config.Environment; +``` From 0ae21e2dbac6b756152de30357f536d50ad586cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 15 Jan 2021 12:39:24 +0300 Subject: [PATCH 042/309] Added Selecting DBMS on Template Creation section --- .../Blog-Posts/2021-01-14 v4_2_Preview/POST.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index f580303190..0c446fb116 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -120,9 +120,17 @@ Currently, **MongoDB** provider implements these methods as a single bulk operat ### Selecting DBMS on Template Creation -And DbMigrator creates the initial migration if no migration exists. +[ABP CLI](https://docs.abp.io/en/abp/4.2/CLI#new) now has an option to specify the DBMS when you use EF Core as the database provider. -**TODO** +**Example: Select MySQL as the DBMS** + +````bash +abp new BookStore -dbms mysql --preview +```` + +Available options: `SqlServer` (default), `MySQL`, `SQLite`, `Oracle-Devart`, `PostgreSQL`. See the [documentation](https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Other-DBMS) to use any other DBMS or switch the DBMS later. + +> If you select a DBMS other than the SQL Server, then the database migrations are also created when you first run the `DbMigrator` application. ### Swagger Login @@ -188,7 +196,7 @@ Easy CRM is an example application built with the ABP Commercial. MVC (Razor Pag ### Other News -* Implemented Iyzico as a payment gateway for the payment module in addition to Paypal, Stripe, 2Checkout and Payu. +* Implemented Iyzico as a payment gateway provider for the [payment module](https://commercial.abp.io/modules/Volo.Payment) in addition to Paypal, Stripe, 2Checkout and Payu providers. ## ABP Community News @@ -202,6 +210,10 @@ We planned ABP Community to publish English-only contents. However, we see that **When you submit a non-English content, it is not visible to all the visitors by default**. Visitors can see a non-English content only if their browser language or the selected language matches to the content language (there is a language selection at the end of the website). +### External Contents + +If you want to publish your content anywhere else, but want to post a link of your content, you can select *External Content* option while submitting the post. For example, [this article](https://community.abp.io/articles/aspnet-boilerplate-to-abp-framework-xml-to-json-localization-conversion-0mxyjrzj) is an external article and also written in Chinese language. + ## About the Next Release The next feature version will be 4.3.0. It is planned to release the 4.3 RC (Release Candidate) on March 11 and the final version on March 25, 2021. From d00878a13db074fdac58c0f9484ef5d24ed55264 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 15 Jan 2021 13:11:23 +0300 Subject: [PATCH 043/309] use js instead of ts for highlighting code --- docs/en/UI/Angular/Testing.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/en/UI/Angular/Testing.md b/docs/en/UI/Angular/Testing.md index 7b93d48585..509fbefe95 100644 --- a/docs/en/UI/Angular/Testing.md +++ b/docs/en/UI/Angular/Testing.md @@ -10,7 +10,7 @@ In Angular, unit tests use [Karma](https://karma-runner.github.io/) and [Jasmine An over-simplified spec file looks like this: -```ts +```js import { CoreTestingModule } from "@abp/ng.core/testing"; import { ThemeBasicTestingModule } from "@abp/ng.theme.basic/testing"; import { ThemeSharedTestingModule } from "@abp/ng.theme.shared/testing"; @@ -59,7 +59,7 @@ Although you can test your code with Angular TestBed, you may find [Angular Test The simple example above can be written with Angular Testing Library as follows: -```ts +```js import { CoreTestingModule } from "@abp/ng.core/testing"; import { ThemeBasicTestingModule } from "@abp/ng.theme.basic/testing"; import { ThemeSharedTestingModule } from "@abp/ng.theme.shared/testing"; @@ -95,7 +95,7 @@ describe("MyComponent", () => { Very similar, as you can see. The real difference kicks in when we use queries and fire events. -```ts +```js // other imports import { getByLabelText, screen } from "@testing-library/angular"; import userEvent from "@testing-library/user-event"; @@ -131,7 +131,7 @@ One thing to remember is that Karma runs tests in real browser instances. That m We have prepared a simple function with which you can clear any leftover DOM elements after each test. -```ts +```js // other imports import { clearPage } from "@abp/ng.core/testing"; @@ -159,7 +159,7 @@ Some components, modals, in particular, work off-detection-cycle. In other words For this purpose, we have prepared a `wait` function. -```ts +```js // other imports import { wait } from "@abp/ng.core/testing"; @@ -187,7 +187,7 @@ The `wait` function takes a second parameter, i.e. timeout (default: `0`). Try n Here is an example test suite. It doesn't cover all, but gives quite a good idea about what the testing experience will be like. -```ts +```js import { clearPage, CoreTestingModule, wait } from "@abp/ng.core/testing"; import { ThemeBasicTestingModule } from "@abp/ng.theme.basic/testing"; import { ThemeSharedTestingModule } from "@abp/ng.theme.shared/testing"; From efc3aacb32d478304e99536b53b05ddc9d883da7 Mon Sep 17 00:00:00 2001 From: Necati Meral Date: Fri, 15 Jan 2021 11:48:24 +0100 Subject: [PATCH 044/309] Added localization keys for search page --- .../Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json | 4 +++- .../docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json index 4a9ac08ebb..dd60e2602b 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json @@ -34,6 +34,8 @@ "NewExplanation": "Created in the last two weeks.", "UpdatedExplanation": "Updated in the last two weeks.", "Volo.Docs.Domain:010002": "ShortName {ShortName} already exists.", - "Preview": "preview" + "Preview": "preview", + "Search": "Search", + "SearchResults": "Search Results" } } diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml index 127994a24c..5d1f232acd 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml @@ -30,12 +30,12 @@
    -

    Search in Documents

    +

    @L["FullSearch"]

    -
    +
    @@ -43,7 +43,7 @@
    -
    Search Results
    +
    @L["SearchResults"]
    @foreach (var docs in Model.SearchOutputs) From 408e942c8c636ad98bf7fdbd7b4d12408ceba4cd Mon Sep 17 00:00:00 2001 From: Necati Meral Date: Fri, 15 Jan 2021 11:49:01 +0100 Subject: [PATCH 045/309] Added search localization keys and consolidated german Localization --- .../Volo/Docs/Localization/Domain/de-DE.json | 4 +++- .../Volo/Docs/Localization/Domain/de.json | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de-DE.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de-DE.json index b6687f978b..432e9617dc 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de-DE.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de-DE.json @@ -34,6 +34,8 @@ "NewExplanation": "In den letzten zwei Wochen erstellt.", "UpdatedExplanation": "In den letzten zwei Wochen aktualisiert.", "Volo.Docs.Domain:010002": "Kurzname {ShortName} existiert bereits.", - "Preview": "Vorschau" + "Preview": "Vorschau", + "Search": "Suchen", + "SearchResults": "Suchergebnisse" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json index 25994178f7..544a7ca7c8 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json @@ -10,22 +10,32 @@ "LastEditTime": "Letzte Bearbeitung", "Delete": "Löschen", "ClearCache": "Cache leeren", - "ClearCacheConfirmationMessage": "Sind Sie sicher, dass Sie alle Caches für das Projekt löschen \"{0}\"", + "ClearCacheConfirmationMessage": "Sind Sie sicher, alle Caches für das Projekt \"{0}\" zu löschen?", + "ReIndexAllProjects": "Alle Projekte neu indizieren", + "ReIndexProject": "Projekt neu indizieren", + "ReIndexProjectConfirmationMessage": "Sind Sie sicher, dass Sie das Projekt \"{0}\" neu indizieren?", + "SuccessfullyReIndexProject": "Neuindizierung für Projekt \"{0}\"", + "ReIndexAllProjectConfirmationMessage": "Sind Sie sicher, alle Projekte neu zu indizieren?", + "SuccessfullyReIndexAllProject": "Alle Projekte erfolgreich neu indizieren", "InThisDocument": "In diesem Dokument", "GoToTop": "Nach oben", "Projects": "Projekt(e)", "NoProjectWarning": "Es gibt noch keine Projekte!", "DocumentNotFound": "Hoppla, das angeforderte Dokument wurde nicht gefunden!", + "ProjectNotFound": "Hoppla, das angeforderte Projekt wurde nicht gefunden!", "NavigationDocumentNotFound": "Diese Version hat kein Navigationsdokument!", "DocumentNotFoundInSelectedLanguage": "Das Dokument wurde nicht in der von Ihnen gewünschten Sprache gefunden. Das Dokument wird in der Standardsprache angezeigt.", "FilterTopics": "Themen filtern", - "FullSearch": "Suche in Dokumenten", + "FullSearch": "In Dokumenten suchen", "Volo.Docs.Domain:010001": "Elastic search ist nicht aktiviert.", "MultipleVersionDocumentInfo": "Dieses Dokument hat mehrere Versionen. Wählen Sie die für Sie am besten geeigneten Optionen aus.", "New": "Neu", "Upd": "Upd", "NewExplanation": "Erstellt in den letzten zwei Wochen.", "UpdatedExplanation": "Aktualisiert in den letzten zwei Wochen.", - "Volo.Docs.Domain:010002": "Kurzname {ShortName} existiert bereits." + "Volo.Docs.Domain:010002": "Kurzname {ShortName} existiert bereits.", + "Preview": "Vorschau", + "Search": "Suchen", + "SearchResults": "Suchergebnisse" } } From 6ec05bcc3f19aacfd6af1b001785070ec6762b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 15 Jan 2021 14:26:15 +0300 Subject: [PATCH 046/309] Added Swagger UI Login / Authorization to the doc. --- .../2021-01-14 v4_2_Preview/POST.md | 20 +++++++++++++++--- .../swagger-authorize-modal.png | Bin 0 -> 154624 bytes .../swagger-authorize.png | Bin 0 -> 46481 bytes 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize-modal.png create mode 100644 docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize.png diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 0c446fb116..28737f6840 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -132,9 +132,21 @@ Available options: `SqlServer` (default), `MySQL`, `SQLite`, `Oracle-Devart`, `P > If you select a DBMS other than the SQL Server, then the database migrations are also created when you first run the `DbMigrator` application. -### Swagger Login +### Swagger UI Login / Authorization -TODO +Testing the swagger UI was requiring some additional work, especially your authentication server is separated from the application that hosts the Swagger UI. + +With the version 4.2, the startup templates come with the authorization pre-configured for you. An Authorize button is available when you open the Swagger UI: + +![swagger-authorize](swagger-authorize.png) + +When you click, it opens a modal to authorize: + +![swagger-authorize](swagger-authorize-modal.png) + +When you click to the Authorize button here, you are redirected to the login page to login with your username and password (default username is `admin` and password is `1q2w3E*`). + +> Remember to select the Scopes (typically **select all**) you want to use before clicking to the Authorize button. ### Angular Unit Testing @@ -190,13 +202,15 @@ It uses the same *Lepton Theme*, so you can apply [all the styles](https://comme ### Easy CRM Blazor UI -Easy CRM is an example application built with the ABP Commercial. MVC (Razor Pages) and Angular UI implementations were already provided. With the version 4.2, we are providing the Blazor UI implementation for this application. +[Easy CRM](https://docs.abp.io/en/commercial/latest/samples/easy-crm) is an example application built with the ABP Commercial. MVC (Razor Pages) and Angular UI implementations were already provided. With the version 4.2, we are providing the Blazor UI implementation for this application. ![easy-crm](easy-crm.png) ### Other News * Implemented Iyzico as a payment gateway provider for the [payment module](https://commercial.abp.io/modules/Volo.Payment) in addition to Paypal, Stripe, 2Checkout and Payu providers. +* ABP Suite supports the new microservice template creation, public website and DBMS selection options. +* Swagger authorization and other features mentioned in the ABP Framework section are already implemented for the ABP Commercial too. ## ABP Community News diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize-modal.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize-modal.png new file mode 100644 index 0000000000000000000000000000000000000000..52b43f248e75c03a21ac11d4348e002a4b8a3ebb GIT binary patch literal 154624 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

    F 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 literal 0 HcmV?d00001 diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize.png new file mode 100644 index 0000000000000000000000000000000000000000..650a212fe591b8f5a7fe134c6b4e59066e2b721d GIT binary patch literal 46481 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

    @@ -90,6 +92,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling } } + _lazyAllBundleConfigurationActions.ForEach(c => c.Invoke(bundle)); + return bundle; } @@ -123,6 +127,26 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling return this; } + /// + /// Configures all bundles. + /// This method also works for lazy bundles (those are created using razor tag helpers). + /// + /// Configure action + /// Returns this object for chained calls. + public BundleConfigurationCollection ConfigureAll([NotNull] Action configureAction) + { + Check.NotNull(configureAction, nameof(configureAction)); + + foreach (var bundle in _bundles) + { + configureAction.Invoke(bundle.Value); + } + + _lazyAllBundleConfigurationActions.Add(configureAction); + + return this; + } + /// /// Gets a bundle. /// @@ -140,4 +164,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling return bundle; } } -} \ No newline at end of file +} From 0efc8050c1130d23b88c018d43503c7771654be3 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Tue, 19 Jan 2021 11:29:37 +0300 Subject: [PATCH 087/309] Add new localizations for admin --- .../AbpIoLocalization/Admin/Localization/Resources/en.json | 6 +++++- .../AbpIoLocalization/Admin/Localization/Resources/tr.json | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index c190a91470..cf6b6a124c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -198,6 +198,10 @@ "Language": "Language", "Optional": "Optional", "CreateArticleLanguageInfo": "The language in which the post is written", - "Enum:ContentSource:2": "Video Post" + "Enum:ContentSource:2": "Video Post", + "DeleteCoverImage": "Delete Cover Image", + "DeleteCoverImageConfirmationMessage": "Are you sure you want to delete the cover image for \"{0}\"?", + "DeleteCoverImageSuccessMessage": "Cover image successfully deleted" + } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json index 9ac7e39b9e..1884b0025f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json @@ -159,6 +159,10 @@ "UnlimitedQuestionCount": "Sınırsız soru sayısı", "Language": "Dil", "Optional": "Opsiyonel", - "CreateArticleLanguageInfo": "Makalenin yazıldığı dil" + "CreateArticleLanguageInfo": "Makalenin yazıldığı dil", + "Enum:ContentSource:2": "Video İçerik", + "DeleteCoverImage": "Kapak Fotoğrafını Sil", + "DeleteCoverImageConfirmationMessage": "Kapak fotoğrafını \"{0}\" isimli makale için silmek istediğinize emin misiniz?", + "DeleteCoverImageSuccessMessage": "Kapak fotoğrafı başarılı bir şekilde silinmiştir" } } \ No newline at end of file From 9e9c315d81c6d18054b43ad4a6409b22c4935017 Mon Sep 17 00:00:00 2001 From: Ahmet Date: Tue, 19 Jan 2021 11:51:46 +0300 Subject: [PATCH 088/309] added routing to page --- .../Volo/CmsKit/Public/Pages/IPageAppService.cs | 2 +- .../Volo/CmsKit/Public/Pages/PageAppService.cs | 4 ++-- .../Volo/CmsKit/Public/Pages/PagesPublicController.cs | 2 +- .../Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs | 2 +- .../Pages/CmsKit/Pages/Index.cshtml.cs | 11 +++++++++-- .../Pages/PagePublicAppService_Tests.cs | 11 ++++++++--- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPageAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPageAppService.cs index d8ea8f1751..7363d32a3c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPageAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Pages/IPageAppService.cs @@ -5,6 +5,6 @@ namespace Volo.CmsKit.Public.Pages { public interface IPageAppService { - Task GetByUrlAsync([NotNull] string url); + Task FindByUrlAsync([NotNull] string url); } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs index 38f4406cab..e78d54a742 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs @@ -12,9 +12,9 @@ namespace Volo.CmsKit.Public.Pages PageRepository = pageRepository; } - public virtual async Task GetByUrlAsync(string url) + public virtual async Task FindByUrlAsync(string url) { - var page = await PageRepository.GetByUrlAsync(url); + var page = await PageRepository.FindByUrlAsync(url); return ObjectMapper.Map(page); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs index 45dda25ab5..4d1c5391c7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs @@ -20,7 +20,7 @@ namespace Volo.CmsKit.Public.Pages [Route("url/{url}")] public Task GetByUrlAsync(string url) { - return PageAppService.GetByUrlAsync(url); + return PageAppService.FindByUrlAsync(url); } } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index 0149722671..2dba2f667a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -56,7 +56,7 @@ namespace Volo.CmsKit.Public.Web Configure(options => { - //... + options.Conventions.AddPageRoute("/CmsKit/Pages/Index", "/{pageUrl}"); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs index 1d5dca0940..5443608845 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml.cs @@ -19,9 +19,16 @@ namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Pages PageAppService = pageAppService; } - public async Task OnGetAsync() + public async Task OnGetAsync() { - Page = await PageAppService.GetByUrlAsync(PageUrl); + Page = await PageAppService.FindByUrlAsync(PageUrl); + + if (Page == null) + { + return NotFound(); + } + + return Page(); } } } \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Pages/PagePublicAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Pages/PagePublicAppService_Tests.cs index 290f02caff..c0943a1279 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Pages/PagePublicAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Pages/PagePublicAppService_Tests.cs @@ -18,15 +18,20 @@ namespace Volo.CmsKit.Pages } [Fact] - public async Task ShouldGetByUrlAsync() + public async Task ShouldFindByUrlAsync() { - await Should.NotThrowAsync(async () => await _pageAppService.GetByUrlAsync(_data.Page_1_Url)); + var page = await _pageAppService.FindByUrlAsync(_data.Page_1_Url); + + page.ShouldNotBeNull(); + page.Title.ShouldBe(_data.Page_1_Title); } [Fact] public async Task ShouldNotGetByUrlAsync() { - await Should.ThrowAsync(async () => await _pageAppService.GetByUrlAsync("not-exist-url")); + var page = await _pageAppService.FindByUrlAsync("not-exist-url"); + + page.ShouldBeNull(); } } } \ No newline at end of file From 863e061108180d502d61bdf974674e77eded7b32 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 19 Jan 2021 17:00:28 +0800 Subject: [PATCH 089/309] Add lock --- .../Mvc/UI/Bundling/BundleConfigurationCollection.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs index a18e8bdd11..acb2ae9fac 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs @@ -92,7 +92,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling } } - _lazyAllBundleConfigurationActions.ForEach(c => c.Invoke(bundle)); + lock (_lazyAllBundleConfigurationActions) + { + _lazyAllBundleConfigurationActions.ForEach(c => c.Invoke(bundle)); + } + return bundle; } @@ -142,7 +146,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling configureAction.Invoke(bundle.Value); } - _lazyAllBundleConfigurationActions.Add(configureAction); + lock (_lazyAllBundleConfigurationActions) + { + _lazyAllBundleConfigurationActions.Add(configureAction); + } return this; } From 31d5fead5cd53a77bff168d4a631a7ab6c5da70d Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 19 Jan 2021 17:13:36 +0800 Subject: [PATCH 090/309] Update document --- .../en/UI/AspNetCore/Bundling-Minification.md | 22 ++++++++++++++++++- .../UI/AspNetCore/Bundling-Minification.md | 22 ++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/docs/en/UI/AspNetCore/Bundling-Minification.md b/docs/en/UI/AspNetCore/Bundling-Minification.md index 9d88a37135..aeaea6c2e6 100644 --- a/docs/en/UI/AspNetCore/Bundling-Minification.md +++ b/docs/en/UI/AspNetCore/Bundling-Minification.md @@ -165,7 +165,27 @@ public class MyWebExtensionModule : AbpModule } ```` -> It's not possible to configure unnamed bundle tag helpers by code, because their name are not known at the development time. It's suggested to always use a name for a bundle tag helper. +You can also use the `ConfigureAll` method to configure all existing bundles: + +````C# +[DependsOn(typeof(MyWebModule))] +public class MyWebExtensionModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options + .ScriptBundles + .ConfigureAll(bundle => { + bundle.AddFiles( + "/scripts/my-extension-script.js" + ); + }); + }); + } +} +```` ## Bundle Contributors diff --git a/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md b/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md index 6a229714c1..dd688f256c 100644 --- a/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md +++ b/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md @@ -167,7 +167,27 @@ public class MyWebExtensionModule : AbpModule } ```` -> 无法通过代码配置未命名的bundle tag helpers, 因为它们的名称在开发时是未知的. 建议始终使用bundle tag helper的名称. +你也可以使用 `ConfigureAll` 方法配置所有现有的捆绑包: + +````C# +[DependsOn(typeof(MyWebModule))] +public class MyWebExtensionModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options + .ScriptBundles + .ConfigureAll(bundle => { + bundle.AddFiles( + "/scripts/my-extension-script.js" + ); + }); + }); + } +} +```` ### Bundle 贡献者 From 08b9ad0d4e0352fd3fbb6f61baa7e2ae8f1b378a Mon Sep 17 00:00:00 2001 From: Ahmet Date: Tue, 19 Jan 2021 12:18:19 +0300 Subject: [PATCH 091/309] replaced the route parameter --- .../src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs | 5 +++-- .../Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index 2dba2f667a..d44f67afc5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Mvc.RazorPages; +using System.Linq; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AutoMapper; @@ -56,7 +57,7 @@ namespace Volo.CmsKit.Public.Web Configure(options => { - options.Conventions.AddPageRoute("/CmsKit/Pages/Index", "/{pageUrl}"); + options.Conventions.AddPageRoute("/CmsKit/Pages/Index", "/{*pageUrl}"); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml index c31edaaba8..73c7637b01 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml @@ -1,4 +1,4 @@ -@page "{pageUrl}" +@page "{*pageUrl}" @using Microsoft.AspNetCore.Mvc.Localization @using Volo.CmsKit.Localization @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages From afcddd5e5d27518fa47012dd35a5d7cd42f8e2e0 Mon Sep 17 00:00:00 2001 From: Ahmet Date: Tue, 19 Jan 2021 12:25:08 +0300 Subject: [PATCH 092/309] check null at app service --- .../Volo/CmsKit/Public/Pages/PageAppService.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs index e78d54a742..1e1d63bf71 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PageAppService.cs @@ -15,6 +15,11 @@ namespace Volo.CmsKit.Public.Pages public virtual async Task FindByUrlAsync(string url) { var page = await PageRepository.FindByUrlAsync(url); + + if (page == null) + { + return null; + } return ObjectMapper.Map(page); } From fa32ea246b1a3894bc6de7ebcb298351e468b14e Mon Sep 17 00:00:00 2001 From: Kishore Sahasranaman Date: Tue, 19 Jan 2021 15:06:29 +0530 Subject: [PATCH 093/309] Update Blob-Storing-Azure.md Type fix BlogContainerName --- docs/en/Blob-Storing-Azure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Blob-Storing-Azure.md b/docs/en/Blob-Storing-Azure.md index 9d033013da..de6ed63152 100644 --- a/docs/en/Blob-Storing-Azure.md +++ b/docs/en/Blob-Storing-Azure.md @@ -40,7 +40,7 @@ Configure(options => ### Options * **ConnectionString** (string): A connection string includes the authorization information required for your application to access data in an Azure Storage account at runtime using Shared Key authorization. Please refer to Azure documentation: https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string -* **ContainerName** (string): You can specify the container name in azure. If this is not specified, it uses the name of the BLOB container defined with the `BlogContainerName` attribute (see the [BLOB storing document](Blob-Storing.md)). Please note that Azure has some **rules for naming containers**. A container name must be a valid DNS name, conforming to the [following naming rules](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#container-names): +* **ContainerName** (string): You can specify the container name in azure. If this is not specified, it uses the name of the BLOB container defined with the `BlobContainerName` attribute (see the [BLOB storing document](Blob-Storing.md)). Please note that Azure has some **rules for naming containers**. A container name must be a valid DNS name, conforming to the [following naming rules](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#container-names): * Container names must start or end with a letter or number, and can contain only letters, numbers, and the dash (-) character. * Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in container names. * All letters in a container name must be **lowercase**. From 978f9b1f0d7a360213b9c4cad958fc520d24358f Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 19 Jan 2021 14:20:39 +0300 Subject: [PATCH 094/309] Cli: create ConnectionStringProvider --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 26 ++++------------ .../Services/ConnectionStringProvider.cs | 30 +++++++++++++++++++ 2 files changed, 36 insertions(+), 20 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 9caa952528..7a413fbbe9 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -12,6 +12,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Auth; +using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Http; using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding.Building; @@ -31,14 +32,17 @@ namespace Volo.Abp.Cli.Commands protected TemplateProjectBuilder TemplateProjectBuilder { get; } public ITemplateInfoProvider TemplateInfoProvider { get; } + public ConnectionStringProvider ConnectionStringProvider { get; } public NewCommand(TemplateProjectBuilder templateProjectBuilder , ITemplateInfoProvider templateInfoProvider, - EfCoreMigrationManager efCoreMigrationManager) + EfCoreMigrationManager efCoreMigrationManager, + ConnectionStringProvider connectionStringProvider) { _efCoreMigrationManager = efCoreMigrationManager; TemplateProjectBuilder = templateProjectBuilder; TemplateInfoProvider = templateInfoProvider; + ConnectionStringProvider = connectionStringProvider; Logger = NullLogger.Instance; } @@ -164,7 +168,7 @@ namespace Volo.Abp.Cli.Commands databaseManagementSystem != DatabaseManagementSystem.NotSpecified && databaseManagementSystem != DatabaseManagementSystem.SQLServer) { - connectionString = GetNewConnectionStringByDbms(databaseManagementSystem, outputFolder); + connectionString = ConnectionStringProvider.GetByDbms(databaseManagementSystem, outputFolder); } commandLineArgs.Options.Add(CliConsts.Command, commandLineArgs.Command); @@ -236,24 +240,6 @@ namespace Volo.Abp.Cli.Commands } } - private string GetNewConnectionStringByDbms(DatabaseManagementSystem databaseManagementSystem, string outputFolder) - { - switch (databaseManagementSystem) - { - case DatabaseManagementSystem.MySQL: - return "Server=localhost;Port=3306;Database=MyProjectName;Uid=root;Pwd=myPassword;"; - case DatabaseManagementSystem.PostgreSQL: - return "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=MyProjectName;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;"; - //case DatabaseManagementSystem.Oracle: - case DatabaseManagementSystem.OracleDevart: - return "Data Source=MyProjectName;Integrated Security=yes;"; - case DatabaseManagementSystem.SQLite: - return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};Version=3;"; - default: - return null; - } - } - private void OpenThanksPage(UiFramework uiFramework, DatabaseProvider databaseProvider, bool tiered, bool commercial) { uiFramework = uiFramework == UiFramework.NotSpecified || uiFramework == UiFramework.None ? UiFramework.Mvc : uiFramework; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs new file mode 100644 index 0000000000..82926df1b3 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs @@ -0,0 +1,30 @@ +using System.IO; +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.Commands.Services +{ + public class ConnectionStringProvider : ITransientDependency + { + public string GetByDbms(DatabaseManagementSystem databaseManagementSystem, string outputFolder = "") + { + switch (databaseManagementSystem) + { + case DatabaseManagementSystem.NotSpecified: + case DatabaseManagementSystem.SQLServer: + return "Server=localhost;Database=MyProjectName;Trusted_Connection=True"; + case DatabaseManagementSystem.MySQL: + return "Server=localhost;Port=3306;Database=MyProjectName;Uid=root;Pwd=myPassword;"; + case DatabaseManagementSystem.PostgreSQL: + return "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=MyProjectName;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;"; + //case DatabaseManagementSystem.Oracle: + case DatabaseManagementSystem.OracleDevart: + return "Data Source=MyProjectName;Integrated Security=yes;"; + case DatabaseManagementSystem.SQLite: + return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};Version=3;"; + default: + return null; + } + } + } +} From 0116692bff98a5e0b2a8f9b16c13fbb29cfa3b3d Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 19 Jan 2021 14:21:24 +0300 Subject: [PATCH 095/309] CmsKit - Fix conflict error --- .../Volo/CmsKit/Tags/EntityNotTaggableException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs index 1987bef869..d39c81a127 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs @@ -12,7 +12,7 @@ namespace Volo.CmsKit.Tags public EntityNotTaggableException(string entityType) { - Code = CmsKitErrorCodes.EntityNotTaggable; + Code = CmsKitErrorCodes.Tags.EntityNotTaggable; WithData(nameof(Tag.EntityType), entityType); } } From 78240039148331da6f856375228daabf5abeb84f Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 19 Jan 2021 14:39:30 +0300 Subject: [PATCH 096/309] add link to unit testing video on ABP Community --- docs/en/UI/Angular/Testing.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/UI/Angular/Testing.md b/docs/en/UI/Angular/Testing.md index 509fbefe95..bf6d3e1b26 100644 --- a/docs/en/UI/Angular/Testing.md +++ b/docs/en/UI/Angular/Testing.md @@ -374,3 +374,7 @@ Finally, don't forget to run your CI tests with the following command: ```sh npm test -- --prod ``` + +## See Also + +* [ABP Community Video - Unit Testing with the Angular UI](https://community.abp.io/articles/unit-testing-with-the-angular-ui-p4l550q3) From 964a16253b94b52d571c35944d2bb7293538f21a Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 19 Jan 2021 15:36:07 +0300 Subject: [PATCH 097/309] CmsKit - Conflict fix for TagAlreadyExistException --- .../Volo/CmsKit/Tags/TagAlreadyExistException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagAlreadyExistException.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagAlreadyExistException.cs index 6cae0dde92..2d87668043 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagAlreadyExistException.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagAlreadyExistException.cs @@ -9,7 +9,7 @@ namespace Volo.CmsKit.Tags { public TagAlreadyExistException([NotNull] string entityType, [NotNull] string name) { - Code = CmsKitErrorCodes.TagAlreadyExist; + Code = CmsKitErrorCodes.Tags.TagAlreadyExist; WithData(nameof(Tag.EntityType), entityType); WithData(nameof(Tag.Name), name); } From acee901456897f39fb4130554cf714a23ec4a2b3 Mon Sep 17 00:00:00 2001 From: erolarkat Date: Tue, 19 Jan 2021 16:38:20 +0300 Subject: [PATCH 098/309] npm packages 4.1.2 --- .../package.json | 2 +- .../yarn.lock | 224 ++++++------ .../package.json | 4 +- .../yarn.lock | 256 +++++++------- .../app/Volo.BloggingTestApp/package.json | 4 +- .../app/Volo.BloggingTestApp/yarn.lock | 328 +++++++++--------- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 234 ++++++------- modules/cms-kit/angular/package.json | 8 +- .../angular/projects/cms-kit/package.json | 4 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 234 ++++++------- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 238 ++++++------- .../host/Volo.CmsKit.Web.Unified/package.json | 2 +- .../host/Volo.CmsKit.Web.Unified/yarn.lock | 234 ++++++------- modules/docs/app/VoloDocs.Web/package.json | 4 +- modules/docs/app/VoloDocs.Web/yarn.lock | 294 ++++++++-------- npm/lerna.json | 2 +- npm/ng-packs/lerna.version.json | 2 +- npm/ng-packs/package.json | 20 +- npm/ng-packs/packages/components/package.json | 4 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/identity/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 4 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 4 +- .../packages/theme-shared/package.json | 4 +- npm/ng-packs/yarn.lock | 100 +++--- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 30 +- npm/packs/aspnetcore.mvc.ui/package-lock.json | 2 +- npm/packs/aspnetcore.mvc.ui/package.json | 2 +- npm/packs/blogging/package.json | 10 +- npm/packs/bootstrap-datepicker/package.json | 2 +- npm/packs/bootstrap/package.json | 4 +- npm/packs/chart.js/package.json | 2 +- npm/packs/clipboard/package.json | 4 +- npm/packs/cms-kit/package.json | 4 +- npm/packs/codemirror/package.json | 4 +- npm/packs/core/package.json | 4 +- npm/packs/cropperjs/package.json | 4 +- npm/packs/datatables.net-bs4/package.json | 4 +- npm/packs/datatables.net/package.json | 4 +- npm/packs/docs/package.json | 12 +- npm/packs/flag-icon-css/package.json | 2 +- npm/packs/font-awesome/package.json | 4 +- npm/packs/highlight.js/package.json | 4 +- npm/packs/jquery-form/package.json | 4 +- .../package.json | 4 +- npm/packs/jquery-validation/package.json | 4 +- npm/packs/jquery/package.json | 4 +- npm/packs/jstree/package.json | 4 +- npm/packs/lodash/package.json | 4 +- npm/packs/luxon/package.json | 4 +- .../package.json | 4 +- npm/packs/markdown-it/package.json | 4 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/star-rating-svg/package.json | 4 +- npm/packs/sweetalert/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 10 +- npm/packs/uppy/package.json | 4 +- npm/packs/utils/package.json | 2 +- npm/packs/vee-validate/package.json | 4 +- npm/packs/virtual-file-explorer/package.json | 6 +- npm/packs/vue/package.json | 2 +- templates/app/angular/package.json | 16 +- .../package.json | 2 +- .../yarn.lock | 234 ++++++------- .../package.json | 2 +- .../yarn.lock | 234 ++++++------- .../package.json | 2 +- .../yarn.lock | 234 ++++++------- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web/yarn.lock | 234 ++++++------- templates/module/angular/package.json | 16 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../yarn.lock | 234 ++++++------- .../package.json | 2 +- .../yarn.lock | 234 ++++++------- .../package.json | 2 +- .../yarn.lock | 234 ++++++------- 93 files changed, 2071 insertions(+), 2071 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index adf881d848..88985b7cf6 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^4.1.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "^4.1.2", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 26b95fd56b..2ed926dd36 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -36,145 +36,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index d0ca5464b0..f51131387c 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1", - "@abp/prismjs": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2", + "@abp/prismjs": "^4.1.2" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index ae59906117..20dc416441 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,162 +43,162 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.1.tgz#65d3c8ec430029e292f79549e4f8245d08fdc85c" - integrity sha512-dy6Ewb0NHoYqXP/uInaRV9d22uzpJR+XjNrEe+g+i9JXWPwtQ/+ch439E607Z1oV3AkpjSCYCmlTuy641A2klQ== +"@abp/clipboard@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.2.tgz#93c71edc4617ce1ebf91641a045035419b605735" + integrity sha512-QXSFX5wf2qVZuUg2BRRLcT403+eZWOkFYBxeTheKCbOv9W3dmsPTOoSBdviyrDRZLpqM851wTg587EjJldAIqA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" clipboard "^2.0.6" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.1.tgz#ebdbea3a09e1c1bb5c7ebe2c53b12b48c7634313" - integrity sha512-11cKcdXlf99FEbxmpOcCOj5WR/gPrIJxJfGbgvIKoYvovivleyejGmCx7yzrD39gnKf+ukKp0f2aojnj/fykEw== +"@abp/prismjs@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.2.tgz#9a494986f4df086a1666c76bcc1a96f6bdf258cc" + integrity sha512-hzesZmzWb/MWX+fNEFMTztprfp0fNbURs5e7gJ+xXyPlEpr0kpCHahxuEYZRN2iczgSDEKN4MzElUJN5O+1Jxw== dependencies: - "@abp/clipboard" "~4.1.1" - "@abp/core" "~4.1.1" + "@abp/clipboard" "~4.1.2" + "@abp/core" "~4.1.2" prismjs "^1.20.0" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index cc5a7d76a7..b350916759 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1", - "@abp/blogging": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2", + "@abp/blogging": "^4.1.2" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index f362cc9180..df36591d08 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,214 +43,214 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/blogging@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.1.1.tgz#378ab4d7700b1832449f7f6fc81d4666487f2c84" - integrity sha512-nA3tpanGdPNGUqYOpAllLp4pkFjmrtABlQaeqLaExbnd5TXH+q2LjONykVC6h73Z6asaClEQMq9o1MFQ+62O3w== +"@abp/blogging@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.1.2.tgz#2d65315dda36529fa2672e1756559d1b14364042" + integrity sha512-zZdA0uxqlhvl1XYUj3NJB5jMQxpOWhV6oktyVFjnP0yIPqzdqP8EnDGWKhoJ/VGmBNsX2pKvmrvsfzGDwiAz4g== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - "@abp/owl.carousel" "~4.1.1" - "@abp/prismjs" "~4.1.1" - "@abp/tui-editor" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" + "@abp/owl.carousel" "~4.1.2" + "@abp/prismjs" "~4.1.2" + "@abp/tui-editor" "~4.1.2" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.1.tgz#65d3c8ec430029e292f79549e4f8245d08fdc85c" - integrity sha512-dy6Ewb0NHoYqXP/uInaRV9d22uzpJR+XjNrEe+g+i9JXWPwtQ/+ch439E607Z1oV3AkpjSCYCmlTuy641A2klQ== +"@abp/clipboard@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.2.tgz#93c71edc4617ce1ebf91641a045035419b605735" + integrity sha512-QXSFX5wf2qVZuUg2BRRLcT403+eZWOkFYBxeTheKCbOv9W3dmsPTOoSBdviyrDRZLpqM851wTg587EjJldAIqA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" clipboard "^2.0.6" -"@abp/codemirror@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.1.1.tgz#b580c94da97049a2ea7f75ff5a133e64a67be04c" - integrity sha512-aRxkO/8uN0bzOWz/lDgskRmzoroXWM+cvIBtJtb9wiE4VkOYg2BSnbpg1H0RGKBOQ1d+PX8cVTeJFymHtiqvmQ== +"@abp/codemirror@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.1.2.tgz#cd335f05fc795167dc975873811df98470eb7c9f" + integrity sha512-hj6v83iWw6Xmoc7V8e1Ao4vKONwhiKQcOqmQxqYsDarqBaSEUEtg8iW3DnHeRcLU57rxlMHpXVDgM9gQBgk2iA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" codemirror "^5.54.0" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.1.1.tgz#e918db0e9b45100e26a66e746755fcb80545964a" - integrity sha512-Y29+9qJMj+NfVXmO9D+ZD5YiVzHBq+zTAbo8cS9MxEs2f73c3af2SuIc2hvdD+Te1ZUZmil6F24NLxMq9DUxbw== +"@abp/highlight.js@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.1.2.tgz#b561aad41a8892dfc22bce62c8d2fdf21e71979c" + integrity sha512-RSqF5i2Un/I597wAm3Os1G3q36ABSS8BDHdRudze+Cn/9uirCBjKGrMDgkiS3Humuw9Ugo8UbFuYrEIt00WI2g== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.1.1.tgz#f1ed7e7e801ce4ad0ba17ecdaaed02e67683ddfc" - integrity sha512-cQw4XPMfM8mqW0uluvv0CpyXjAy9PwF85JdrcaGmS2dtp0QticRZ9L2hkYRtGNxHDRrGruDUqHb0K5p/rMideg== +"@abp/markdown-it@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.1.2.tgz#98a75ff80171eab7b89ed04d238248e5c32ab2e8" + integrity sha512-qf+AMutIa+YtHN42n+wiAxce64uQiBIwoKOc9RBT8JgMcwMYzK95uUil7vzj8A2wVvcSCgfLQ1obY8fs6K0peg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" markdown-it "^11.0.0" -"@abp/owl.carousel@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.1.1.tgz#b5daa7d29e739537e0e4fc984b37ae6f6af2fc6e" - integrity sha512-cCrlzFspX4FxjUSqO2RyBXE1LbgpuN3xG98zjcFWhTVgJUlZJXWBcI7DxFw1AVll50SoyuZy+gvYrFlIHMQF9g== +"@abp/owl.carousel@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.1.2.tgz#9c46a5d4b8cb8a6eea95918b4fb3e4b2bb201ebd" + integrity sha512-J/gvOyV++e/qpupnhqU+GV3+YwUahN7tgUe6UCeCl1o4H64T+s4y82Hk1otHM+CE3qajb1QmXsPY9u5dBzk2Og== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" owl.carousel "^2.3.4" -"@abp/prismjs@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.1.tgz#ebdbea3a09e1c1bb5c7ebe2c53b12b48c7634313" - integrity sha512-11cKcdXlf99FEbxmpOcCOj5WR/gPrIJxJfGbgvIKoYvovivleyejGmCx7yzrD39gnKf+ukKp0f2aojnj/fykEw== +"@abp/prismjs@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.2.tgz#9a494986f4df086a1666c76bcc1a96f6bdf258cc" + integrity sha512-hzesZmzWb/MWX+fNEFMTztprfp0fNbURs5e7gJ+xXyPlEpr0kpCHahxuEYZRN2iczgSDEKN4MzElUJN5O+1Jxw== dependencies: - "@abp/clipboard" "~4.1.1" - "@abp/core" "~4.1.1" + "@abp/clipboard" "~4.1.2" + "@abp/core" "~4.1.2" prismjs "^1.20.0" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/tui-editor@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.1.1.tgz#a2ce06e58c83e7d809ad1d4b3b124788955eae9a" - integrity sha512-NcnPEptmMDD4TIfjJzVR2+lchOiiScX7b5VzlFxIuhpAwiC1/rHMkQo7/TARQ/LNMSu3mDmrslKRyypcK1FrNw== +"@abp/tui-editor@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.1.2.tgz#df7129ca4b5ebcb803fa95b90db7c379e83dda99" + integrity sha512-xXStmts4IbKGKej2NMxeKaQUxaHShjDWZxxdqqM5qlQ0YszYdDhYykTlxV3/1ZeKRCwiHGN/KnIi6K+JzPp/zA== dependencies: - "@abp/codemirror" "~4.1.1" - "@abp/highlight.js" "~4.1.1" - "@abp/jquery" "~4.1.1" - "@abp/markdown-it" "~4.1.1" + "@abp/codemirror" "~4.1.2" + "@abp/highlight.js" "~4.1.2" + "@abp/jquery" "~4.1.2" + "@abp/markdown-it" "~4.1.2" tui-editor "^1.4.10" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 743e4c3a8e..2b1b915de0 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index bdbe727501..41589f57d2 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index cdddc1ad78..ae2160d372 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -16,10 +16,10 @@ "private": true, "dependencies": { "@abp/ng.account": "~3.3.2", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", + "@abp/ng.identity": "~4.1.2", + "@abp/ng.setting-management": "~4.1.2", + "@abp/ng.tenant-management": "~4.1.2", + "@abp/ng.theme.basic": "~4.1.2", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 61b5223f80..ac8da2f4c6 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.1.1", - "@abp/ng.theme.shared": ">=4.1.1" + "@abp/ng.core": ">=4.1.2", + "@abp/ng.theme.shared": ">=4.1.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 4bfd8075d6..c379dd8531 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 69b141033e..2d6518fa72 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 55dac5290f..a866886f67 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index ca2f211431..95285f7343 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 55dac5290f..a866886f67 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index ba87a529ac..120a2373cd 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 91860c65aa..c91aa56d95 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1", - "@abp/docs": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2", + "@abp/docs": "^4.1.2" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index c3f6473b33..b5335916fa 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.1.1.tgz#3d29a59db406d99e612ece32053c1879a2f66b32" - integrity sha512-t7rLY2Jt9C++cf6im9+ib2fcgIp+u43n0TdOYOBfLL2cUKfGbkHROS41fSr+hzrN2ZgF5bXvAt5Fq/KZmlvraQ== +"@abp/anchor-js@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.1.2.tgz#28606b185c1fc062764d5226c47dce5817c560dd" + integrity sha512-dsjSYuxWmXt5ep+Ts6UgFuo9pyGSCKulGkCOhx7APo2x3de40ehwY1K2i/px7oRtJMoTswxpLhxY64o/HHMIWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -51,181 +51,181 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.1.tgz#65d3c8ec430029e292f79549e4f8245d08fdc85c" - integrity sha512-dy6Ewb0NHoYqXP/uInaRV9d22uzpJR+XjNrEe+g+i9JXWPwtQ/+ch439E607Z1oV3AkpjSCYCmlTuy641A2klQ== +"@abp/clipboard@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.1.2.tgz#93c71edc4617ce1ebf91641a045035419b605735" + integrity sha512-QXSFX5wf2qVZuUg2BRRLcT403+eZWOkFYBxeTheKCbOv9W3dmsPTOoSBdviyrDRZLpqM851wTg587EjJldAIqA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" clipboard "^2.0.6" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/docs@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.1.1.tgz#8fa960e2b22e46d185591dba80616b29b88dea2d" - integrity sha512-cNcTnoCw/0ft07wcGoQ6QjLn99mWBZUowkIc5x9Fxk6IclYgEP9/avFrXx4jkoW9Eii7jip6J2ngMdpbcI8Chg== +"@abp/docs@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.1.2.tgz#e187459e7ac7453e74ddb9ffbd94b0d3605bf972" + integrity sha512-YPcaSCrFBemYrWk34k5LLds4iyXq3Qe0ImcyNH+arVhzk+iJI6BhO3uiyDBjdnlm3VVUwNRhYmnhR65s/fk7FA== dependencies: - "@abp/anchor-js" "~4.1.1" - "@abp/clipboard" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/popper.js" "~4.1.1" - "@abp/prismjs" "~4.1.1" + "@abp/anchor-js" "~4.1.2" + "@abp/clipboard" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/popper.js" "~4.1.2" + "@abp/prismjs" "~4.1.2" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.1.1.tgz#f01554639ca847af085c769c7a869ff235257dc5" - integrity sha512-C992GXOETg1JpBxStNQKKxasklXhQ9MCIS4oeH9sofB5MInXgSBCt8aJb1pnYLkyU5LIabdk/druFj4eLiDNXQ== +"@abp/popper.js@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.1.2.tgz#042f97d61b4f3e3df3d633079e2587af4c9d00b7" + integrity sha512-tfP4wYxFIYM9zibe7jMXkdgnzlPVwrd26fHl3oNlbgeqyJbnojC5X5XKPabg6iCnTkEtTnvekQMgm3LKJyS5SA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" popper.js "^1.16.0" -"@abp/prismjs@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.1.tgz#ebdbea3a09e1c1bb5c7ebe2c53b12b48c7634313" - integrity sha512-11cKcdXlf99FEbxmpOcCOj5WR/gPrIJxJfGbgvIKoYvovivleyejGmCx7yzrD39gnKf+ukKp0f2aojnj/fykEw== +"@abp/prismjs@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.1.2.tgz#9a494986f4df086a1666c76bcc1a96f6bdf258cc" + integrity sha512-hzesZmzWb/MWX+fNEFMTztprfp0fNbURs5e7gJ+xXyPlEpr0kpCHahxuEYZRN2iczgSDEKN4MzElUJN5O+1Jxw== dependencies: - "@abp/clipboard" "~4.1.1" - "@abp/core" "~4.1.1" + "@abp/clipboard" "~4.1.2" + "@abp/core" "~4.1.2" prismjs "^1.20.0" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/npm/lerna.json b/npm/lerna.json index e1106de3ed..8ddcad84f5 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.1.2", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index fa05cd5653..30b19e8d88 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.1.2", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 8c724f596d..97f3c9d5e6 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -26,16 +26,16 @@ "postinstall": "npm run compile:ivy" }, "devDependencies": { - "@abp/ng.core": "~4.1.1", - "@abp/ng.feature-management": "~4.1.1", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.permission-management": "~4.1.1", - "@abp/ng.schematics": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", - "@abp/utils": "^4.1.1", + "@abp/ng.core": "~4.1.2", + "@abp/ng.feature-management": "~4.1.2", + "@abp/ng.identity": "~4.1.2", + "@abp/ng.permission-management": "~4.1.2", + "@abp/ng.schematics": "~4.1.2", + "@abp/ng.setting-management": "~4.1.2", + "@abp/ng.tenant-management": "~4.1.2", + "@abp/ng.theme.basic": "~4.1.2", + "@abp/ng.theme.shared": "~4.1.2", + "@abp/utils": "^4.1.2", "@angular-builders/jest": "^10.0.0", "@angular-devkit/build-angular": "~0.1100.0", "@angular-devkit/build-ng-packagr": "~0.1001.2", diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 0a4f85dac9..5b20e24cc5 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.components", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=4.1.1", + "@abp/ng.core": ">=4.1.2", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 3727b50bc4..cb1e906020 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^4.1.1", + "@abp/utils": "^4.1.2", "@angular/localize": "~10.0.10", "@ngxs/store": "^3.7.0", "angular-oauth2-oidc": "^10.0.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 4fdbeab8b4..abc5e727bc 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.1.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index b4ade1d604..1eec83faab 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.permission-management": "~4.1.2", + "@abp/ng.theme.shared": "~4.1.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 89ab8c542e..2fbb69e978 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.1.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index c495c53f6f..825c1d08b1 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "4.1.1", + "version": "4.1.2", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index abf9e4ec09..dede12593c 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.setting-management", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.1.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index bfd3d357c3..288aa503c6 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.feature-management": "~4.1.2", + "@abp/ng.theme.shared": "~4.1.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 8fe51f1d8b..c11ced6c9b 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.basic", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.theme.shared": "~4.1.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index fdf767100e..edc9162ec6 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "4.1.1", + "version": "4.1.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~4.1.1", + "@abp/ng.core": "~4.1.2", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.13", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index b11d495314..2104553e40 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@abp/ng.core@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.1.0.tgz#be90be576300e9f379775484bc22643013e79b74" - integrity sha512-Jd9d4qIAzrhmU4cyZXCS4qOHIDQRJpirwxKwaPooKeeNrNs1HqVVLTNAlhGC/ofmukYsiJC99wpmd7pvUN2tBA== +"@abp/ng.core@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.1.1.tgz#9ef78d157515356eb284ff3f45bf5922a2bac199" + integrity sha512-H1L3YxDvI0N4bQ4NtYo0x2K8Mfuhamh940XvtcC14pet4+aptqycfUrKHsKulGvDPZC60gf/E7JjZnQHw0rx+w== dependencies: - "@abp/utils" "^4.1.0-rc.2" + "@abp/utils" "^4.1.0" "@angular/localize" "~10.0.10" "@ngxs/store" "^3.7.0" angular-oauth2-oidc "^10.0.0" @@ -17,35 +17,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.1.0.tgz#5e87592d276315994fa1b5f35f2a568476d9cf3d" - integrity sha512-PJM/rj5mjzGHXUEKa6UWbhhgjJafoKkHTYW/4+4KNM8tmwggNS+YmwOj0xdqfQlF1aYtUsMWpI0koMbtqgBH/A== +"@abp/ng.feature-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.1.1.tgz#94944d88489c1a9414653179504d59d078b5644a" + integrity sha512-957QGxJJ16URxOkJ/k88cCh8fmX1pXNgdfpmRqeTeac1GIFjs05WDxjfIPIdE9wX5iAI93p8LWLy61+xba6qmQ== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.identity@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.1.0.tgz#bebf0e4b85f0332313a827cc344c3d9e6af59d33" - integrity sha512-doBqoPtxPdT8e27s4h97ldV6tsMHeKCXpyNiMAlweTFcsXjZjXnVJbuXYvqdoyRItqTbSxSlBKxk+6KRb9lPQQ== +"@abp/ng.identity@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.1.1.tgz#37da658648dd261d4b707864078cbb995239858f" + integrity sha512-0lkkUjOFSMEa8Mlk/yiqzejuNJ+mlyRiBWgpHbasWCj7eOP0KvSpF9VNtOefwflsI5kg2W5rTfjb/QIsHqmHDw== dependencies: - "@abp/ng.permission-management" "~4.1.0" - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.permission-management" "~4.1.1" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.permission-management@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.1.0.tgz#1bf09f21a254c265d75db83e96f48a5706214a08" - integrity sha512-/kc9wFtGmwHW28a2GfroJqUOk6PPlGQ8YNzU37cuN5BBK7909Eu1Q+4a9JigQqCsBGTxVgIpP4WQ2p7CcfIymg== +"@abp/ng.permission-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.1.1.tgz#f96d327eb2163e30d3dc91ee985c78a7d57b63c3" + integrity sha512-e89j6Z5sje3/gY8vw9PTPlDne1XiJqTu3EuX+K14TpfDfgIzo+xEhqjygkAEsg+PW/bXJyfAMPeR0Ygn6MobLA== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.schematics@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.1.0.tgz#f2b2361ccbe49c7981d3c2fe6b43c745eedc46c1" - integrity sha512-BNpyqkkWBEF8nYZwK+krHjqbbQHHiqUoXe/FspNDkSuVTvC6wGmNe/8BalJLZzPF3lNI8ByNC2/MwrGh/Tzlpg== +"@abp/ng.schematics@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.1.1.tgz#2450108711e93efb480cee410a6312db85a3fde0" + integrity sha512-9GGAKXSa6lCrRLwtul70MrlBt60Dijpz2QtH8W4to0CgQeLsDMSODNNHwfAvFk6Utk7hSLdFTVwetvujqBVjsA== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -53,37 +53,37 @@ jsonc-parser "^2.3.0" typescript "~3.9.2" -"@abp/ng.setting-management@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.1.0.tgz#8ef31a7f4c75be34f5be78427165f2d2b85ae16e" - integrity sha512-8zH4jCNVwPIGgYlrHSm/0BKje1bFCQBOwAsdlVP6A6GRyOVY/6G5166ZAnEqbim8K6ln5WXPHTHtYnxB7Qur8Q== +"@abp/ng.setting-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.1.1.tgz#87ecc6cd0dec1bbc73ddddd712f34bcd05ee9ae0" + integrity sha512-ETMI66eviUyObT4O7yl+dA0X3AlnL9iXITpPHssLfEVgAJh1LbAOmTJDGyDgLPAOQnfZ3+CYGvDWfEmRNuqa0w== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.tenant-management@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.1.0.tgz#ec59e469e806a5081b52b1c597c333b49381afe7" - integrity sha512-VZ/qiOz/XbUJT6rb+X9GUhwnBTqTt9UIAlAGiT7qONH/39pqUpe6n5d3lbL5oGGZ+ZxJ6S2/+dSKLC1cFt+Bgg== +"@abp/ng.tenant-management@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.1.1.tgz#a3ff09dbc00e5bdb790dfb1758ee9767810ec6bb" + integrity sha512-cmMxOty6/0d+dnTnp+/bANe2Bpv/Fb+04atu61IkwiOUtUvQGMLE7BAhTv/xjVAPrpvwKAIuqM0+OeWG1yOcKQ== dependencies: - "@abp/ng.feature-management" "~4.1.0" - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.feature-management" "~4.1.1" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.theme.basic@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.1.0.tgz#0931a33ca6cdb7375d77e75611cd7d3542b16c43" - integrity sha512-rI80s3meGZzgHa4Ke5fAhwP79D/MRiThI47ixFhxUyPSP3+ogjziAn98SIsadkcjhH86lsSV9s2uCnzeqReBMg== +"@abp/ng.theme.basic@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.1.1.tgz#c78fe49a029674fb474e65eb0b03c55519acd2c2" + integrity sha512-/CnNp3dtDxyWBTWAlEzscYmwth0BXAz7bNxkREZoLR/7fSYetExk0ncIJnxelPMV9jZK9WwULDssJpfh0g5lSw== dependencies: - "@abp/ng.theme.shared" "~4.1.0" + "@abp/ng.theme.shared" "~4.1.1" tslib "^2.0.0" -"@abp/ng.theme.shared@~4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.1.0.tgz#e0140bdc9f44609e77097dd046ce3067546fc6ca" - integrity sha512-0YtyVBp/1Tciu+8ORkRVTHSFT7kJGTqH+cdq+FnbqD90JQ5XZjlHcz+h/VhARoB00xbXsG8ZbwCOi/8ZFDg5wQ== +"@abp/ng.theme.shared@~4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.1.1.tgz#b5952a0c3e48833147515dc7484e986d7ae78df8" + integrity sha512-sU6BDcUeRMXsPn9J6u13dekJSc6Yi40Vl5JrdPPQT8T5f3oCXT3IbnC+gC2fD53WRXKIn1gPPvw4kT9N5mSeJQ== dependencies: - "@abp/ng.core" "~4.1.0" + "@abp/ng.core" "~4.1.1" "@fortawesome/fontawesome-free" "^5.14.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.13" @@ -99,10 +99,10 @@ dependencies: just-compare "^1.3.0" -"@abp/utils@^4.1.0-rc.2": - version "4.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.0-rc.2.tgz#eb6dbf0ee493d0f050b37347d2d6d283098aedae" - integrity sha512-V2k5I89lVBoeGIKgg4p2H9GlMAcDWbctwKZPVwBEMVEVm1uTR2xQAWdTdSFd5Q8I8Xsf/aIG8ELM7l5j2h7/zQ== +"@abp/utils@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" + integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== dependencies: just-compare "^1.3.0" diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index ff8190ebb8..221d9e187e 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index c81019ac5a..c195867a9d 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 0b0cacf1ef..c939117433 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,24 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~4.1.1", - "@abp/bootstrap": "~4.1.1", - "@abp/bootstrap-datepicker": "~4.1.1", - "@abp/datatables.net-bs4": "~4.1.1", - "@abp/font-awesome": "~4.1.1", - "@abp/jquery-form": "~4.1.1", - "@abp/jquery-validation-unobtrusive": "~4.1.1", - "@abp/lodash": "~4.1.1", - "@abp/luxon": "~4.1.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.1.1", - "@abp/select2": "~4.1.1", - "@abp/sweetalert": "~4.1.1", - "@abp/timeago": "~4.1.1", - "@abp/toastr": "~4.1.1" + "@abp/aspnetcore.mvc.ui": "~4.1.2", + "@abp/bootstrap": "~4.1.2", + "@abp/bootstrap-datepicker": "~4.1.2", + "@abp/datatables.net-bs4": "~4.1.2", + "@abp/font-awesome": "~4.1.2", + "@abp/jquery-form": "~4.1.2", + "@abp/jquery-validation-unobtrusive": "~4.1.2", + "@abp/lodash": "~4.1.2", + "@abp/luxon": "~4.1.2", + "@abp/malihu-custom-scrollbar-plugin": "~4.1.2", + "@abp/select2": "~4.1.2", + "@abp/sweetalert": "~4.1.2", + "@abp/timeago": "~4.1.2", + "@abp/toastr": "~4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 2f5b58594e..b97d301d8e 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "4.1.1", + "version": "4.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index bc591bc349..8ad32fb68d 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/aspnetcore.mvc.ui", "publishConfig": { "access": "public" diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index dec02a35f5..04ed5b0876 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.1.1", - "@abp/owl.carousel": "~4.1.1", - "@abp/prismjs": "~4.1.1", - "@abp/tui-editor": "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.1.2", + "@abp/owl.carousel": "~4.1.2", + "@abp/prismjs": "~4.1.2", + "@abp/tui-editor": "~4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 58fcf90122..099bf3db5e 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/bootstrap-datepicker", "publishConfig": { "access": "public" diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index cc9f76609f..b8ca55fba6 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/bootstrap", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "bootstrap": "^4.5.0", "bootstrap-v4-rtl": "4.4.1-2" }, diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index ac5ff9359c..2d56f7a98b 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index ebe10e6c4f..ae67f072bd 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 19b9fece3f..ab3810470e 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/star-rating-svg": "~4.1.1" + "@abp/star-rating-svg": "~4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 02ba9aec6a..86c2f58ed2 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index f37f93a833..ed7c1aefb6 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/core", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^4.1.1" + "@abp/utils": "^4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index b2ca404e85..0273214dd9 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 5e50d3505f..e0713812eb 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/datatables.net-bs4", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~4.1.1", + "@abp/datatables.net": "~4.1.2", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index d19fc22230..6e912eea65 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/datatables.net", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.1.2", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 0cd0037b7f..f0117a2cf4 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~4.1.1", - "@abp/clipboard": "~4.1.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.1.1", - "@abp/popper.js": "~4.1.1", - "@abp/prismjs": "~4.1.1" + "@abp/anchor-js": "~4.1.2", + "@abp/clipboard": "~4.1.2", + "@abp/malihu-custom-scrollbar-plugin": "~4.1.2", + "@abp/popper.js": "~4.1.2", + "@abp/prismjs": "~4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 76b4f31548..23e2761767 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 0142db1faa..c27c0171d1 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/font-awesome", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index f7e9e2cdb2..8f6319774b 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1" + "@abp/core": "~4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index ffcc37665f..af228981c5 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/jquery-form", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.1.2", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 444aabd226..0e3fc40a14 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/jquery-validation-unobtrusive", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~4.1.1", + "@abp/jquery-validation": "~4.1.2", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 5f3afc028e..44eb8dc802 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/jquery-validation", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.1.2", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 110d4845b5..e85b0a78a4 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/jquery", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "jquery": "~3.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 0e9b3937cc..ce2c2eb891 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.1.2", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index eeccba52ca..c6e750f0eb 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/lodash", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index c5c653834b..cd155a8eed 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/luxon", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "luxon": "^1.24.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index f151722d03..321bb34a2f 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/malihu-custom-scrollbar-plugin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index ad0950a706..873c7e6015 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index da74f5a4c8..8540f44b02 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 4a6c6237d8..749d4291fd 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "popper.js": "^1.16.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 9642a5432c..44398e2e9e 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.1.1", - "@abp/core": "~4.1.1", + "@abp/clipboard": "~4.1.2", + "@abp/core": "~4.1.2", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 56d10b4965..fa4c92a6e3 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/select2", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 4d9b4a6ba0..6a89509427 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index 4cb936e30d..68542c0b0c 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.1.2", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert/package.json b/npm/packs/sweetalert/package.json index 032666cd3f..bb18c8d3fd 100644 --- a/npm/packs/sweetalert/package.json +++ b/npm/packs/sweetalert/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/sweetalert", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "sweetalert": "^2.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 9d71eedf1a..cc6b36825c 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/timeago", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.1.2", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 4ab30c5c06..6abc29228a 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/toastr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.1.1", + "@abp/jquery": "~4.1.2", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index f66e31b988..e116c48eb0 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~4.1.1", - "@abp/highlight.js": "~4.1.1", - "@abp/jquery": "~4.1.1", - "@abp/markdown-it": "~4.1.1", + "@abp/codemirror": "~4.1.2", + "@abp/highlight.js": "~4.1.2", + "@abp/jquery": "~4.1.2", + "@abp/markdown-it": "~4.1.2", "tui-editor": "^1.4.10" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 3b314107a6..452a8cefa1 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.1.1", + "@abp/core": "~4.1.2", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 6a9ffaf87d..15fb3f3105 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "4.1.1", + "version": "4.1.2", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index eb147cb830..0bee43ac7e 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~4.1.1", + "@abp/vue": "~4.1.2", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 62a3514e59..525cb07ca3 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.1.1", - "@abp/prismjs": "~4.1.1" + "@abp/clipboard": "~4.1.2", + "@abp/prismjs": "~4.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index f039e589b0..c1997afdb5 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "4.1.1", + "version": "4.1.2", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 23c24b3528..098f88ac01 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,13 +12,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.1.1", - "@abp/ng.core": "~4.1.1", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.components": "~4.1.2", + "@abp/ng.core": "~4.1.2", + "@abp/ng.identity": "~4.1.2", + "@abp/ng.setting-management": "~4.1.2", + "@abp/ng.tenant-management": "~4.1.2", + "@abp/ng.theme.basic": "~4.1.2", + "@abp/ng.theme.shared": "~4.1.2", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -32,7 +32,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.1.1", + "@abp/ng.schematics": "~4.1.2", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 55dac5290f..a866886f67 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index fb1fbd6bad..bbade2d197 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index 4bfd8075d6..c379dd8531 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 69b141033e..2d6518fa72 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 55dac5290f..a866886f67 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 69b141033e..2d6518fa72 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 55dac5290f..a866886f67 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index fb1fbd6bad..bbade2d197 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 9fe715068a..d199e5123b 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,13 +15,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.1.1", - "@abp/ng.core": "~4.1.1", - "@abp/ng.identity": "~4.1.1", - "@abp/ng.setting-management": "~4.1.1", - "@abp/ng.tenant-management": "~4.1.1", - "@abp/ng.theme.basic": "~4.1.1", - "@abp/ng.theme.shared": "~4.1.1", + "@abp/ng.components": "~4.1.2", + "@abp/ng.core": "~4.1.2", + "@abp/ng.identity": "~4.1.2", + "@abp/ng.setting-management": "~4.1.2", + "@abp/ng.tenant-management": "~4.1.2", + "@abp/ng.theme.basic": "~4.1.2", + "@abp/ng.theme.shared": "~4.1.2", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -35,7 +35,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.1.1", + "@abp/ng.schematics": "~4.1.2", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 7591bb4e25..f01f87e228 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.1.1", - "@abp/ng.theme.shared": ">=4.1.1" + "@abp/ng.core": ">=4.1.2", + "@abp/ng.theme.shared": ">=4.1.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index 4bfd8075d6..c379dd8531 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 69b141033e..2d6518fa72 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 55dac5290f..a866886f67 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 69b141033e..2d6518fa72 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 55dac5290f..a866886f67 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.1.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock index ba87a529ac..120a2373cd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.1.tgz#c1181517794fad8569f4afd1a112803e7f3e32e0" - integrity sha512-JheNV5UVkkJZ4IdQsVmqB3lKYOQsa1NI1JfbDku9v/r/xEEhg8Ch/q39j5TPtKAmF0KES6XW6zWXzaKWYhdhVw== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.1.2.tgz#78daeec6f206c990bd03cac1c850c73ebf5c9ebd" + integrity sha512-uPmh+AzqUWNBI6ZuwZ8D5+qNp3iF5nDi2wK4zqPUnYcUsNXcTY1DF57TohPkwpcjk7NH9+4RDaed+LLjt7/0oQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.1.2" -"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.1.tgz#dbf6ae11b1e99b2cfe9e4d2175341c6fba2168d0" - integrity sha512-HECMBY5ETtaqFxoO/7teYQmdWyFaQNeWuzMyeclMBOvR+pjAttnZiGRZGeB75OuQsfE3m6dIQ64n5chBnoBPdg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.1.1" - "@abp/bootstrap" "~4.1.1" - "@abp/bootstrap-datepicker" "~4.1.1" - "@abp/datatables.net-bs4" "~4.1.1" - "@abp/font-awesome" "~4.1.1" - "@abp/jquery-form" "~4.1.1" - "@abp/jquery-validation-unobtrusive" "~4.1.1" - "@abp/lodash" "~4.1.1" - "@abp/luxon" "~4.1.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.1.1" - "@abp/select2" "~4.1.1" - "@abp/sweetalert" "~4.1.1" - "@abp/timeago" "~4.1.1" - "@abp/toastr" "~4.1.1" - -"@abp/aspnetcore.mvc.ui@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.1.tgz#74facb7722834e781f2801f56dba729c575463f3" - integrity sha512-WmRMWIeb2tYL+VhaLNvbcMKSbWNNi6cKflbIVPQQeY8WmI1ac5wWGLw7XsiniAEXP4WYrOGScXC7WNkgXGtrZw== +"@abp/aspnetcore.mvc.ui.theme.shared@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.1.2.tgz#fc7b5e8e83d000018ed1f53f1b58c7d03ca9177d" + integrity sha512-iHATn7AG76igHHRP2tc6/OAqLcG4W+Cdt0hDXHZqr05lAIQp9JoxYPl7cvfiIIjYWJfcLYXv5UwAcBIYkroQxg== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.1.2" + "@abp/bootstrap" "~4.1.2" + "@abp/bootstrap-datepicker" "~4.1.2" + "@abp/datatables.net-bs4" "~4.1.2" + "@abp/font-awesome" "~4.1.2" + "@abp/jquery-form" "~4.1.2" + "@abp/jquery-validation-unobtrusive" "~4.1.2" + "@abp/lodash" "~4.1.2" + "@abp/luxon" "~4.1.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.1.2" + "@abp/select2" "~4.1.2" + "@abp/sweetalert" "~4.1.2" + "@abp/timeago" "~4.1.2" + "@abp/toastr" "~4.1.2" + +"@abp/aspnetcore.mvc.ui@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.1.2.tgz#786cdc5a488a7807b013239ad62bd040d0c5c91b" + integrity sha512-OKezZnRw5CbGG3OacceaERBhc7XxrdbsRSTVih55UmqhVhl/dbxdnH8e3yeOTs+xHpGlxMuwuMjOwl2i0HLiiQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.1.tgz#c7368837b3881bf871b286c754fac62597e0c150" - integrity sha512-reOGgNZo0nDihX5niUcf9g2eg5OGLzeKbfDyrsn8dWyFEUPSS5JGCgHFwi943ULOR2untI0TK3J+KGqPk+5y0A== +"@abp/bootstrap-datepicker@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.1.2.tgz#4713df9f1c65145e3c592ab9a0f5326beaee9fba" + integrity sha512-7JIF1QZgVJZ3oRrVtnhe1/uyLxlJhjcsq3XgEg+BnUvhtOUVk46q00jyy+4Op0F8aBo1ZWGL2gkEnGdswXrMNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.1.tgz#3df31b416331241afac6e0d20e4e8a723d91a86f" - integrity sha512-9V07JRsIdFpRqw1e4r2sGNJs6egyQjCpUfoa72e2/Bh8Qajp1bXTUvVBKxY+6XBpa3M5WmXpO/h7J8TYFGpYSQ== +"@abp/bootstrap@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.1.2.tgz#5458dde0b4bcaa7f1df6c72d01d2a7b20471c865" + integrity sha512-DHdErfSe6FgzKyH1U8DtdTQzaamFwAnTjyD1o7MCnRcqwCz7Z08XdKhfTa7Cj9Pc3fjpKRiZxediXNYPdyMgKw== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.1.tgz#6f2600b5ab81033efb7441a719ef2d86f97f2edc" - integrity sha512-mbvtqFRMSrjM8m2jpfUU5G4ZB+g2xqEyXEgn8yaFMw8Rg63Vxn3C/fGh2oa7O9z45oEuxshS4sm20ahg7xa0Iw== +"@abp/core@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.1.2.tgz#9594481af96f50e45a6ecadfe72dc9316c90924a" + integrity sha512-BiffAQK5rYxhswTIcGQDrb0qoSExxri1tR5BEK22NCiRp9FgSlQyPF/+Qk9SHAqpxTdL+qGbqV32YV1aobdfog== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.1.2" -"@abp/datatables.net-bs4@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.1.tgz#70f621490423f98d6c5491bb6efa9f406504a4ad" - integrity sha512-I8yTKHXlVolXbgk3jBFB7FFEamChTezOT2le41GW5aDJvRkeCeghsSX7qxkfwoQWVKF4j6qie2nb/RU0cTHLqQ== +"@abp/datatables.net-bs4@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.1.2.tgz#de368381e51f1f02c381d3d0e98f469d94a838fc" + integrity sha512-U5L0u+awXlHZX1IS6KLHoqiQt2zHgKL1wHAZLDP5zjWcpMFUnFh2RcIW2i6ioRmuzv6/dbivVHd1Z4Kx32Mfng== dependencies: - "@abp/datatables.net" "~4.1.1" + "@abp/datatables.net" "~4.1.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.1.tgz#d2d2d46be91c005a04e88cbbb81fccf647106cda" - integrity sha512-vyc0tvAXHubdTNwTaheanGQ/PnnxOG829a/+vODqsxmCF75Xn/wVPKF3TphUOsoAx/Ues/srb3OzobSn3TnUeA== +"@abp/datatables.net@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.1.2.tgz#cd4078a3f98291a7ae5609cebe89ac8d2e3b3290" + integrity sha512-ba9F03QfaMEWHiHfWBlGMFac56C59JpnZXBWj053oQDDnrRYN9DR9i8cPP/EyRsbm8qLzTpxJzaFSQN4Mjg3Qw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.1.tgz#329a45ee382ba50de29d7aa7e4e2c88cd3f894ff" - integrity sha512-vWfD0OMEtHqbemX2yWCB3p7Tu3IxzxKob6Cle/kqK3DJG9x3D7fmg3RjTDK+VB8aEFYpGiaEPQ/bxnsQVU8cSA== +"@abp/font-awesome@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.1.2.tgz#1ca39102b777041131054ec32888ffadd5e50803" + integrity sha512-L4kni7/+cSGg/ZS5KntQMZjZ39l/jEF0j1JQawGmibF79yANSnMgwP9QJSxXAtoVUJUuqiZBT30rBgKlinl//A== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.1.tgz#0a7ba7c959f9e0a33e5316af528c698d3698c8e5" - integrity sha512-eTSUBAm/SD+u/FV5qZ5mgBqxmUgjcHxK243r9a5M5zVXwMi+54XsY8pGkEFtpATail/oja4AZBGXB0pbSdAQ7Q== +"@abp/jquery-form@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.1.2.tgz#5fec07f263c3d8890409e6bcc3bc560f048534b1" + integrity sha512-1nV4dkcOU7dCfYNkx8qmZShue23XlfJQ7rvdUZrLgmXUOrorNciRxYZD4p3QoOV1m+/l+59f/JV4Q/i1wapYCQ== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.1.tgz#063bad034aed1313efb61522ec7fb370ce5bea12" - integrity sha512-xgb2qu9nlD/5h5obIj9kWnXRPucno0D3KNnPmVhN5LIeUEdme/sBxSugxG7xSzHh5b8xgnO87OA/bzy5z+Biig== +"@abp/jquery-validation-unobtrusive@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.1.2.tgz#7eb93958d57c7cb48c1a1d23d2f6c1749b6fc373" + integrity sha512-6UtwfOf8Isf7mtQwnnr5wByffh57eIE6JziD7JP50enjCNeDMZ99jHCbQF6IMVLhWvgCwBdSJgK/2oys7s9nQQ== dependencies: - "@abp/jquery-validation" "~4.1.1" + "@abp/jquery-validation" "~4.1.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.1.tgz#94c15a55c958f9203ac48971ed257f41974e9648" - integrity sha512-L3Bp9DLdu5VFPFA1qyNobnGMaBfYAhZaJkcNpOeUKSf8b1oTc93lPb0jlUfWcXPAVsrg1WkV4QgIC4Ep/JonYQ== +"@abp/jquery-validation@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.1.2.tgz#13fe474b7c096315e97683dcf3857946831f4826" + integrity sha512-orLAhMfEJP0Z0y1CtPY9/ViUXmMwhpzb6ikJ9MeiFhSrXavHQYLaG0mX+TQj5V6/ZYbehxoK8hNSFqRq2NvWww== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.1.tgz#37169b37c97ff866bf7b9b2af77b47be831ce786" - integrity sha512-DbwqdkVctwx2q+ngzjYKWh9YRUBl+hEt1X3nxAN9XVACtF76ZqiuRkV73Rrbugggw5WZdSJoD9WW5FbGKRFQ2A== +"@abp/jquery@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.1.2.tgz#6804d09b480c940ad472a74bae449903c948107e" + integrity sha512-GrPZeyKQ1sJB0UvevcXALvLoAS2r+Sf8LhaHg8ZFehCAMnU3KHF2tu9cjrjmbD1QkXHpD991AIiqff7zK2LHMg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" jquery "~3.5.1" -"@abp/lodash@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.1.tgz#7a643603677f72001e5a636b5df1a0eee7cd6b53" - integrity sha512-d+pSvprxzniqqT97aIN24bpS7zHM7a6Pa/17ZK64OGC3uUZ/RrwMH3nyYxnUhVM27PgGSZigebgrhRVBcBK5Yw== +"@abp/lodash@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.1.2.tgz#752ca6f00cded247340f6c3e55b14cd313478afa" + integrity sha512-f7uX49YZ3dTBO6taNpwijWGDSGOSWbnk8lhKOCPraLJUzqeLiBj6EzHPs00I/XVLM9bWbhxeMKM+YjuEuk/XWQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" lodash "^4.17.15" -"@abp/luxon@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.1.tgz#06678bc17299453a2d9162eb3cef7d32cf1067db" - integrity sha512-6P4+BLl6s07QBPi0Bskqcym9bOVtqB30XQRWz1I7d/ttqHg89nRvPoHhshrBQiaVq6wkVq8o+teTD2P93hFAmw== +"@abp/luxon@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.1.2.tgz#82135ab90c7ddf842f79829067497552645d7a97" + integrity sha512-swycFJIWqFgL6ysxJbhARjGT6JhUfQrcOFUIJpihEHIT36vsCBmuaeec9JkZbne0r40sQ1G9iH08Wx9Cd1HsAg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.1.tgz#b630f623b1395a28db7be80e1cfb11f9805f1684" - integrity sha512-X4mzfhEHHrC1tGutVNc2BK1Jn1x1dM/zYmUHXKbPig3xza0yBUkPeGau1y9KLtg7CheNSpQo7wlJvvrVQJsRfg== +"@abp/malihu-custom-scrollbar-plugin@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.1.2.tgz#8d5dd3082e64691fe4151abff699579a2fb64936" + integrity sha512-LydHYG+6OrgGapQ2gLOJJxYst9+9vOfwHegP/R8aAdgTFfsBaGVjCVEhNgPXp/KKEAIQdVIt+vO+gn2es7cqOA== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.1.tgz#c424b87b438c681188047c00338e46e02c5926b1" - integrity sha512-pKcrAI35eazScdDwL/qrshJoQgWzSTjBvEC2gq8VPxLxGqsUcWLv4DgMDjpIDLE6NYn7Tkvj9rgfof1Yon/JZQ== +"@abp/select2@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.1.2.tgz#583f75e86f2011b93d150a7fc724eb0121cce491" + integrity sha512-Jf6rNgqkL5alYjBNZZlzhzoo7aWcfmKc4Lg2nHZhFlbhSsPfC+v0fnzSJAnTHeyhHQV1Bq3s9zRJLR3kYs+5dg== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" select2 "^4.0.13" -"@abp/sweetalert@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.1.tgz#05ccb26be45a127148faf4eccdc4f5cc65b87d73" - integrity sha512-lOghwt4YHqk5CPB996YYBxDJyVS3cS1piWzIlD/HYkZfE+Zt5m2zSkaU5cd4sSFv4dhdD31MfUkTYxq8jMN4Hw== +"@abp/sweetalert@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.1.2.tgz#381bd29eefa6d695b53ac5a59e9b2fed23d3b5de" + integrity sha512-eLfK6j7/ndS0K40Y9ZUqUbMe2K0Ng4R4stGx20xshKkP7I2DwTx4nFcQCjepGVGrb2rQ4HMfk63HtIn1ZVBaGQ== dependencies: - "@abp/core" "~4.1.1" + "@abp/core" "~4.1.2" sweetalert "^2.1.2" -"@abp/timeago@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.1.tgz#9fa924e003f7955a8ee0f3b9dfe15610339849e7" - integrity sha512-S7sxQo1q70s0V2BruVKu3BTH/XC+0/AkGuIBGKQODA+1LCOpjRGMZFoTRFx0fqNlV7qniYoQiNaXDs0anKhO+w== +"@abp/timeago@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.1.2.tgz#55bb3bf1eae06616f690abad20290f7bfb2b9087" + integrity sha512-1VYZSIB5sobq7qaOjF8Ll7znE1X6H/pxXrDvGQV4cK5NO+1CItC2kwf98Dca1lD7uhGLvfAWjMkunQjvx0cTKw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" timeago "^1.6.7" -"@abp/toastr@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.1.tgz#06af91ded4f03975c8ae0ff948646653b9017a88" - integrity sha512-RR8o7S7P31SCuJD50nTQ5kc8wdAMySfMsrPEkLdWw1aGCf84e7gRlT2Tc3BWGRdXcAfjU9HioT95t8DzWc+x8w== +"@abp/toastr@~4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.1.2.tgz#b837c6635487842f0d438e5c38265c1394d14813" + integrity sha512-wHjpmt2LSjuZcGAzlYXqq9F05fMCJgxRjxzIsLDgd2xGLZTE1BC6CskX8w/Ix0IZ5vdBMYutzPBvsu23tHGUTw== dependencies: - "@abp/jquery" "~4.1.1" + "@abp/jquery" "~4.1.2" toastr "^2.1.4" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== +"@abp/utils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.2.tgz#8a616f33e5ec09d8f46014c7c8feda87b65131f3" + integrity sha512-P18wMbNIsy+kj9WEFCWuVku6ifENPXtAh01ABIRZMSkS807hJs7srEamUKCDE8sNS9/xhnPI/T0EPil8TqSFTQ== dependencies: just-compare "^1.3.0" From a0ce2cc2843d2cf01ef6157aad33e3fa6d88b7c2 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 20 Jan 2021 10:21:26 +0800 Subject: [PATCH 099/309] Use the correct localize key on the login page. Resolve #7350 --- .../account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml index 056e69e895..57dec99889 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml @@ -56,7 +56,7 @@ @foreach (var provider in Model.VisibleExternalProviders) { - + }

    w^nEl}yUA8tcIL;W=)bq05hh^E>pz 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 Z4;g|l3TZ Date: Fri, 15 Jan 2021 14:34:17 +0300 Subject: [PATCH 047/309] Update POST.md --- docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 28737f6840..28a42059fb 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -130,7 +130,7 @@ abp new BookStore -dbms mysql --preview Available options: `SqlServer` (default), `MySQL`, `SQLite`, `Oracle-Devart`, `PostgreSQL`. See the [documentation](https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Other-DBMS) to use any other DBMS or switch the DBMS later. -> If you select a DBMS other than the SQL Server, then the database migrations are also created when you first run the `DbMigrator` application. +> If you select a DBMS other than the SQL Server, then the database migrations are also created when you first run the `DbMigrator` application. In this case, do not run the application inside Visual Studio (or another IDE), but execute `dotnet run` command in a terminal in the folder of the `DbMigrator` project. ### Swagger UI Login / Authorization From 92bd6984b684b5a3412cb91ca3ede804db5364c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adem=20Ayg=C3=BCn?= Date: Fri, 15 Jan 2021 15:03:22 +0300 Subject: [PATCH 048/309] Update DefaultExceptionToErrorInfoConverter.cs --- .../ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs index eb8c4eb804..6c0c8ef193 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs @@ -141,7 +141,7 @@ namespace Volo.Abp.AspNetCore.ExceptionHandling { foreach (var key in exception.Data.Keys) { - localizedValue = localizedValue.Replace("{" + key + "}", exception.Data[key].ToString()); + localizedValue = localizedValue.Replace("{" + key + "}", exception.Data[key]?.ToString()); } } From 70117d9ffb24d4af18ffac8a537c6c4dc057db90 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Fri, 15 Jan 2021 12:16:19 +0000 Subject: [PATCH 049/309] Fix EF warning in EfCoreTenantRepository --- .../EntityFrameworkCore/EfCoreTenantRepository.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/EfCoreTenantRepository.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/EfCoreTenantRepository.cs index 4b6208e232..18b82bb8be 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/EfCoreTenantRepository.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/EfCoreTenantRepository.cs @@ -25,6 +25,7 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore { return await (await GetDbSetAsync()) .IncludeDetails(includeDetails) + .OrderBy(t => t.Id) .FirstOrDefaultAsync(t => t.Name == name, GetCancellationToken(cancellationToken)); } @@ -33,6 +34,7 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore { return DbSet .IncludeDetails(includeDetails) + .OrderBy(t => t.Id) .FirstOrDefault(t => t.Name == name); } @@ -41,6 +43,7 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore { return DbSet .IncludeDetails(includeDetails) + .OrderBy(t => t.Id) .FirstOrDefault(t => t.Id == id); } From 1f4f9e33fe059c402fd6936835e88d4481b6e84d Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 15 Jan 2021 15:53:18 +0300 Subject: [PATCH 050/309] Cli: RunRemoveMigrations step before CleanupFolderHierarchy --- .../Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 9a32caf378..65ec6d14ad 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -26,13 +26,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App SwitchDatabaseProvider(context, steps); DeleteUnrelatedProjects(context, steps); + RemoveMigrations(context, steps); ConfigurePublicWebSite(context, steps); RemoveUnnecessaryPorts(context, steps); RandomizeSslPorts(context, steps); RandomizeStringEncryption(context, steps); UpdateNuGetConfig(context, steps); CleanupFolderHierarchy(context, steps); - RemoveMigrations(context, steps); return steps; } From ba74464d0551d5ae3ee7f77b5fd24ee7a8a0c4ba Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 15 Jan 2021 21:40:54 +0800 Subject: [PATCH 051/309] Update TemplateCodeDeleteStep --- .../ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs index 8942103873..8f17b90702 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs @@ -8,7 +8,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { foreach (var file in context.Files) { - if (file.Name.EndsWith(".cs") || file.Name.EndsWith(".csproj") || file.Name.EndsWith(".cshtml")) + if (file.Name.EndsWith(".cs") || file.Name.EndsWith(".csproj") || file.Name.EndsWith(".cshtml") || file.Name.EndsWith(".json")) { file.RemoveTemplateCode(); file.RemoveTemplateCodeMarkers(); From 2ee213b7add993c6f40951267a35573877571a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 15 Jan 2021 17:49:50 +0300 Subject: [PATCH 052/309] Update Index.md --- docs/en/Samples/Index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/en/Samples/Index.md b/docs/en/Samples/Index.md index b5dd0fab29..18312e4b55 100644 --- a/docs/en/Samples/Index.md +++ b/docs/en/Samples/Index.md @@ -17,6 +17,9 @@ A simple CRUD application to show basic principles of developing an application * **Book Store: Razor Pages UI & Entity Framework Core** * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF) * [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Mvc-EfCore) +* **Book Store: Blazor UI & Entity Framework Core** + * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=Blazor&DB=EF) + * [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * **Book Store: Angular UI & MongoDB** * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=NG&DB=Mongo) * [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) From 654efac9f5c0ccb8ea2e70b04eaf0e28ec196785 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 15 Jan 2021 18:14:18 +0300 Subject: [PATCH 053/309] Cli: Remove `DeleteMigrationsIfNeeded` method since migrations are already removed resolves https://github.com/abpframework/abp/issues/7270 --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 19 ---------------- .../EfCoreMigrationManager.cs | 22 ------------------- 2 files changed, 41 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 55247c71bb..9caa952528 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -226,8 +226,6 @@ namespace Volo.Abp.Cli.Commands } } - DeleteMigrationsIfNeeded(databaseProvider, databaseManagementSystem, outputFolder); - Logger.LogInformation($"'{projectName}' has been successfully created to '{outputFolder}'"); @@ -256,23 +254,6 @@ namespace Volo.Abp.Cli.Commands } } - private void DeleteMigrationsIfNeeded(DatabaseProvider databaseProvider, DatabaseManagementSystem databaseManagementSystem, string outputFolder) - { - if (databaseManagementSystem == DatabaseManagementSystem.NotSpecified || databaseManagementSystem == DatabaseManagementSystem.SQLServer) - { - return; - } - - if (databaseProvider != DatabaseProvider.NotSpecified && databaseProvider != DatabaseProvider.EntityFrameworkCore) - { - return; - } - - Logger.LogInformation($"Deleting migrations..."); - - _efCoreMigrationManager.RemoveAllMigrations(outputFolder); - } - private void OpenThanksPage(UiFramework uiFramework, DatabaseProvider databaseProvider, bool tiered, bool commercial) { uiFramework = uiFramework == UiFramework.NotSpecified || uiFramework == UiFramework.None ? UiFramework.Mvc : uiFramework; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs index b26ca1be90..b15ffaa274 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs @@ -27,28 +27,6 @@ namespace Volo.Abp.Cli.ProjectModification GetStartupProjectOption(startupProject)); } - public void RemoveAllMigrations(string solutionFolder) - { - if (Directory.Exists(Path.Combine(solutionFolder, "aspnet-core"))) - { - solutionFolder = Path.Combine(solutionFolder, "aspnet-core"); - } - - var srcFolder = Path.Combine(solutionFolder, "src"); - - var migrationsFolder = Directory.GetDirectories(srcFolder) - .FirstOrDefault(d => d.EndsWith(".EntityFrameworkCore.DbMigrations")); - - if (migrationsFolder != null) - { - Directory.Delete(Path.Combine(migrationsFolder, "Migrations"), true); - } - else - { - Logger.LogWarning("No migration found to delete."); - } - } - protected virtual string ParseModuleName(string fullModuleName) { var words = fullModuleName?.Split('.'); From 793f98b2d3de4fe770c1a10e824dc3fc790e09b6 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Sat, 16 Jan 2021 13:49:23 +0300 Subject: [PATCH 054/309] cli: move connectionstring step to customs --- .../Building/TemplateProjectBuildPipelineBuilder.cs | 6 ------ .../Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs | 9 +++++++++ .../Templates/Module/ModuleTemplateBase.cs | 9 +++++++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs index 7642a7d697..8b7cfeb440 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs @@ -17,12 +17,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building pipeline.Steps.Add(new ProjectReferenceReplaceStep()); pipeline.Steps.Add(new TemplateCodeDeleteStep()); - - if (context.BuildArgs.ConnectionString != null) - { - pipeline.Steps.Add(new ConnectionStringChangeStep()); - } - pipeline.Steps.Add(new SolutionRenameStep()); if (context.Template.Name == AppProTemplate.TemplateName || diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 65ec6d14ad..99625d830f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -32,6 +32,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App RandomizeSslPorts(context, steps); RandomizeStringEncryption(context, steps); UpdateNuGetConfig(context, steps); + ChangeConnectionString(context, steps); CleanupFolderHierarchy(context, steps); return steps; @@ -286,6 +287,14 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App } } + private static void ChangeConnectionString(ProjectBuildContext context, List steps) + { + if (context.BuildArgs.ConnectionString != null) + { + steps.Add(new ConnectionStringChangeStep()); + } + } + private static void CleanupFolderHierarchy(ProjectBuildContext context, List steps) { if (context.BuildArgs.UiFramework == UiFramework.Mvc && context.BuildArgs.MobileApp == MobileApp.None) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs index ef8385d479..69ec43e276 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs @@ -19,6 +19,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Module DeleteUnrelatedProjects(context, steps); RandomizeSslPorts(context, steps); UpdateNuGetConfig(context, steps); + ChangeConnectionString(context, steps); CleanupFolderHierarchy(context, steps); return steps; @@ -78,6 +79,14 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Module steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config")); } + private static void ChangeConnectionString(ProjectBuildContext context, List steps) + { + if (context.BuildArgs.ConnectionString != null) + { + steps.Add(new ConnectionStringChangeStep()); + } + } + private void CleanupFolderHierarchy(ProjectBuildContext context, List steps) { steps.Add(new MoveFolderStep("/aspnet-core/", "/")); From d8830a5c2778a6b1ddada1b5156109ee28005d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sat, 16 Jan 2021 13:59:05 +0300 Subject: [PATCH 055/309] Fix removed projects. --- .../Templates/Microservice/MicroserviceTemplateBase.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs index 13bfe3433e..a9ffccd142 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs @@ -29,21 +29,17 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice { case UiFramework.None: steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.WebGateway")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor")); steps.Add(new RemoveFolderStep("/angular")); break; case UiFramework.Angular: steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.WebGateway")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor")); break; - case UiFramework.Blazor: steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.WebGateway")); steps.Add(new RemoveFolderStep("/angular")); break; @@ -53,12 +49,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice steps.Add(new RemoveFolderStep("/angular")); break; } - - if (!context.BuildArgs.PublicWebSite) - { - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.PublicWeb")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.PublicWebGateway")); - } } private static void RandomizeStringEncryption(ProjectBuildContext context, List steps) From 7f366449b30cda5a616796f6c05f9fe2a5a6bd55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sat, 16 Jan 2021 19:31:47 +0300 Subject: [PATCH 056/309] Update MyCompanyName.MyProjectName.DbMigrator.csproj --- .../MyCompanyName.MyProjectName.DbMigrator.csproj | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj index 6bf2650ea9..fd96bfd920 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj @@ -31,5 +31,12 @@ + + + + + + + From 1a8e59cbced8831d9b4734c0d2359a8c18a855f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 17 Jan 2021 12:36:07 +0300 Subject: [PATCH 057/309] Update Getting-Started-Running-Solution.md --- docs/en/Getting-Started-Running-Solution.md | 50 ++++++++------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/docs/en/Getting-Started-Running-Solution.md b/docs/en/Getting-Started-Running-Solution.md index d1f02c887b..92c9a4b2a7 100644 --- a/docs/en/Getting-Started-Running-Solution.md +++ b/docs/en/Getting-Started-Running-Solution.md @@ -25,53 +25,41 @@ Check the **connection string** in the `appsettings.json` file under the {{if Ti } ```` -The solution is configured to use **Entity Framework Core** with **MS SQL Server** by default. EF Core supports [various](https://docs.microsoft.com/en-us/ef/core/providers/) database providers, so you can use any supported DBMS. See [the Entity Framework integration document](Entity-Framework-Core.md) to learn how to [switch to another DBMS](Entity-Framework-Core-Other-DBMS.md). - -### Apply the Migrations - -The solution uses the [Entity Framework Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli). So, you need to apply migrations to create the database. There are two ways of applying the database migrations. +> **About the Connection Strings and Database Management Systems** +> +> The solution is configured to use **Entity Framework Core** with **MS SQL Server** by default. However, if you've selected another DBMS using the `-dbms` parameter on the ABP CLI `new` command (like `-dbms MySQL`), the connection string might be different for you. +> +> EF Core supports [various](https://docs.microsoft.com/en-us/ef/core/providers/) database providers and you can use any supported DBMS. See [the Entity Framework integration document](Entity-Framework-Core.md) to learn how to [switch to another DBMS](Entity-Framework-Core-Other-DBMS.md) if you need later. -#### Apply Migrations Using the DbMigrator +### Database Migrations -The solution comes with a `.DbMigrator` console application which applies migrations and also **seeds the initial data**. It is useful on **development** as well as on **production** environment. +The solution uses the [Entity Framework Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli). It comes with a `.DbMigrator` console application which **applies the migrations** and also **seeds the initial data**. It is useful on **development** as well as on **production** environment. > `.DbMigrator` project has its own `appsettings.json`. So, if you have changed the connection string above, you should also change this one. -Right click to the `.DbMigrator` project and select **Set as StartUp Project** - -![set-as-startup-project](images/set-as-startup-project.png) - - Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below: +### The Initial Migration - ![db-migrator-output](images/db-migrator-output.png) - -> Initial [seed data](Data-Seeding.md) creates the `admin` user in the database (with the password is `1q2w3E*`) which is then used to login to the application. So, you need to use `.DbMigrator` at least once for a new database. +`.DbMigrator` application automatically **creates the Initial migration** on first run. -#### Using EF Core Update-Database Command +**If you are using Visual Studio, you can skip the the *Running the DbMigrator* section.** However, other IDEs (e.g. Rider) may have problems for the first run since it adds the initial migration and compiles the project. In this case, open a command line terminal in the folder of the `.DbMigrator` project and run the following command: -Ef Core has `Update-Database` command which creates database if necessary and applies pending migrations. - -{{ if UI == "MVC" }} - -Right click to the {{if Tiered == "Yes"}}`.IdentityServer`{{else}}`.Web`{{end}} project and select **Set as StartUp project**: +````bash +dotnet run +```` -{{ else if UI != "MVC" }} +For the next time, you can just run it in your IDE as you normally do. -Right click to the `.HttpApi.Host` project and select **Set as StartUp Project**: +### Running the DbMigrator -{{ end }} +Right click to the `.DbMigrator` project and select **Set as StartUp Project** ![set-as-startup-project](images/set-as-startup-project.png) -Open the **Package Manager Console**, select `.EntityFrameworkCore.DbMigrations` project as the **Default Project** and run the `Update-Database` command: - -![package-manager-console-update-database](images/package-manager-console-update-database.png) + Hit F5 (or Ctrl+F5) to run the application. It will have an output like shown below: -This will create a new database based on the configured connection string. + ![db-migrator-output](images/db-migrator-output.png) -> **Using the `.DbMigrator` tool is the suggested way**, because it also seeds the initial data to be able to properly run the web application. -> -> If you just use the `Update-Database` command, you will have an empty database, so you can not login to the application since there is no initial admin user in the database. You can use the `Update-Database` command in development time when you don't need to seed the database. However, using the `.DbMigrator` application is easier and you can always use it to migrate the schema and seed the database. +> Initial [seed data](Data-Seeding.md) creates the `admin` user in the database (with the password is `1q2w3E*`) which is then used to login to the application. So, you need to use `.DbMigrator` at least once for a new database. {{ else if DB == "Mongo" }} From 1bab1cdd2a1b19f32cf4c337a3a63bfa483aeaa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 17 Jan 2021 12:39:03 +0300 Subject: [PATCH 058/309] Update Getting-Started-Running-Solution.md --- docs/en/Getting-Started-Running-Solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Getting-Started-Running-Solution.md b/docs/en/Getting-Started-Running-Solution.md index 92c9a4b2a7..163a3890b2 100644 --- a/docs/en/Getting-Started-Running-Solution.md +++ b/docs/en/Getting-Started-Running-Solution.md @@ -41,7 +41,7 @@ The solution uses the [Entity Framework Core Code First Migrations](https://docs `.DbMigrator` application automatically **creates the Initial migration** on first run. -**If you are using Visual Studio, you can skip the the *Running the DbMigrator* section.** However, other IDEs (e.g. Rider) may have problems for the first run since it adds the initial migration and compiles the project. In this case, open a command line terminal in the folder of the `.DbMigrator` project and run the following command: +**If you are using Visual Studio, you can skip to the *Running the DbMigrator* section.** However, other IDEs (e.g. Rider) may have problems for the first run since it adds the initial migration and compiles the project. In this case, open a command line terminal in the folder of the `.DbMigrator` project and run the following command: ````bash dotnet run From 250f9977b2b89833c1dc226bcf7db67cde0cb7d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 17 Jan 2021 22:04:22 +0300 Subject: [PATCH 059/309] Repository document: Use GetQueryableAsync. --- docs/en/Repositories.md | 176 ++++++++++++++++++++++++++++++---------- 1 file changed, 135 insertions(+), 41 deletions(-) diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index 5ad3107ca6..a2eb385094 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -13,84 +13,178 @@ ABP can provide a **default generic repository** for each aggregate root or enti **Example usage of a default generic repository:** ````C# -public class PersonAppService : ApplicationService -{ - private readonly IRepository _personRepository; +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; - public PersonAppService(IRepository personRepository) +namespace Demo +{ + public class PersonAppService : ApplicationService { - _personRepository = personRepository; - } + private readonly IRepository _personRepository; - public async Task Create(CreatePersonDto input) - { - var person = new Person { Name = input.Name, Age = input.Age }; + public PersonAppService(IRepository personRepository) + { + _personRepository = personRepository; + } - await _personRepository.InsertAsync(person); - } + public async Task CreateAsync(CreatePersonDto input) + { + var person = new Person(input.Name); - public List GetList(string nameFilter) - { - var people = _personRepository - .Where(p => p.Name.Contains(nameFilter)) - .ToList(); + await _personRepository.InsertAsync(person); + } - return people - .Select(p => new PersonDto {Id = p.Id, Name = p.Name, Age = p.Age}) - .ToList(); + public async Task GetCountAsync(string filter) + { + return await _personRepository.CountAsync(p => p.Name.Contains(filter)); + } } } ```` -> See the "*IQueryable & Async Operations*" section below to understand how you can use **async extension methods**, like `ToListAsync()` (which is strongly suggested) instead of `ToList()`. - In this example; * `PersonAppService` simply injects `IRepository` in it's constructor. -* `Create` method uses `InsertAsync` to save a newly created entity. -* `GetList` method uses the standard LINQ `Where` and `ToList` methods to filter and get a list of people from the data source. +* `CreateAsync` method uses `InsertAsync` to save the new entity. +* `GetCountAsync` method gets a filtered count of all people in the database. -> The example above uses hand-made mapping between [entities](Entities.md) and [DTO](Data-Transfer-Objects.md)s. See [object to object mapping document](Object-To-Object-Mapping.md) for an automatic way of mapping. +### Standard Repository Methods Generic Repositories provides some standard CRUD features out of the box: -* Provides `Insert` method to save a new entity. +* `GetAsync`: Returns a single entity by its `Id` or a predicate (lambda expression). + * Throws `EntityNotFoundException` if the requested entity was not found. + * Throws `InvalidOperationException` if there are multiple entities with given predicate. +* `FindAsync`: Returns a single entity by its `Id` or a predicate (lambda expression). + * Returns `null` if the requested entity was not found. + * Throws `InvalidOperationException` if there are multiple entities with given predicate. +* `InsertAsync`: Inserts a new entity to the database. +* `UpdateAsync`: Updates an existing entity in the database. +* `DeleteAsync`: Deletes the given entity from database. + * This method has an overload that takes a predicate (lambda expression) to delete multiple entities satisfies the given condition. +* `GetListAsync`: Returns the list of all entities in the database. +* `GetPagedListAsync`: Returns a limited list of entities. Gets `skipCount`, `maxResultCount` and `sorting` parameters. +* `GetCountAsync`: Gets count of all entities in the database. + +There are overloads of these methods. + * Provides `Update` and `Delete` methods to update or delete an entity by entity object or it's id. * Provides `Delete` method to delete multiple entities by a filter. -* Implements `IQueryable`, so you can use LINQ and extension methods like `FirstOrDefault`, `Where`, `OrderBy`, `ToList` and so on... -### Basic Repositories +### Querying / LINQ over the Repositories -Standard `IRepository` interface extends standard `IQueryable` and you can freely query using standard LINQ methods. However, some ORM providers or database systems may not support standard `IQueryable` interface. +Repositories provide the `GetQueryableAsync()` method that returns an `IQueryable` object. You can use this object to perform LINQ queries on the entities in the database. -ABP provides `IBasicRepository` and `IBasicRepository` interfaces to support such scenarios. You can extend these interfaces (and optionally derive from `BasicRepositoryBase`) to create custom repositories for your entities. +**Example: Use LINQ with the repositories** -Depending on `IBasicRepository` but not depending on `IRepository` has an advantage to make possible to work with all data sources even if they don't support `IQueryable`. But major vendors, like Entity Framework, NHibernate or MongoDb already support `IQueryable`. +````csharp +using System; +using System.Linq; +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; -So, working with `IRepository` is the **suggested** way for typical applications. But reusable module developers may consider `IBasicRepository` to support a wider range of data sources. +namespace Demo +{ + public class PersonAppService : ApplicationService + { + private readonly IRepository _personRepository; -### Read Only Repositories + public PersonAppService(IRepository personRepository) + { + _personRepository = personRepository; + } -There are also `IReadOnlyRepository` and `IReadOnlyBasicRepository` interfaces for who only want to depend on querying capabilities of the repositories. + public async Task> GetListAsync(string filter) + { + //Obtain the IQueryable + IQueryable queryable = await _personRepository.GetQueryableAsync(); -### Generic Repository without a Primary Key + //Create a query + var query = from person in queryable + where person.Name == filter + orderby person.Name + select person; -If your entity does not have an Id primary key (it may have a composite primary key for instance) then you cannot use the `IRepository` (or basic/readonly versions) defined above. In that case, you can inject and use `IRepository` for your entity. + //Execute the query to get list of people + var people = query.ToList(); -> `IRepository` has a few missing methods those normally works with the `Id` property of an entity. Because of the entity has no `Id` property in that case, these methods are not available. One example is the `Get` method that gets an id and returns the entity with given id. However, you can still use `IQueryable` features to query entities by standard LINQ methods. + //Convert to DTO and return to the client + return people.Select(p => new PersonDto {Name = p.Name}).ToList(); + } + } +} +```` + +You could also use the LINQ extension methods: + +````csharp +public async Task> GetListAsync(string filter) +{ + //Obtain the IQueryable + IQueryable queryable = await _personRepository.GetQueryableAsync(); + + //Execute a query + var people = queryable + .Where(p => p.Name.Contains(filter)) + .OrderBy(p => p.Name) + .ToList(); + + //Convert to DTO and return to the client + return people.Select(p => new PersonDto {Name = p.Name}).ToList(); +} +```` + +Any standard LINQ method can be used over the `IQueryable` returned from the repository. + +> This sample uses `ToList()` method, but it is **strongly suggested to use the asynchronous methods** to perform database queries, like `ToListAsync()` for this example. +> +> See the **IQueryable & Async Operations** section to learn how you can do it. + +### Bulk Operations + +There are some methods to perform bulk operations in the database; + +* `InsertManyAsync` +* `UpdateManyAsync` +* `DeleteManyAsync` + +These methods work with multiple entities and can take advantage of bulk operations if supported by the underlying database provider. + +> Optimistic concurrency control may not be possible when you use `UpdateManyAsync` and `DeleteManyAsync` methods. ### Soft / Hard Delete `DeleteAsync` method of the repository doesn't delete the entity if the entity is a **soft-delete** entity (that implements `ISoftDelete`). Soft-delete entities are marked as "deleted" in the database. Data Filter system ensures that the soft deleted entities are not retrieved from database normally. -If your entity is a soft-delete entity, you can use the `HardDeleteAsync` method to really delete the entity from database in case of you need it. +If your entity is a soft-delete entity, you can use the `HardDeleteAsync` method to physically delete the entity from database in case of you need it. + +> See the [Data Filtering](Data-Filtering.md) documentation for more about soft-delete. + +## Other Generic Repository Types + +Standard `IRepository` interface exposes the standard `IQueryable` and you can freely query using the standard LINQ methods. This is fine for most of the applications. However, some ORM providers or database systems may not support standard `IQueryable` interface. If you want to use such providers, you can't rely on the `IQueryable`. + +### Basic Repositories + +ABP provides `IBasicRepository` and `IBasicRepository` interfaces to support such scenarios. You can extend these interfaces (and optionally derive from `BasicRepositoryBase`) to create custom repositories for your entities. + +Depending on `IBasicRepository` but not depending on `IRepository` has an advantage to make possible to work with all data sources even if they don't support `IQueryable`. -See the [Data Filtering](Data-Filtering.md) documentation for more about soft-delete. +Major vendors, like Entity Framework, NHibernate or MongoDB already support `IQueryable`. So, working with `IRepository` is the **suggested** way for typical applications. But reusable module developers may consider `IBasicRepository` to support a wider range of data sources. -## Bulk Operations -You can execute bulk operations with `InsertManyAsync`, `UpdateManyAsync`, `DeleteManyAsync` methods. +### Read Only Repositories -> **WARNING:** ConcurrencyStamp can't be checked at bulk operations! +There are also `IReadOnlyRepository` and `IReadOnlyBasicRepository` interfaces for who only want to depend on querying capabilities of the repositories. + +### Generic Repository without a Primary Key + +If your entity does not have an Id primary key (it may have a composite primary key for instance) then you cannot use the `IRepository` (or basic/readonly versions) defined above. In that case, you can inject and use `IRepository` for your entity. + +> `IRepository` has a few missing methods those normally works with the `Id` property of an entity. Because of the entity has no `Id` property in that case, these methods are not available. One example is the `Get` method that gets an id and returns the entity with given id. However, you can still use `IQueryable` features to query entities by standard LINQ methods. ## Custom Repositories From ac7a2423f4178e809824047c862336f8ecf152be Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 18 Jan 2021 09:55:49 +0300 Subject: [PATCH 060/309] CmsKit - Rename TagDefinition as TagEntityTypeDefinition --- .../CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs | 2 +- .../Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs | 4 ++-- .../Volo/CmsKit/Tags/ITagDefinitionStore.cs | 4 ++-- .../src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs | 2 +- .../Volo/CmsKit/Tags/TagDefinitionDictionary.cs | 4 ++-- .../Tags/{TagDefiniton.cs => TagEntityTypeDefiniton1.cs} | 6 +++--- .../src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) rename modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/{TagDefiniton.cs => TagEntityTypeDefiniton1.cs} (83%) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs index 5edcfd8a04..f14efb332d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs @@ -18,7 +18,7 @@ namespace Volo.CmsKit.Admin CreateMap(MemberList.Source); CreateMap(MemberList.Source); - CreateMap(MemberList.Destination); + CreateMap(MemberList.Destination); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs index b080720129..b5d02fdd23 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -17,7 +17,7 @@ namespace Volo.CmsKit.Tags this.options = options.Value; } - public virtual Task GetTagDefinitionAsync([NotNull] string entityType) + public virtual Task GetTagDefinitionAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); @@ -26,7 +26,7 @@ namespace Volo.CmsKit.Tags return Task.FromResult(result); } - public virtual Task> GetTagDefinitionsAsync() + public virtual Task> GetTagDefinitionsAsync() { return Task.FromResult(options.Tags.Values.ToList()); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs index c2e12eb16b..e38b5c9e52 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs @@ -6,9 +6,9 @@ namespace Volo.CmsKit.Tags { public interface ITagDefinitionStore { - Task> GetTagDefinitionsAsync(); + Task> GetTagDefinitionsAsync(); - Task GetTagDefinitionAsync([NotNull] string entityType); + Task GetTagDefinitionAsync([NotNull] string entityType); Task IsDefinedAsync([NotNull] string entityType); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs index 23d34d6a19..4b9cef5fb8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagManager.cs @@ -28,6 +28,6 @@ namespace Volo.CmsKit.Tags Guid? tenantId = null, CancellationToken cancellationToken = default); - Task> GetTagDefinitionsAsync(CancellationToken cancellationToken = default); + Task> GetTagDefinitionsAsync(CancellationToken cancellationToken = default); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs index dbbfd29219..b809abbc8d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs @@ -4,7 +4,7 @@ using Volo.Abp.Localization; namespace Volo.CmsKit.Tags { - public class TagDefinitionDictionary : Dictionary + public class TagDefinitionDictionary : Dictionary { public void AddOrReplace( [NotNull] string entityType, @@ -14,7 +14,7 @@ namespace Volo.CmsKit.Tags [CanBeNull] string deletePolicy = null ) { - this[entityType] = new TagDefiniton(entityType, displayName, createPolicy, updatePolicy, deletePolicy); + this[entityType] = new TagEntityTypeDefiniton(entityType, displayName, createPolicy, updatePolicy, deletePolicy); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton1.cs similarity index 83% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton1.cs index 6029ab3946..1193f5e68e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefiniton.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton1.cs @@ -5,18 +5,18 @@ using Volo.CmsKit.Domain.Volo.CmsKit; namespace Volo.CmsKit.Tags { - public class TagDefiniton : PolicySpecifiedDefinition + public class TagEntityTypeDefiniton : PolicySpecifiedDefinition { public string EntityType { get; } [CanBeNull] public virtual ILocalizableString DisplayName { get; } - public TagDefiniton() + public TagEntityTypeDefiniton() { } - public TagDefiniton( + public TagEntityTypeDefiniton( [NotNull] string entityType, [CanBeNull] ILocalizableString displayName = null, [CanBeNull] string createPolicy = null, diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs index 5318336502..9c881226fa 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs @@ -83,7 +83,7 @@ namespace Volo.CmsKit.Tags return await _tagRepository.UpdateAsync(entity, cancellationToken: cancellationToken); } - public Task> GetTagDefinitionsAsync(CancellationToken cancellationToken = default) + public Task> GetTagDefinitionsAsync(CancellationToken cancellationToken = default) { return _tagDefinitionStore.GetTagDefinitionsAsync(); } From b7201acece9a837235132fcdee8fd6f4e1a47fe4 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 18 Jan 2021 10:21:27 +0300 Subject: [PATCH 061/309] refactor format method of DateParserFormatter --- .../src/lib/utils/date-parser-formatter.ts | 37 ++++++------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/utils/date-parser-formatter.ts b/npm/ng-packs/packages/theme-shared/src/lib/utils/date-parser-formatter.ts index d0814e499c..cf8565435a 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/utils/date-parser-formatter.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/utils/date-parser-formatter.ts @@ -1,15 +1,8 @@ import { ApplicationLocalizationConfigurationDto, ConfigStateService } from '@abp/ng.core'; -import { DatePipe } from '@angular/common'; -import { Injectable, Optional } from '@angular/core'; +import { formatDate } from '@angular/common'; +import { Inject, Injectable, LOCALE_ID } from '@angular/core'; import { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap'; - -function padNumber(value: number) { - if (isNumber(value)) { - return `0${value}`.slice(-2); - } else { - return ''; - } -} +import snq from 'snq'; function isNumber(value: any): boolean { return !isNaN(toInteger(value)); @@ -21,7 +14,7 @@ function toInteger(value: any): number { @Injectable() export class DateParserFormatter extends NgbDateParserFormatter { - constructor(@Optional() private datePipe: DatePipe, private configState: ConfigStateService) { + constructor(private configState: ConfigStateService, @Inject(LOCALE_ID) private locale: string) { super(); } @@ -49,21 +42,15 @@ export class DateParserFormatter extends NgbDateParserFormatter { } format(date: NgbDateStruct): string { - const { shortDatePattern } = (this.configState.getOne( + if (!date) return ''; + + const localization: ApplicationLocalizationConfigurationDto = this.configState.getOne( 'localization', - ) as ApplicationLocalizationConfigurationDto).currentCulture.dateTimeFormat; + ); - if (date && this.datePipe) { - return this.datePipe.transform( - new Date(date.year, date.month - 1, date.day), - shortDatePattern, - ); - } else { - return date - ? `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${ - isNumber(date.day) ? padNumber(date.day) : '' - }` - : ''; - } + const dateFormat = + snq(() => localization.currentCulture.dateTimeFormat.shortDatePattern) || 'yyyy-MM-dd'; + + return formatDate(new Date(date.year, date.month - 1, date.day), dateFormat, this.locale); } } From c3ba4b637a32514b5727726e2f85ad6779d1e184 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 18 Jan 2021 15:26:33 +0800 Subject: [PATCH 062/309] Save the client id for Authorization Code Grant. Resolve #7274 --- .../IdentityServerSupportedLoginModel.cs | 5 ++-- .../IdentityServerSupportedLogoutModel.cs | 23 +++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs index 3d7381d2c3..4dab1f9761 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs @@ -103,9 +103,9 @@ namespace Volo.Abp.Account.Web.Pages.Account public override async Task OnPostAsync(string action) { + var context = await Interaction.GetAuthorizationContextAsync(ReturnUrl); if (action == "Cancel") { - var context = await Interaction.GetAuthorizationContextAsync(ReturnUrl); if (context == null) { return Redirect("~/"); @@ -142,7 +142,8 @@ namespace Volo.Abp.Account.Web.Pages.Account { Identity = IdentitySecurityLogIdentityConsts.Identity, Action = result.ToIdentitySecurityLogAction(), - UserName = LoginInput.UserNameOrEmailAddress + UserName = LoginInput.UserNameOrEmailAddress, + ClientId = context?.Client?.ClientId }); if (result.RequiresTwoFactor) diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs index 26ee0d4c34..0045353b49 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs @@ -20,12 +20,6 @@ namespace Volo.Abp.Account.Web.Pages.Account public async override Task OnGetAsync() { - await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext() - { - Identity = IdentitySecurityLogIdentityConsts.Identity, - Action = IdentitySecurityLogActionConsts.Logout - }); - await SignInManager.SignOutAsync(); var logoutId = Request.Query["logoutId"].ToString(); @@ -33,11 +27,14 @@ namespace Volo.Abp.Account.Web.Pages.Account if (!string.IsNullOrEmpty(logoutId)) { var logoutContext = await Interaction.GetLogoutContextAsync(logoutId); + + await SaveSecurityLogAsync(logoutContext?.ClientId); + await SignInManager.SignOutAsync(); HttpContext.User = new ClaimsPrincipal(new ClaimsIdentity()); - LoggedOutModel vm = new LoggedOutModel() + var vm = new LoggedOutModel() { PostLogoutRedirectUri = logoutContext?.PostLogoutRedirectUri, ClientName = logoutContext?.ClientName, @@ -49,6 +46,8 @@ namespace Volo.Abp.Account.Web.Pages.Account return RedirectToPage("./LoggedOut", vm); } + await SaveSecurityLogAsync(); + if (ReturnUrl != null) { return LocalRedirect(ReturnUrl); @@ -58,5 +57,15 @@ namespace Volo.Abp.Account.Web.Pages.Account $"IdentityServerSupportedLogoutModel couldn't find postLogoutUri... Redirecting to:/Account/Login.."); return RedirectToPage("/Account/Login"); } + + protected virtual async Task SaveSecurityLogAsync(string clientId = null) + { + await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext() + { + Identity = IdentitySecurityLogIdentityConsts.Identity, + Action = IdentitySecurityLogActionConsts.Logout, + ClientId = clientId + }); + } } } From 9f7e6d9b4483ba9758cf79c7600856afe9546b17 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 18 Jan 2021 15:35:32 +0800 Subject: [PATCH 063/309] Save when CurrentUser.IsAuthenticated --- .../Account/IdentityServerSupportedLogoutModel.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs index 0045353b49..94860e80c1 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs @@ -60,12 +60,15 @@ namespace Volo.Abp.Account.Web.Pages.Account protected virtual async Task SaveSecurityLogAsync(string clientId = null) { - await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext() + if (CurrentUser.IsAuthenticated) { - Identity = IdentitySecurityLogIdentityConsts.Identity, - Action = IdentitySecurityLogActionConsts.Logout, - ClientId = clientId - }); + await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext() + { + Identity = IdentitySecurityLogIdentityConsts.Identity, + Action = IdentitySecurityLogActionConsts.Logout, + ClientId = clientId + }); + } } } } From bb630ed577e3ffc4b3f240b649852585f7e6565c Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 18 Jan 2021 11:02:51 +0300 Subject: [PATCH 064/309] CmsKit - Update content value tests --- .../Contents/ContentAdminAppService_Tests.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs index d8c5d62a61..c0abc315dc 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs @@ -36,6 +36,7 @@ namespace Volo.CmsKit.Contents var result = await _service.GetListAsync(new ContentGetListInput()); result.ShouldNotBeNull(); + result.ShouldBeOfType(); result.Items.ShouldNotBeEmpty(); result.Items.Count.ShouldBe(4); } @@ -46,6 +47,8 @@ namespace Volo.CmsKit.Contents var result = await _service.GetAsync(_data.Content_1_Id); result.ShouldNotBeNull(); + result.ShouldBeOfType(); + result.ShouldNotBeNull(result.Value); } [Fact] From 209ad7d1b41f299e0c7793b27c29c4ca0e2ba4c6 Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Mon, 18 Jan 2021 11:10:51 +0300 Subject: [PATCH 065/309] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index b16d6e2c85..8f5177c477 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 4.2.0-rc.1 + 4.2.0-rc.2 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From cc787655d1555c3cb768c87d3d9b2d98975da1d2 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 18 Jan 2021 11:11:37 +0300 Subject: [PATCH 066/309] CmsKit - Fix type mismatch at Content tests --- .../Contents/ContentAdminAppService_Tests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs index c0abc315dc..34c90cbf6e 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs @@ -36,9 +36,9 @@ namespace Volo.CmsKit.Contents var result = await _service.GetListAsync(new ContentGetListInput()); result.ShouldNotBeNull(); - result.ShouldBeOfType(); result.Items.ShouldNotBeEmpty(); result.Items.Count.ShouldBe(4); + result.Items.All(x => x.ShouldBeOfType() != null); } [Fact] @@ -47,7 +47,7 @@ namespace Volo.CmsKit.Contents var result = await _service.GetAsync(_data.Content_1_Id); result.ShouldNotBeNull(); - result.ShouldBeOfType(); + result.ShouldBeOfType(); result.ShouldNotBeNull(result.Value); } From 406c9e979079e3d58584b611dee79109e270e5a5 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 18 Jan 2021 11:16:52 +0300 Subject: [PATCH 067/309] Cli template creation: Remove aspnet-core root if blazor & no-mobile resolves https://github.com/abpframework/abp/issues/7285 --- .../Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 99625d830f..2a596b73a7 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -297,7 +297,8 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App private static void CleanupFolderHierarchy(ProjectBuildContext context, List steps) { - if (context.BuildArgs.UiFramework == UiFramework.Mvc && context.BuildArgs.MobileApp == MobileApp.None) + if ((context.BuildArgs.UiFramework == UiFramework.Mvc || context.BuildArgs.UiFramework == UiFramework.Blazor) && + context.BuildArgs.MobileApp == MobileApp.None) { steps.Add(new MoveFolderStep("/aspnet-core/", "/")); } From 0d17aa39169eadf0539e4501a03d8d4aa03dd9b2 Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Mon, 18 Jan 2021 10:44:09 +0100 Subject: [PATCH 068/309] Move CreateModal.Hide() to created/updated methods --- framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 4a4d4df722..84ab0099c5 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -365,8 +365,6 @@ namespace Volo.Abp.BlazoriseUI await GetEntitiesAsync(); await OnCreatedEntityAsync(); - - CreateModal.Hide(); } } @@ -377,6 +375,7 @@ namespace Volo.Abp.BlazoriseUI protected virtual Task OnCreatedEntityAsync() { + CreateModal.Hide(); return Task.CompletedTask; } @@ -392,8 +391,6 @@ namespace Volo.Abp.BlazoriseUI await GetEntitiesAsync(); await OnUpdatedEntityAsync(); - - EditModal.Hide(); } } @@ -404,6 +401,7 @@ namespace Volo.Abp.BlazoriseUI protected virtual Task OnUpdatedEntityAsync() { + EditModal.Hide(); return Task.CompletedTask; } From ae0852e670627b9e3c408c52797298dd4078f065 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 18 Jan 2021 13:58:49 +0300 Subject: [PATCH 069/309] CmsKit - Seperate CmsKitTagOptions --- .../Admin/Tags/EntityTagAdminAppService.cs | 4 ++-- .../Volo/CmsKit/CmsKitDomainModule.cs | 17 ++++++++++++----- .../Volo/CmsKit/CmsKitOptions.cs | 3 --- .../Volo/CmsKit/Tags/CmsKitTagOptions.cs | 11 +++++++++++ .../CmsKit/Tags/DefaultTagDefinitionStore.cs | 12 ++++++------ .../Volo/CmsKit/Tags/ITagDefinitionStore.cs | 2 +- ....cs => TagEntityTypeDefinitionDictionary.cs} | 2 +- 7 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/CmsKitTagOptions.cs rename modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/{TagDefinitionDictionary.cs => TagEntityTypeDefinitionDictionary.cs} (86%) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs index 848a2ea11e..1ef6a8bdf9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/EntityTagAdminAppService.cs @@ -23,7 +23,7 @@ namespace Volo.CmsKit.Admin.Application.Volo.CmsKit.Admin.Tags public async Task AddTagToEntityAsync(EntityTagCreateDto input) { - var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType); + var definition = await _tagDefinitionStore.GetTagEntityTypeDefinitionsAsync(input.EntityType); await CheckPolicyAsync(definition.CreatePolicy); @@ -38,7 +38,7 @@ namespace Volo.CmsKit.Admin.Application.Volo.CmsKit.Admin.Tags public async Task RemoveTagFromEntityAsync(EntityTagRemoveDto input) { - var definition = await _tagDefinitionStore.GetTagDefinitionAsync(input.EntityType); + var definition = await _tagDefinitionStore.GetTagEntityTypeDefinitionsAsync(input.EntityType); await CheckPolicyAsync(definition.DeletePolicy); diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs index 719a5bc215..faf258f923 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Domain; +using Microsoft.Extensions.Options; +using Volo.Abp.Domain; using Volo.Abp.GlobalFeatures; using Volo.Abp.Localization; using Volo.Abp.Modularity; @@ -7,6 +8,7 @@ using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Localization; using Volo.CmsKit.Pages; using Volo.CmsKit.Reactions; +using Volo.CmsKit.Tags; namespace Volo.CmsKit { @@ -34,14 +36,19 @@ namespace Volo.CmsKit options.Reactions.AddOrReplace(StandardReactions.Rocket); options.Reactions.AddOrReplace(StandardReactions.Pray); - if (GlobalFeatureManager.Instance.IsEnabled()) + }); + + + if (GlobalFeatureManager.Instance.IsEnabled()) + { + Configure(options => { if (GlobalFeatureManager.Instance.IsEnabled()) { - options.Tags.AddOrReplace(typeof(Page).Name, L("Page")); + options.EntityTypes.AddOrReplace(typeof(Page).Name, L("Page")); } - } - }); + }); + } } private static LocalizableString L(string name) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs index 20fde8704d..8075895184 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitOptions.cs @@ -8,8 +8,5 @@ namespace Volo.CmsKit { [NotNull] public ReactionDefinitionDictionary Reactions { get; } = new ReactionDefinitionDictionary(); - - [NotNull] - public TagDefinitionDictionary Tags { get; } = new TagDefinitionDictionary(); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/CmsKitTagOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/CmsKitTagOptions.cs new file mode 100644 index 0000000000..8f9b073d6b --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/CmsKitTagOptions.cs @@ -0,0 +1,11 @@ +using JetBrains.Annotations; +using Volo.CmsKit.Tags; + +namespace Volo.CmsKit.Tags +{ + public class CmsKitTagOptions + { + [NotNull] + public TagEntityTypeDefinitionDictionary EntityTypes { get; } = new TagEntityTypeDefinitionDictionary(); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs index b5d02fdd23..6860e8c95c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -10,31 +10,31 @@ namespace Volo.CmsKit.Tags { public class DefaultTagDefinitionStore : ITagDefinitionStore, ITransientDependency { - private readonly CmsKitOptions options; + private readonly CmsKitTagOptions options; - public DefaultTagDefinitionStore(IOptions options) + public DefaultTagDefinitionStore(IOptions options) { this.options = options.Value; } - public virtual Task GetTagDefinitionAsync([NotNull] string entityType) + public virtual Task GetTagEntityTypeDefinitionsAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - var result = options.Tags.GetOrDefault(entityType) ?? throw new EntityNotTaggableException(entityType); + var result = options.EntityTypes.GetOrDefault(entityType) ?? throw new EntityNotTaggableException(entityType); return Task.FromResult(result); } public virtual Task> GetTagDefinitionsAsync() { - return Task.FromResult(options.Tags.Values.ToList()); + return Task.FromResult(options.EntityTypes.Values.ToList()); } public virtual Task IsDefinedAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - return Task.FromResult(options.Tags.ContainsKey(entityType)); + return Task.FromResult(options.EntityTypes.ContainsKey(entityType)); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs index e38b5c9e52..1221e3660d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs @@ -8,7 +8,7 @@ namespace Volo.CmsKit.Tags { Task> GetTagDefinitionsAsync(); - Task GetTagDefinitionAsync([NotNull] string entityType); + Task GetTagEntityTypeDefinitionsAsync([NotNull] string entityType); Task IsDefinedAsync([NotNull] string entityType); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs similarity index 86% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs index b809abbc8d..669dbbb315 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagDefinitionDictionary.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs @@ -4,7 +4,7 @@ using Volo.Abp.Localization; namespace Volo.CmsKit.Tags { - public class TagDefinitionDictionary : Dictionary + public class TagEntityTypeDefinitionDictionary : Dictionary { public void AddOrReplace( [NotNull] string entityType, From c4665f474b94411cac47872152e5474a276a77af Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Mon, 18 Jan 2021 14:18:46 +0300 Subject: [PATCH 070/309] Update Page-Alerts.md --- docs/en/UI/Angular/Page-Alerts.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/UI/Angular/Page-Alerts.md b/docs/en/UI/Angular/Page-Alerts.md index e59d620432..a27cee4abf 100644 --- a/docs/en/UI/Angular/Page-Alerts.md +++ b/docs/en/UI/Angular/Page-Alerts.md @@ -6,7 +6,7 @@ A page alert is useful for displaying an important message to the user. The ABP You can simply import `PageAlertService` from `@abp/ng.theme.shared` and utilize it as follows: -```typescript +```js import { PageAlertService } from '@abp/ng.theme.shared'; @Component({ @@ -30,7 +30,7 @@ export class MyComponent { The method `show` accepts a single object that is type of `PageAlert` -```typescript +```js export interface PageAlert { type: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark'; message: string; @@ -47,7 +47,7 @@ export interface PageAlert { * `dismissible` (Optional): Default is `true`. If enabled, a button on the top right corner will be shown to the users so that they can dismiss the message. * `messageLocalizationParams` and `titleLocalizationParams` (Optional): If the message and/or the title is a key for localization service and contains some parameters, these fields could be used to pass those parameters. -### An example with Localization +### An example with Localization ```typescript this.service.show({ From c50572e648a0aa876af8d435a23293e0aa038065 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 18 Jan 2021 14:40:38 +0300 Subject: [PATCH 071/309] CmsKit - Update tests for CmsKitTagOptions --- .../CmsKitDataSeedContributor.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index 9adc4442cb..3dc77fe1fc 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -31,6 +31,7 @@ namespace Volo.CmsKit private readonly ITagManager _tagManager; private readonly IPageRepository _pageRepository; private readonly IOptions _options; + private readonly IOptions _tagOptions; public CmsKitDataSeedContributor( IGuidGenerator guidGenerator, @@ -44,7 +45,8 @@ namespace Volo.CmsKit ITagManager tagManager, IEntityTagManager entityTagManager, IPageRepository pageRepository, - IOptions options) + IOptions options, + IOptions tagOptions) { _guidGenerator = guidGenerator; _cmsUserRepository = cmsUserRepository; @@ -58,6 +60,7 @@ namespace Volo.CmsKit _entityTagManager = entityTagManager; _pageRepository = pageRepository; _options = options; + _tagOptions = tagOptions; } public async Task SeedAsync(DataSeedContext context) @@ -83,12 +86,12 @@ namespace Volo.CmsKit } private Task ConfigureCmsKitOptionsAsync() - { - _options.Value.Tags.AddOrReplace(_cmsKitTestData.EntityType1); - _options.Value.Tags.AddOrReplace(_cmsKitTestData.EntityType2); - _options.Value.Tags.AddOrReplace(_cmsKitTestData.Content_1_EntityType); - _options.Value.Tags.AddOrReplace(_cmsKitTestData.Content_2_EntityType); - _options.Value.Tags.AddOrReplace(_cmsKitTestData.TagDefinition_1_EntityType); + { + _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.EntityType1); + _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.EntityType2); + _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.Content_1_EntityType); + _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.Content_2_EntityType); + _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.TagDefinition_1_EntityType); return Task.CompletedTask; } From 3f9cdce94b8655d487f3cf73a95890035df1d516 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Mon, 18 Jan 2021 12:17:11 +0000 Subject: [PATCH 072/309] Improve flexibility of email validation in the ValidationHelper * ValidationHelper.EmailRegEx can now be modified to suit the users needs * Regex updated to be more inclusive - see https://html.spec.whatwg.org/#valid-e-mail-address --- .../Volo/Abp/Validation/ValidationHelper.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs index d46281d2e9..9f6cec23e5 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs @@ -4,7 +4,9 @@ namespace Volo.Abp.Validation { public class ValidationHelper { - private const string EmailRegEx = @"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"; + // Taken from W3C as an alternative to the RFC5322 specification: https://html.spec.whatwg.org/#valid-e-mail-address + // The RFC5322 regex can be found here: https://emailregex.com/ + public static string EmailRegEx { get; set; } = @"^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"; public static bool IsValidEmailAddress(string email) { @@ -13,7 +15,6 @@ namespace Volo.Abp.Validation return false; } - /*RFC 2822 (simplified)*/ return Regex.IsMatch(email, EmailRegEx, RegexOptions.Compiled | RegexOptions.IgnoreCase); } } From dc11977a9ce9653561314cf0e86d117390ec6448 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 18 Jan 2021 20:29:33 +0800 Subject: [PATCH 073/309] Handle empty array in AddQueryStringParameter. Resolve #7298 --- .../Http/Client/DynamicProxying/UrlBuilder.cs | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs index e4b82b21e1..5bee246bd0 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs @@ -8,7 +8,6 @@ using JetBrains.Annotations; using Volo.Abp.Http.Modeling; using Volo.Abp.Http.ProxyScripting.Generators; using Volo.Abp.Localization; -using Volo.Abp.Reflection; namespace Volo.Abp.Http.Client.DynamicProxying { @@ -82,9 +81,10 @@ namespace Volo.Abp.Http.Client.DynamicProxying continue; } - AddQueryStringParameter(urlBuilder, isFirstParam, queryStringParameter.Name, value); - - isFirstParam = false; + if (AddQueryStringParameter(urlBuilder, isFirstParam, queryStringParameter.Name, value)) + { + isFirstParam = false; + } } if (apiVersion.ShouldSendInQueryString()) @@ -93,28 +93,37 @@ namespace Volo.Abp.Http.Client.DynamicProxying } } - private static void AddQueryStringParameter( + private static bool AddQueryStringParameter( StringBuilder urlBuilder, bool isFirstParam, string name, [NotNull] object value) { - urlBuilder.Append(isFirstParam ? "?" : "&"); - if (value.GetType().IsArray || (value.GetType().IsGenericType && value is IEnumerable)) { var index = 0; foreach (var item in (IEnumerable) value) { + if (index == 0) + { + urlBuilder.Append(isFirstParam ? "?" : "&"); + } urlBuilder.Append(name + $"[{index++}]=" + System.Net.WebUtility.UrlEncode(ConvertValueToString(item)) + "&"); } - //remove & at the end of the urlBuilder. - urlBuilder.Remove(urlBuilder.Length - 1, 1); - } - else - { - urlBuilder.Append(name + "=" + System.Net.WebUtility.UrlEncode(ConvertValueToString(value))); + + if (index > 0) + { + //remove & at the end of the urlBuilder. + urlBuilder.Remove(urlBuilder.Length - 1, 1); + return true; + } + + return false; } + + urlBuilder.Append(isFirstParam ? "?" : "&"); + urlBuilder.Append(name + "=" + System.Net.WebUtility.UrlEncode(ConvertValueToString(value))); + return true; } private static string ConvertValueToString([NotNull] object value) From a43cde673e4d40614ed62af34dedfc121a5ab0f2 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 18 Jan 2021 20:41:42 +0800 Subject: [PATCH 074/309] Add unit test. --- .../Abp/Http/DynamicProxying/RegularTestController.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestController.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestController.cs index da61333d4e..e18c2f8f4a 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestController.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestController.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Globalization; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; @@ -140,5 +141,13 @@ namespace Volo.Abp.Http.DynamicProxying [FromQuery] public DateTime FirstReleaseDate { get; set; } + + [FromQuery] + public List Colors { get; set; } + + public Car() + { + Colors = new List(); + } } } From 89344d66cd7a116ae70486880cbe63232f9a3ddc Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Mon, 18 Jan 2021 13:01:04 +0000 Subject: [PATCH 075/309] Update tests for ValidationHelper --- .../Abp/Validation/ApplicationService_Validation_Tests.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs b/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs index de9067e2f7..cd602c07af 100644 --- a/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs +++ b/framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs @@ -180,15 +180,19 @@ namespace Volo.Abp.Validation { //Valid ValidationHelper.IsValidEmailAddress("john.doe@domain.com").ShouldBe(true); + ValidationHelper.IsValidEmailAddress("john-doe1@domain.co").ShouldBe(true); ValidationHelper.IsValidEmailAddress("ip@1.2.3.123").ShouldBe(true); ValidationHelper.IsValidEmailAddress("pharaoh@egyptian.museum").ShouldBe(true); ValidationHelper.IsValidEmailAddress("john.doe+regexbuddy@gmail.com").ShouldBe(true); ValidationHelper.IsValidEmailAddress("Mike.O'Dell@ireland.com").ShouldBe(true); + ValidationHelper.IsValidEmailAddress("admin@localhost").ShouldBe(true); + ValidationHelper.IsValidEmailAddress("j@h.c").ShouldBe(true); //Invalid - ValidationHelper.IsValidEmailAddress("1024x768@60Hz").ShouldBe(false); ValidationHelper.IsValidEmailAddress("not.a.valid.email").ShouldBe(false); ValidationHelper.IsValidEmailAddress("john@aol...com").ShouldBe(false); + ValidationHelper.IsValidEmailAddress("john@aol@domain.com").ShouldBe(false); + ValidationHelper.IsValidEmailAddress("jack@domain.").ShouldBe(false); } [DependsOn(typeof(AbpAutofacModule))] From 51ecf017ba923040094080e3aff3447bbd49ecff Mon Sep 17 00:00:00 2001 From: erolarkat Date: Mon, 18 Jan 2021 16:21:56 +0300 Subject: [PATCH 076/309] npm packages 4.2.0-rc.2 --- .../package.json | 2 +- .../yarn.lock | 224 ++++++------ .../package.json | 4 +- .../yarn.lock | 260 +++++++------- .../app/Volo.BloggingTestApp/package.json | 4 +- .../app/Volo.BloggingTestApp/yarn.lock | 332 +++++++++--------- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 238 ++++++------- modules/cms-kit/angular/package.json | 8 +- .../angular/projects/cms-kit/package.json | 4 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 238 ++++++------- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 238 ++++++------- .../host/Volo.CmsKit.Web.Unified/package.json | 4 +- .../host/Volo.CmsKit.Web.Unified/yarn.lock | 258 +++++++------- modules/docs/app/VoloDocs.Web/package.json | 4 +- modules/docs/app/VoloDocs.Web/yarn.lock | 298 ++++++++-------- npm/lerna.json | 2 +- npm/ng-packs/lerna.version.json | 2 +- npm/ng-packs/package.json | 20 +- npm/ng-packs/packages/components/package.json | 4 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/identity/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 4 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 4 +- .../packages/theme-shared/package.json | 4 +- npm/ng-packs/yarn.lock | 106 +++--- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 30 +- npm/packs/aspnetcore.mvc.ui/package-lock.json | 2 +- npm/packs/aspnetcore.mvc.ui/package.json | 2 +- npm/packs/blogging/package.json | 10 +- npm/packs/bootstrap-datepicker/package.json | 2 +- npm/packs/bootstrap/package.json | 4 +- npm/packs/chart.js/package.json | 2 +- npm/packs/clipboard/package.json | 4 +- npm/packs/cms-kit/package.json | 4 +- npm/packs/codemirror/package.json | 4 +- npm/packs/core/package.json | 4 +- npm/packs/cropperjs/package.json | 4 +- npm/packs/datatables.net-bs4/package.json | 4 +- npm/packs/datatables.net/package.json | 4 +- npm/packs/docs/package.json | 12 +- npm/packs/flag-icon-css/package.json | 2 +- npm/packs/font-awesome/package.json | 4 +- npm/packs/highlight.js/package.json | 4 +- npm/packs/jquery-form/package.json | 4 +- .../package.json | 4 +- npm/packs/jquery-validation/package.json | 4 +- npm/packs/jquery/package.json | 4 +- npm/packs/jstree/package.json | 4 +- npm/packs/lodash/package.json | 4 +- npm/packs/luxon/package.json | 4 +- .../package.json | 4 +- npm/packs/markdown-it/package.json | 4 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/star-rating-svg/package.json | 4 +- npm/packs/sweetalert/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 10 +- npm/packs/uppy/package.json | 4 +- npm/packs/utils/package.json | 2 +- npm/packs/vee-validate/package.json | 4 +- npm/packs/virtual-file-explorer/package.json | 6 +- npm/packs/vue/package.json | 2 +- templates/app/angular/package.json | 16 +- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web/yarn.lock | 238 ++++++------- templates/module/angular/package.json | 16 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- .../package.json | 2 +- .../yarn.lock | 238 ++++++------- 93 files changed, 2111 insertions(+), 2111 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 062385c1ba..9812ddc326 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.0-rc.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.0-rc.2", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index e678a40f48..2a08d4af29 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.shared@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -36,145 +36,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 793476df47..a87af271a2 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", - "@abp/prismjs": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", + "@abp/prismjs": "^4.2.0-rc.2" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index a02a9ecf62..1c363e7ca2 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,162 +43,162 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.1.tgz#c98b9639d34ece6249929a958d22f2c2a8997979" - integrity sha512-/mIRwYlwx6oJGWbuhQZ7e0otKi98yzzDjJtNVi1IDimtn9EbfW2aXQ9U7QKX8tZAag9Yran8NYg1KaaghpYSxQ== +"@abp/clipboard@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.2.tgz#0cda5f6f3624e68e1ec7290517364d02f2b60e42" + integrity sha512-wF/d8Xuq+ORUkiWgDorM7rxueiygtELaZKlRDYzmQRnwJN4vS1q/4/UtPaLSlcGhHxWuxu2XSWQtzcphfBjFWA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" clipboard "^2.0.6" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.1.tgz#4a091790900b23eea2390b016ae20b7fc3c57331" - integrity sha512-dYvcCJ9loOdgnMED0wid7zHK4wQu+3W+7p0nF/+yregZXQt87n8H7nZvAkxiq7PUSkgeJ+8kyutXfddY/Opgsw== +"@abp/prismjs@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.2.tgz#6fe8f0063f4d674ddf309725acf65225ee3b1b1e" + integrity sha512-pvqGp5FmcDPVKBsPsPbJsbdLRK1i9RJGawYZUSwzyNOdjckf+jWviyFCN/xwt8gx5eHB2eY/VO957yX0y0ti2A== dependencies: - "@abp/clipboard" "~4.2.0-rc.1" - "@abp/core" "~4.2.0-rc.1" + "@abp/clipboard" "~4.2.0-rc.2" + "@abp/core" "~4.2.0-rc.2" prismjs "^1.20.0" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 12d1b92f10..1a97b62da3 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", - "@abp/blogging": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", + "@abp/blogging": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index c28f607b01..6f7c1a81f7 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,214 +43,214 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/blogging@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.2.0-rc.1.tgz#433c8baea0ad489796e04b96dff9e55959e82d71" - integrity sha512-codkbZrBX7GtW5owjv58gWJIY3HeKAiTJl5pnPpvioxIDa/+Oto9W1hIlcFTgqWzC4QJd43RjF0rPb3cYGHtWw== +"@abp/blogging@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.2.0-rc.2.tgz#ba757ce0dc244dad0e5a807b3d4540320cfa79c4" + integrity sha512-iWksm+5YJDryVdh1VZwnBaRy6fsJzeZBdeM3fCFQIYaKHF6orYfVUeLXuLXFVjDfuV8alhlo7rI5ANG6dsI0bw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - "@abp/owl.carousel" "~4.2.0-rc.1" - "@abp/prismjs" "~4.2.0-rc.1" - "@abp/tui-editor" "~4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + "@abp/owl.carousel" "~4.2.0-rc.2" + "@abp/prismjs" "~4.2.0-rc.2" + "@abp/tui-editor" "~4.2.0-rc.2" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.1.tgz#c98b9639d34ece6249929a958d22f2c2a8997979" - integrity sha512-/mIRwYlwx6oJGWbuhQZ7e0otKi98yzzDjJtNVi1IDimtn9EbfW2aXQ9U7QKX8tZAag9Yran8NYg1KaaghpYSxQ== +"@abp/clipboard@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.2.tgz#0cda5f6f3624e68e1ec7290517364d02f2b60e42" + integrity sha512-wF/d8Xuq+ORUkiWgDorM7rxueiygtELaZKlRDYzmQRnwJN4vS1q/4/UtPaLSlcGhHxWuxu2XSWQtzcphfBjFWA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" clipboard "^2.0.6" -"@abp/codemirror@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.2.0-rc.1.tgz#e6af9e93dde6b13854e73031f6c626b83d405eee" - integrity sha512-Sqzb4IJ+8B48O5hoFhdhDFzT7AJ5+6AgRfwJKH2kFm0c3PrYzPvr7gGVmitaI7Rb8oN4ROJzRIZDZ90YPMZTSA== +"@abp/codemirror@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.2.0-rc.2.tgz#70086f33b73c75a4e0e8e5552b812b1e466d4a3f" + integrity sha512-FM3lCG6e3Xxy9AyfVbOvVBysH4rnIYyG/IOHxqW3h6Twz2pWi+s5vA4dXnbb/+ODeFwD72+eJ5F6yRKXWamrmA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" codemirror "^5.54.0" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.2.0-rc.1.tgz#d0462aa10c8a8afaf256f4e15f163c15d38ade14" - integrity sha512-ZZmGrpX7D9/8kbnBDkEvyp1XPEMYZBMiUyK1an/NUWMdBYlMxda675ZD6xAacI3UAKmwPslEOlFA/dpfbpYXVA== +"@abp/highlight.js@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.2.0-rc.2.tgz#c7e99394868863265b20328c2189d14d0630501d" + integrity sha512-bBjAPSHRGHz7xhtpC4oy3L/QV6mJuHx3LRxyd5wwhuyWsuv9qzo4GoHQsgR6gK9ANI9LGbVp+91vFaXjsNGj2A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.2.0-rc.1.tgz#6abbe865ada85b600312a93c2bdd520624575562" - integrity sha512-MP+mT/IM8ZHl42Cne2dzqaHfprLGXj79NbsCzgA3RjrhKDosSMDBEpfleuHI8m8zkYyhno+VKBzeqjm+3rQomA== +"@abp/markdown-it@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.2.0-rc.2.tgz#b3b983e2b0a4f6ff99223b2cd7982144c1683226" + integrity sha512-jiBUx6bzbBfjDry6kEdZsKYylkixzPHeNuJ8AsMsF1FqJ6LIgsuWeRbT+bToHd25AZ1ZxTnqYM5efKXia0N4/w== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" markdown-it "^11.0.0" -"@abp/owl.carousel@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.2.0-rc.1.tgz#b5ec191d4bd8f861edf21fd5a4bf85c8c76b37d3" - integrity sha512-a8auKT+pGwNQydEgx6OwBHfzmPBi4cKAXDvIHtWEexQXPa+a9wuBYjHc0Ba0x+0pt/vzm8lq2QvUW9Qa9S9ivg== +"@abp/owl.carousel@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.2.0-rc.2.tgz#c5cdf1f53e539b891f1fe265091570e71bdf83c0" + integrity sha512-hl8XtVB0II/piGeXLS0e50oKYWT8YDw5QsL9/DnvJnneigrFoAFnVR0siavgr+C6jY3XqQR8aCpxByi82PvUDQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" owl.carousel "^2.3.4" -"@abp/prismjs@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.1.tgz#4a091790900b23eea2390b016ae20b7fc3c57331" - integrity sha512-dYvcCJ9loOdgnMED0wid7zHK4wQu+3W+7p0nF/+yregZXQt87n8H7nZvAkxiq7PUSkgeJ+8kyutXfddY/Opgsw== +"@abp/prismjs@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.2.tgz#6fe8f0063f4d674ddf309725acf65225ee3b1b1e" + integrity sha512-pvqGp5FmcDPVKBsPsPbJsbdLRK1i9RJGawYZUSwzyNOdjckf+jWviyFCN/xwt8gx5eHB2eY/VO957yX0y0ti2A== dependencies: - "@abp/clipboard" "~4.2.0-rc.1" - "@abp/core" "~4.2.0-rc.1" + "@abp/clipboard" "~4.2.0-rc.2" + "@abp/core" "~4.2.0-rc.2" prismjs "^1.20.0" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/tui-editor@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.2.0-rc.1.tgz#1d6a482566ee8a826e6ea57622b4606ea722f6cc" - integrity sha512-UAMkXa10tM03smyhaYpF00Xvw9JVRyRM2sgkZmpThlFwCWJVPG/lRAptIxnJK05cuo1DfBcYdonvlaAR9XBhEg== +"@abp/tui-editor@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.2.0-rc.2.tgz#25e97dd47ccbd8a22ac47a9d46fd1d0f9a2f762a" + integrity sha512-7giF6IFxYOPfoDPJupEXeFKSzf7iB14RUIA6h7+8AXw7OfIeobpdZq3qCpRRgS4UiP1eemaegeT6s42maL498Q== dependencies: - "@abp/codemirror" "~4.2.0-rc.1" - "@abp/highlight.js" "~4.2.0-rc.1" - "@abp/jquery" "~4.2.0-rc.1" - "@abp/markdown-it" "~4.2.0-rc.1" + "@abp/codemirror" "~4.2.0-rc.2" + "@abp/highlight.js" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0-rc.2" + "@abp/markdown-it" "~4.2.0-rc.2" tui-editor "^1.4.10" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index bcab1c3adc..9fd2034ecb 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 40d91d6a9f..8edfb8fa10 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 01fc520af3..f0c70ee363 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -16,10 +16,10 @@ "private": true, "dependencies": { "@abp/ng.account": "~3.3.2", - "@abp/ng.identity": "~4.2.0-rc.1", - "@abp/ng.setting-management": "~4.2.0-rc.1", - "@abp/ng.tenant-management": "~4.2.0-rc.1", - "@abp/ng.theme.basic": "~4.2.0-rc.1", + "@abp/ng.identity": "~4.2.0-rc.2", + "@abp/ng.setting-management": "~4.2.0-rc.2", + "@abp/ng.tenant-management": "~4.2.0-rc.2", + "@abp/ng.theme.basic": "~4.2.0-rc.2", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 177d9513b2..a8e4549b0a 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.2.0-rc.1", - "@abp/ng.theme.shared": ">=4.2.0-rc.1" + "@abp/ng.core": ">=4.2.0-rc.2", + "@abp/ng.theme.shared": ">=4.2.0-rc.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index c3565d00d9..214c743fe8 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 5f2ba264fd..0118c5f1a3 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 7ee2fbd745..807eaccef0 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 67e34beb12..0aff599aef 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 32fdf8dc7e..bbb4ac8f0d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", - "@abp/cms-kit": "4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", + "@abp/cms-kit": "4.2.0-rc.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 406920507a..9a99b12cc0 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,160 +43,160 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/cms-kit@4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.0-rc.1.tgz#cacb8958a97d8d591960cecfc9074e0797ec522d" - integrity sha512-230HXRAQKWldq5h4f4kT0Ei9VRQloKBVmCtQNyFNttXU/eIf5ggsJEpbn7j5rByypInZGqUO1elfCVetmK64Qw== +"@abp/cms-kit@4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.0-rc.2.tgz#0acd23315d4fe51b594739a11f9f28df25f53355" + integrity sha512-f1sCyqfdz91IGRvSKaFtAENfA7+spP2KwsmySMtgD4skj+9U2k28rluodI0YamxsplM+eaWCeG3h6Y84UJSk2w== dependencies: - "@abp/star-rating-svg" "~4.2.0-rc.1" + "@abp/star-rating-svg" "~4.2.0-rc.2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/star-rating-svg@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.0-rc.1.tgz#8a1c28a1dc4e20f05ba6199062563e9a18ac9312" - integrity sha512-vOZcK3c+92VTB6tsSPyi6+qsiN3Ke2ybqWAKCLOK7OyQ0n4HKn2FMhdsoWhI52ACSgJkxVkXEz9ULHqi7a18AQ== +"@abp/star-rating-svg@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.0-rc.2.tgz#8060bf0c8b17858562c9346cc7413c6f0b219020" + integrity sha512-M/39KVFLeJGvfwdMiVw+qCc5HNixyHEWNjX7Dv0Coc7Av1aGWsFvEN3njnnKzMpSXAS+s3yQlMyXfTP+7YBBug== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" star-rating-svg "^3.5.0" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 1022e9f102..acf4b1cdde 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1", - "@abp/docs": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", + "@abp/docs": "^4.2.0-rc.2" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index fc67a247e1..cac074bf26 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.2.0-rc.1.tgz#eb53fdef1edf0c981b6e3b107a27a16473553e95" - integrity sha512-jOtUbkqNh5uGLnldiwFxlmITk8vjsSE8d1wfU042fbwRz8HgvIrrpFUBCPM23QFulUpnLxP9gmSFoTtKEpHtHA== +"@abp/anchor-js@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.2.0-rc.2.tgz#3b5e8150176173184ec4b83fada16bdb4ffe31fa" + integrity sha512-5H2N0ubkA2VHr6FyvhLiFjC30hP5A/hTKksdConGKy9XaNuEd5Z5sy2e04be7P9qzP89QOpjHCHd4u9Sl3lBfA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -51,181 +51,181 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.1.tgz#c98b9639d34ece6249929a958d22f2c2a8997979" - integrity sha512-/mIRwYlwx6oJGWbuhQZ7e0otKi98yzzDjJtNVi1IDimtn9EbfW2aXQ9U7QKX8tZAag9Yran8NYg1KaaghpYSxQ== +"@abp/clipboard@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.2.tgz#0cda5f6f3624e68e1ec7290517364d02f2b60e42" + integrity sha512-wF/d8Xuq+ORUkiWgDorM7rxueiygtELaZKlRDYzmQRnwJN4vS1q/4/UtPaLSlcGhHxWuxu2XSWQtzcphfBjFWA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" clipboard "^2.0.6" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/docs@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.2.0-rc.1.tgz#ac01ff0f16e61d87e5846c97787b3ce5128da239" - integrity sha512-FFuQ+W6SeTNA17ev1Nelre70Hj6tsjaakFjYbSRHZzXr48FlIhySFMiAqi7zuUEfAdcenAuyDVDcmbd8k0dXjQ== +"@abp/docs@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.2.0-rc.2.tgz#b845fb676ba3faa968daf73fbd810638e7ff8c3d" + integrity sha512-/UJ4JnQbrWmPLk8VeHmynEI6r2pU9aU/x8IRWoSzJq6Q1fRU0A2Ap7in2VQPAIbCWgv8tGzA4F0B2xSj0oljCA== dependencies: - "@abp/anchor-js" "~4.2.0-rc.1" - "@abp/clipboard" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/popper.js" "~4.2.0-rc.1" - "@abp/prismjs" "~4.2.0-rc.1" + "@abp/anchor-js" "~4.2.0-rc.2" + "@abp/clipboard" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/popper.js" "~4.2.0-rc.2" + "@abp/prismjs" "~4.2.0-rc.2" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.2.0-rc.1.tgz#c68db59d180f13a345e76b7ae6553526dadd5d1c" - integrity sha512-kst3Z9b6MB6RdCDhb3abC84A/87Gd3LWqOiDz/X2WhY+7Toan6k4VvcuDoDSwMQA15nKEM/Ogz5A9kRObzp+2Q== +"@abp/popper.js@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.2.0-rc.2.tgz#9b6ef8183a3e94fb89d51cc60ac25ff38532642f" + integrity sha512-t4CO8SfOG1vTpA2ZjAGpQ0f7BpGrPBhWHmP3XZmiEciDfqiOugWqSrCcoNSZ+6NMaizIeJlunU/SkV8VZs/HtA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" popper.js "^1.16.0" -"@abp/prismjs@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.1.tgz#4a091790900b23eea2390b016ae20b7fc3c57331" - integrity sha512-dYvcCJ9loOdgnMED0wid7zHK4wQu+3W+7p0nF/+yregZXQt87n8H7nZvAkxiq7PUSkgeJ+8kyutXfddY/Opgsw== +"@abp/prismjs@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.2.tgz#6fe8f0063f4d674ddf309725acf65225ee3b1b1e" + integrity sha512-pvqGp5FmcDPVKBsPsPbJsbdLRK1i9RJGawYZUSwzyNOdjckf+jWviyFCN/xwt8gx5eHB2eY/VO957yX0y0ti2A== dependencies: - "@abp/clipboard" "~4.2.0-rc.1" - "@abp/core" "~4.2.0-rc.1" + "@abp/clipboard" "~4.2.0-rc.2" + "@abp/core" "~4.2.0-rc.2" prismjs "^1.20.0" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/npm/lerna.json b/npm/lerna.json index 0a2f6d2a83..6d29e74c13 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index c171482772..e1faf538dc 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index c3a45697f7..560d4d2937 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -26,16 +26,16 @@ "postinstall": "npm run compile:ivy" }, "devDependencies": { - "@abp/ng.core": "~4.2.0-rc.1", - "@abp/ng.feature-management": "~4.2.0-rc.1", - "@abp/ng.identity": "~4.2.0-rc.1", - "@abp/ng.permission-management": "~4.2.0-rc.1", - "@abp/ng.schematics": "~4.2.0-rc.1", - "@abp/ng.setting-management": "~4.2.0-rc.1", - "@abp/ng.tenant-management": "~4.2.0-rc.1", - "@abp/ng.theme.basic": "~4.2.0-rc.1", - "@abp/ng.theme.shared": "~4.2.0-rc.1", - "@abp/utils": "^4.2.0-rc.1", + "@abp/ng.core": "~4.2.0-rc.2", + "@abp/ng.feature-management": "~4.2.0-rc.2", + "@abp/ng.identity": "~4.2.0-rc.2", + "@abp/ng.permission-management": "~4.2.0-rc.2", + "@abp/ng.schematics": "~4.2.0-rc.2", + "@abp/ng.setting-management": "~4.2.0-rc.2", + "@abp/ng.tenant-management": "~4.2.0-rc.2", + "@abp/ng.theme.basic": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/utils": "^4.2.0-rc.2", "@angular-builders/jest": "^10.0.0", "@angular-devkit/build-angular": "~0.1100.0", "@angular-devkit/build-ng-packagr": "~0.1001.2", diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index d505ac53f7..a7a67e9465 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.components", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=4.2.0-rc.1", + "@abp/ng.core": ">=4.2.0-rc.2", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 990952e6d0..3a66bc87ca 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^4.2.0-rc.1", + "@abp/utils": "^4.2.0-rc.2", "@angular/localize": "~10.0.10", "@ngxs/store": "^3.7.0", "angular-oauth2-oidc": "^10.0.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 4aeec75f18..e320859808 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index b18f726f7a..ef4c78038b 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~4.2.0-rc.1", - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.permission-management": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index a5fc280295..b1cc0d8862 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 1ee4a53af4..9edc3b5dfc 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 7ae11bc32f..8c596f3097 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.setting-management", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index dd5c537cba..14ea516dc0 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~4.2.0-rc.1", - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.feature-management": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index ebff735120..b477b37837 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.basic", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index dd60bcb3ea..5e0979ac13 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~4.2.0-rc.1", + "@abp/ng.core": "~4.2.0-rc.2", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.13", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index a42903acdd..94635e72ca 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@abp/ng.core@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.1.1.tgz#9ef78d157515356eb284ff3f45bf5922a2bac199" - integrity sha512-H1L3YxDvI0N4bQ4NtYo0x2K8Mfuhamh940XvtcC14pet4+aptqycfUrKHsKulGvDPZC60gf/E7JjZnQHw0rx+w== +"@abp/ng.core@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.1.tgz#14bb772ea184153c5cb3fe0da538ff921892330a" + integrity sha512-2qyoGaU+eKwULenCG3sEhlztxA1vhECCs1gkGzsxIpZquFQCSdpRGAZNM4EUbLpBASXAYU/CGDWBgqYIIK/8Kw== dependencies: - "@abp/utils" "^4.1.0" + "@abp/utils" "^4.1.1" "@angular/localize" "~10.0.10" "@ngxs/store" "^3.7.0" angular-oauth2-oidc "^10.0.0" @@ -17,35 +17,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.1.1.tgz#94944d88489c1a9414653179504d59d078b5644a" - integrity sha512-957QGxJJ16URxOkJ/k88cCh8fmX1pXNgdfpmRqeTeac1GIFjs05WDxjfIPIdE9wX5iAI93p8LWLy61+xba6qmQ== +"@abp/ng.feature-management@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.1.tgz#08f85b70ea4d57e92a1e011e88cf1be8e6592c36" + integrity sha512-exZyx28Njt7x+70n1Okk8CGCAQf479TGWziMnZ6HaOoDTFxcDnk0jT62aO3AALMFr2cUmGUxxyWFo4Tan2CwDA== dependencies: - "@abp/ng.theme.shared" "~4.1.1" + "@abp/ng.theme.shared" "~4.2.0-rc.1" tslib "^2.0.0" -"@abp/ng.identity@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.1.1.tgz#37da658648dd261d4b707864078cbb995239858f" - integrity sha512-0lkkUjOFSMEa8Mlk/yiqzejuNJ+mlyRiBWgpHbasWCj7eOP0KvSpF9VNtOefwflsI5kg2W5rTfjb/QIsHqmHDw== +"@abp/ng.identity@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.1.tgz#9fdbafb53918ff36e64e1fbb685098b40e55acfd" + integrity sha512-/ftw1z6mEnmg//lWUns8r7GLVFBbRKvZX9sJ9gProwR/E6fnRuifv/q0p4Nsq+eOgudnQb/RlVg1JyTIDBt6YA== dependencies: - "@abp/ng.permission-management" "~4.1.1" - "@abp/ng.theme.shared" "~4.1.1" + "@abp/ng.permission-management" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.1" tslib "^2.0.0" -"@abp/ng.permission-management@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.1.1.tgz#f96d327eb2163e30d3dc91ee985c78a7d57b63c3" - integrity sha512-e89j6Z5sje3/gY8vw9PTPlDne1XiJqTu3EuX+K14TpfDfgIzo+xEhqjygkAEsg+PW/bXJyfAMPeR0Ygn6MobLA== +"@abp/ng.permission-management@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.1.tgz#f4aaf505056d0238681ea32b6c7079a019120b39" + integrity sha512-9w3FZ4ztvoXRAT9FdhIYUnpXmvagDDPk9X9xKNT8Md5TX4ivynSs3pBHC2baqhR1Xc2FHHEbfVjN+FFMmDQRlg== dependencies: - "@abp/ng.theme.shared" "~4.1.1" + "@abp/ng.theme.shared" "~4.2.0-rc.1" tslib "^2.0.0" -"@abp/ng.schematics@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.1.1.tgz#2450108711e93efb480cee410a6312db85a3fde0" - integrity sha512-9GGAKXSa6lCrRLwtul70MrlBt60Dijpz2QtH8W4to0CgQeLsDMSODNNHwfAvFk6Utk7hSLdFTVwetvujqBVjsA== +"@abp/ng.schematics@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.1.tgz#b62dcc2bd65e05810b46d40e46c4b871ed729196" + integrity sha512-2vcMuyxVziZDaFQbz1/DhaIErv6yVJMZILVOzbk1zCgIFtvoXIY/+XkHfChzUAeFkEe/rKGdZsXIG6LHsg7RuQ== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -53,37 +53,37 @@ jsonc-parser "^2.3.0" typescript "~3.9.2" -"@abp/ng.setting-management@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.1.1.tgz#87ecc6cd0dec1bbc73ddddd712f34bcd05ee9ae0" - integrity sha512-ETMI66eviUyObT4O7yl+dA0X3AlnL9iXITpPHssLfEVgAJh1LbAOmTJDGyDgLPAOQnfZ3+CYGvDWfEmRNuqa0w== +"@abp/ng.setting-management@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.1.tgz#74f9577193554997a47fef8c0f4e4d4b3228f6dc" + integrity sha512-T18tkvyIsER22fGWh0KRmxobhuFxuxbDB8vroV0k0/Zd4ULDrTuSoKXgWa/TiHe7RuO/tWKv0EEf/T4xaiWBGw== dependencies: - "@abp/ng.theme.shared" "~4.1.1" + "@abp/ng.theme.shared" "~4.2.0-rc.1" tslib "^2.0.0" -"@abp/ng.tenant-management@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.1.1.tgz#a3ff09dbc00e5bdb790dfb1758ee9767810ec6bb" - integrity sha512-cmMxOty6/0d+dnTnp+/bANe2Bpv/Fb+04atu61IkwiOUtUvQGMLE7BAhTv/xjVAPrpvwKAIuqM0+OeWG1yOcKQ== +"@abp/ng.tenant-management@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.1.tgz#94b8a0ff7987b8e7602be310b3f91742e1d6b0e8" + integrity sha512-SO3cxFCY6p0i/BywlHoAFeMEtJ0w9Q61jqW/1T8jQR8HDXNDeMeHdiUsAzjv9ILggy7OPFmGZQ8pcniwK3IQpQ== dependencies: - "@abp/ng.feature-management" "~4.1.1" - "@abp/ng.theme.shared" "~4.1.1" + "@abp/ng.feature-management" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.1" tslib "^2.0.0" -"@abp/ng.theme.basic@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.1.1.tgz#c78fe49a029674fb474e65eb0b03c55519acd2c2" - integrity sha512-/CnNp3dtDxyWBTWAlEzscYmwth0BXAz7bNxkREZoLR/7fSYetExk0ncIJnxelPMV9jZK9WwULDssJpfh0g5lSw== +"@abp/ng.theme.basic@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.1.tgz#dbc1a47e7d311fc7ca5d212d6736fde49f4586f2" + integrity sha512-3fMeIbz4cotGqGty9QWyw4vrhkYJgLqgfunw+F+YxuLaXFq2JljlfZvzwDCw7EZ53N5atHT/um5RVAveWvKKmQ== dependencies: - "@abp/ng.theme.shared" "~4.1.1" + "@abp/ng.theme.shared" "~4.2.0-rc.1" tslib "^2.0.0" -"@abp/ng.theme.shared@~4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.1.1.tgz#b5952a0c3e48833147515dc7484e986d7ae78df8" - integrity sha512-sU6BDcUeRMXsPn9J6u13dekJSc6Yi40Vl5JrdPPQT8T5f3oCXT3IbnC+gC2fD53WRXKIn1gPPvw4kT9N5mSeJQ== +"@abp/ng.theme.shared@~4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.1.tgz#e3edecefd2a332740e80a7f6c6dbfa06f7580c89" + integrity sha512-/EOHL9WmtxJ6xgzUbNjc50p9oStycmpsz9Z/RZTffaUXUnVSDgqeArvBuPTGTuMJVipnbVfpYjC98eOixj5Ong== dependencies: - "@abp/ng.core" "~4.1.1" + "@abp/ng.core" "~4.2.0-rc.1" "@fortawesome/fontawesome-free" "^5.14.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.13" @@ -92,13 +92,6 @@ chart.js "^2.9.3" tslib "^2.0.0" -"@abp/utils@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.0.tgz#1f5d8b4dc8a234c15d87869436485fd737f18b50" - integrity sha512-fksnKF1bsOab5AVe8qBs2HZmcRVjrnsMwXs23xaqSRdpWXpPgsLRuKCJHlD0usREyerDGPkpY5opUnXWggHvCg== - dependencies: - just-compare "^1.3.0" - "@abp/utils@^4.1.1": version "4.1.1" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" @@ -106,6 +99,13 @@ dependencies: just-compare "^1.3.0" +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" + integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== + dependencies: + just-compare "^1.3.0" + "@angular-builders/jest@^10.0.0": version "10.0.1" resolved "https://registry.yarnpkg.com/@angular-builders/jest/-/jest-10.0.1.tgz#a1a6fb5d11b5d54c051bdaa2012b5f046371560c" diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 0680d6a098..52d5d9bd1c 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 1524296fc4..9687ca35bd 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index b78e252ed8..5828177bab 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,24 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~4.2.0-rc.1", - "@abp/bootstrap": "~4.2.0-rc.1", - "@abp/bootstrap-datepicker": "~4.2.0-rc.1", - "@abp/datatables.net-bs4": "~4.2.0-rc.1", - "@abp/font-awesome": "~4.2.0-rc.1", - "@abp/jquery-form": "~4.2.0-rc.1", - "@abp/jquery-validation-unobtrusive": "~4.2.0-rc.1", - "@abp/lodash": "~4.2.0-rc.1", - "@abp/luxon": "~4.2.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.1", - "@abp/select2": "~4.2.0-rc.1", - "@abp/sweetalert": "~4.2.0-rc.1", - "@abp/timeago": "~4.2.0-rc.1", - "@abp/toastr": "~4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui": "~4.2.0-rc.2", + "@abp/bootstrap": "~4.2.0-rc.2", + "@abp/bootstrap-datepicker": "~4.2.0-rc.2", + "@abp/datatables.net-bs4": "~4.2.0-rc.2", + "@abp/font-awesome": "~4.2.0-rc.2", + "@abp/jquery-form": "~4.2.0-rc.2", + "@abp/jquery-validation-unobtrusive": "~4.2.0-rc.2", + "@abp/lodash": "~4.2.0-rc.2", + "@abp/luxon": "~4.2.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.2", + "@abp/select2": "~4.2.0-rc.2", + "@abp/sweetalert": "~4.2.0-rc.2", + "@abp/timeago": "~4.2.0-rc.2", + "@abp/toastr": "~4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 260b7aaebc..f6ce6e3334 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index 0609b13d78..e5f5e57027 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/aspnetcore.mvc.ui", "publishConfig": { "access": "public" diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 9df7353f9c..4cf7c6141c 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.1", - "@abp/owl.carousel": "~4.2.0-rc.1", - "@abp/prismjs": "~4.2.0-rc.1", - "@abp/tui-editor": "~4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.2", + "@abp/owl.carousel": "~4.2.0-rc.2", + "@abp/prismjs": "~4.2.0-rc.2", + "@abp/tui-editor": "~4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index ae0e6d9cb6..8b4805ff35 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/bootstrap-datepicker", "publishConfig": { "access": "public" diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index a680bdc675..028202cde6 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/bootstrap", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "bootstrap": "^4.5.0", "bootstrap-v4-rtl": "4.4.1-2" }, diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index 4cd3516593..331266bf27 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index d7d9cdea41..9b77518da3 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 96b4af59bc..3f00950b2f 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/star-rating-svg": "~4.2.0-rc.1" + "@abp/star-rating-svg": "~4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 16e7097c25..33107815cc 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index 34d60f20f1..b6973caf42 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/core", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^4.2.0-rc.1" + "@abp/utils": "^4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 4cbeeb4f33..581333926e 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 41590140ca..7d66e52d37 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/datatables.net-bs4", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~4.2.0-rc.1", + "@abp/datatables.net": "~4.2.0-rc.2", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 370ed83b5f..e223e6614d 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/datatables.net", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.2", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 12115c37c7..489053b8d8 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~4.2.0-rc.1", - "@abp/clipboard": "~4.2.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.1", - "@abp/popper.js": "~4.2.0-rc.1", - "@abp/prismjs": "~4.2.0-rc.1" + "@abp/anchor-js": "~4.2.0-rc.2", + "@abp/clipboard": "~4.2.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.2", + "@abp/popper.js": "~4.2.0-rc.2", + "@abp/prismjs": "~4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 2bc928dd09..af82d94171 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index aad44c7006..7a658d7975 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/font-awesome", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 874f84d496..e0258813da 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1" + "@abp/core": "~4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 0576427c17..b230fe1c7a 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/jquery-form", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.2", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index f634763f83..9d659360ff 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/jquery-validation-unobtrusive", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~4.2.0-rc.1", + "@abp/jquery-validation": "~4.2.0-rc.2", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 31ef368b26..4a1b3a607c 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/jquery-validation", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.2", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index fc9d66b509..69041232c7 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/jquery", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "jquery": "~3.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index d3b5cb2420..1001203f91 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.2", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 34fb363feb..4508cfeebf 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/lodash", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 5d9311a0b1..004194978d 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/luxon", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "luxon": "^1.24.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index 530eee7b20..d14a9c01ca 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/malihu-custom-scrollbar-plugin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 2a0361295d..c0a8f6472c 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index c8bea01a38..1403a3bed5 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index dbd73acbd1..1a865752a4 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "popper.js": "^1.16.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 387dda531a..1353a0048a 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.2.0-rc.1", - "@abp/core": "~4.2.0-rc.1", + "@abp/clipboard": "~4.2.0-rc.2", + "@abp/core": "~4.2.0-rc.2", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index b8ee85ea7e..29c156ec28 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/select2", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 5ead5f7edd..76642825e2 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index b9d837e80a..53589521cf 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.2", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert/package.json b/npm/packs/sweetalert/package.json index bb6a70fb8f..d11e1ebf48 100644 --- a/npm/packs/sweetalert/package.json +++ b/npm/packs/sweetalert/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/sweetalert", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "sweetalert": "^2.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 4339509c4e..a539a10b2d 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/timeago", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.2", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 8dc49693fc..0e67eb53e8 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/toastr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.1", + "@abp/jquery": "~4.2.0-rc.2", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 7b0888bf21..f645614bf7 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~4.2.0-rc.1", - "@abp/highlight.js": "~4.2.0-rc.1", - "@abp/jquery": "~4.2.0-rc.1", - "@abp/markdown-it": "~4.2.0-rc.1", + "@abp/codemirror": "~4.2.0-rc.2", + "@abp/highlight.js": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0-rc.2", + "@abp/markdown-it": "~4.2.0-rc.2", "tui-editor": "^1.4.10" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index fd381bb8e8..c75b04abdd 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.1", + "@abp/core": "~4.2.0-rc.2", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 9dea904281..107e06925b 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index c83c1639d3..3b2605a7ba 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~4.2.0-rc.1", + "@abp/vue": "~4.2.0-rc.2", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 3a84312aec..63963370b3 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.2.0-rc.1", - "@abp/prismjs": "~4.2.0-rc.1" + "@abp/clipboard": "~4.2.0-rc.2", + "@abp/prismjs": "~4.2.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index b7a9f44fab..34eccc2f5c 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.1", + "version": "4.2.0-rc.2", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 6617752ea3..45e8452cfe 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,13 +12,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.2.0-rc.1", - "@abp/ng.core": "~4.2.0-rc.1", - "@abp/ng.identity": "~4.2.0-rc.1", - "@abp/ng.setting-management": "~4.2.0-rc.1", - "@abp/ng.tenant-management": "~4.2.0-rc.1", - "@abp/ng.theme.basic": "~4.2.0-rc.1", - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.components": "~4.2.0-rc.2", + "@abp/ng.core": "~4.2.0-rc.2", + "@abp/ng.identity": "~4.2.0-rc.2", + "@abp/ng.setting-management": "~4.2.0-rc.2", + "@abp/ng.tenant-management": "~4.2.0-rc.2", + "@abp/ng.theme.basic": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -32,7 +32,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.2.0-rc.1", + "@abp/ng.schematics": "~4.2.0-rc.2", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 7ee2fbd745..807eaccef0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index 5ee071ba9b..b0078db190 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index c3565d00d9..214c743fe8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 5f2ba264fd..0118c5f1a3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 7ee2fbd745..807eaccef0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 5f2ba264fd..0118c5f1a3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 7ee2fbd745..807eaccef0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index 5ee071ba9b..b0078db190 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 5b924f607a..62d6a7b7b8 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,13 +15,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.2.0-rc.1", - "@abp/ng.core": "~4.2.0-rc.1", - "@abp/ng.identity": "~4.2.0-rc.1", - "@abp/ng.setting-management": "~4.2.0-rc.1", - "@abp/ng.tenant-management": "~4.2.0-rc.1", - "@abp/ng.theme.basic": "~4.2.0-rc.1", - "@abp/ng.theme.shared": "~4.2.0-rc.1", + "@abp/ng.components": "~4.2.0-rc.2", + "@abp/ng.core": "~4.2.0-rc.2", + "@abp/ng.identity": "~4.2.0-rc.2", + "@abp/ng.setting-management": "~4.2.0-rc.2", + "@abp/ng.tenant-management": "~4.2.0-rc.2", + "@abp/ng.theme.basic": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0-rc.2", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -35,7 +35,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.2.0-rc.1", + "@abp/ng.schematics": "~4.2.0-rc.2", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 46e42f02b4..14ff00a67e 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.2.0-rc.1", - "@abp/ng.theme.shared": ">=4.2.0-rc.1" + "@abp/ng.core": ">=4.2.0-rc.2", + "@abp/ng.theme.shared": ">=4.2.0-rc.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index c3565d00d9..214c743fe8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 5f2ba264fd..0118c5f1a3 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 7ee2fbd745..807eaccef0 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 5f2ba264fd..0118c5f1a3 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 7ee2fbd745..807eaccef0 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock index 976937fb0c..b02a1d9661 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.1.tgz#42cda7aad84aea49cf6e9bba7a3bbb4709cbe5a9" - integrity sha512-tiERvctW+bcgH3pKqhMZrGXL1uCqw2W8LvjyxFoygJmjncTK9cjq5TEpwR0XXhlslfqPhr2DsglMeM1MOm+OVg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.1.tgz#8b66c41ceb578b6187afa9cbba69fad36e6a7717" - integrity sha512-3rt9k6FYIZ5BmUOGLuixOIESNaJwskF+ySvufbI1Os8wyTeD/Q1HiYDIM1oJZ28qexAbKamdZuyKmWYmxqpqDQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.1" - "@abp/bootstrap" "~4.2.0-rc.1" - "@abp/bootstrap-datepicker" "~4.2.0-rc.1" - "@abp/datatables.net-bs4" "~4.2.0-rc.1" - "@abp/font-awesome" "~4.2.0-rc.1" - "@abp/jquery-form" "~4.2.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.1" - "@abp/lodash" "~4.2.0-rc.1" - "@abp/luxon" "~4.2.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.1" - "@abp/select2" "~4.2.0-rc.1" - "@abp/sweetalert" "~4.2.0-rc.1" - "@abp/timeago" "~4.2.0-rc.1" - "@abp/toastr" "~4.2.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.1.tgz#aae1153bf503cc5ce5443ce9f2efe5057af7314d" - integrity sha512-5EZlaHjdKYn6I+9kCXQWu/FjbNgyBSl2xW97nbF5Or3e9bUs+Ne6yLJMYypoLHzhcPUTzyemBozMf/VXX9oOhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" + integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" + integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" + "@abp/bootstrap" "~4.2.0-rc.2" + "@abp/bootstrap-datepicker" "~4.2.0-rc.2" + "@abp/datatables.net-bs4" "~4.2.0-rc.2" + "@abp/font-awesome" "~4.2.0-rc.2" + "@abp/jquery-form" "~4.2.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" + "@abp/lodash" "~4.2.0-rc.2" + "@abp/luxon" "~4.2.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" + "@abp/select2" "~4.2.0-rc.2" + "@abp/sweetalert" "~4.2.0-rc.2" + "@abp/timeago" "~4.2.0-rc.2" + "@abp/toastr" "~4.2.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" + integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.1.tgz#1f49d714743453a83b76410e0f2b6ddc21378146" - integrity sha512-1zk19yIUgvy1aO9LnZ0qdLH/8f43qIGSwT5FYPc9Q9p/f3MquLEUq1i/A/BUVYqK9LJHJZFuZv0+XMopG7YJ2g== +"@abp/bootstrap-datepicker@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" + integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.1.tgz#dd650bdc7c10fbb27d3e39d0081c80dd7b8bc077" - integrity sha512-oax5sp1MwqxNqhzo1/YnjcBhzztkHAceT9t5PfRfJvYr98idREGfo1G2yC5dOplIOnHM87DIbLQTW47m/Edrbw== +"@abp/bootstrap@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" + integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.1.tgz#45d7961216709a9d4c57ee04a1e18d58150b29af" - integrity sha512-KIaHlCdAEkwhXgHTW0ACTbyPH/Y1Va/SsyMDVye7vcUldL/dp5HXXGaUWRR/Qrwxl55e8rXJTmOnX9ibtS5ydQ== +"@abp/core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" + integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" -"@abp/datatables.net-bs4@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.1.tgz#7f0c0dcb92f813d7a4d98d6f2c123092a84b5483" - integrity sha512-QaK9cSTeBTxeWrP/3g+jAAzGy9Jfkdbz0p7ycvHjbcSnHS3h4JRsUw9B3RNdmh3bnF1eVbRu97NiUgqJ3w6kQA== +"@abp/datatables.net-bs4@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" + integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== dependencies: - "@abp/datatables.net" "~4.2.0-rc.1" + "@abp/datatables.net" "~4.2.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.1.tgz#9f9af39f23bd91cd1467b4a2de9aa743e5a6d693" - integrity sha512-un0DoikRJtrUAwDvG2En21Hz7IeGdfYufeeVIG5SPxzc2zxBi8h/8Cd6Zo0MJWFrU+gbW63ADB0wiuB6haC/fA== +"@abp/datatables.net@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" + integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.1.tgz#d1bfaa88fb9f76d0e71061c36493698cb50abbfa" - integrity sha512-e3bprerNY7kU26np7xSHUAkPrBr7+Nn0UvEiwWYgen1/TS0rs7usTkhIVtnF6w334bRIxjDcXLWDsZ3QswnVGA== +"@abp/font-awesome@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" + integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.1.tgz#1625df5844564887836a698b9709c5ea58a87c07" - integrity sha512-JSC+xQmoPuSEdjm5gpVKpF9VS1X48uUxlRmAfeiWLHDorFZvzpiak3NhVU8XHfv5UG2SGYVqQmwnRxk5f9D4HA== +"@abp/jquery-form@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" + integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.1.tgz#0e30042735f8f1da831691ef0b67ff0efceb8cd8" - integrity sha512-dSWlUvKUj0hsJby8UP5gEVBPXL7TYTe8VskyoSxVCvMs7jMD0yuH67ZImP+2c5p6X5Pww+ImEZ5RUjr0hKh1WA== +"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" + integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.1" + "@abp/jquery-validation" "~4.2.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.1.tgz#b5e0b2b2b7c0826f9d11c1f9a93f300945769368" - integrity sha512-GxPE2+NOGGl4NZThMpLLexF65AwpF6oMVc3StvOVfgNstzl+VezhkJwjytiLVK4acr6zSTIUNbKsKjGIWLVG/A== +"@abp/jquery-validation@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" + integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.1.tgz#7cdec9c3e5cd796c65bd0d7317025728b577ff14" - integrity sha512-/bIQVKQqDJn9pSlzv5pteYEef+bLw6iqPCwNamLsSjpMPCVMukgD6DuL+1bY1Yb/9fVORODnqctCsxXxl0W/iQ== +"@abp/jquery@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" + integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.1.tgz#11ed50c96b85b129fd83224defd0c54627ea6ce4" - integrity sha512-RQLTOv4wRgeCMEFFi8bWnbLblYmk0p4U4NRaMEX+Y3Hxuh1ROCvxwl2jCxqfdAAx+Jpg1SFtyxTU+wMDYeR6IA== +"@abp/lodash@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" + integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.1.tgz#7eabef77537651e13faf8be32030e382427d3f98" - integrity sha512-nRb7RvUdhVSfeSI+HEGVkhlW1VKJKSiwbDxKB0okubGE4L+siYUhN8FKCtRTCP4NjxNMLCS7v73XA2DxkyjcVg== +"@abp/luxon@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" + integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.1.tgz#b346aa9545fa157647f8932e04d3051ade63aeb5" - integrity sha512-CKXalT+pgeLVoX1k2J17ia5hjignsabaJZBRG81JAkAHI20JGxvNLL2cVXv+M1KdmQGla+Douf7/c6eNiaSheA== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" + integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.1.tgz#48a38319b4fb52ce3fa25d5c3647258dfceb42b5" - integrity sha512-8wB1DOkUotJxV3HE2ga8Nkb1I9t/VSQL6YsiK+EEfENuPuqOPD5N3mevLtQFOdy/c/i6s/Nx7Nb4VRT3cIBW5g== +"@abp/select2@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" + integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.1.tgz#ca26dad346f79ec18c7a9b8d7a64f374f497cea4" - integrity sha512-N2agFY5TkJTozYlBOmzlnKJLfyJpNHDol5DyLRWF5zAkudUiDDaYJrvKVqmORsbZSDwJzKbgDcqwiuoPM14Fmg== +"@abp/sweetalert@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" + integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== dependencies: - "@abp/core" "~4.2.0-rc.1" + "@abp/core" "~4.2.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.1.tgz#c001df75e78bf86ebb0a4b9de2361da4e0d04dd3" - integrity sha512-vHt7T+rW0HyqAwTRhTiBoDFEnb2b00MhBEUEU1u6v5uzmgco1erMD3+ae3EHuVHCQ+p5/mxrFTUnIpBxMEs7pg== +"@abp/timeago@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" + integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.1.tgz#66f34ab51d6c30666703f44ab2f0bccc26b2a1d7" - integrity sha512-BNYXnCPtFZtCemZ7yghi4/iYstqHTKUJZ+gkf1vXcHlLvE7JeM6SBMQYotyiiD/n1yKYrx8GRCKssf/gqO/VgQ== +"@abp/toastr@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" + integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== dependencies: - "@abp/jquery" "~4.2.0-rc.1" + "@abp/jquery" "~4.2.0-rc.2" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== dependencies: just-compare "^1.3.0" From e3fce5578a89001e075c17f22b1b6158114fa943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 18 Jan 2021 21:32:05 +0300 Subject: [PATCH 077/309] Update POST.md --- docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 28a42059fb..8d769b52ce 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -8,16 +8,16 @@ Today, we have released the [ABP Framework](https://abp.io/) and the [ABP Commer If you want to try the version `4.2.0` today, follow the steps below; -1) **Upgrade** the ABP CLI to the version `4.2.0-rc.1` using a command line terminal: +1) **Upgrade** the ABP CLI to the version `4.2.0-rc.2` using a command line terminal: ````bash -dotnet tool update Volo.Abp.Cli -g --version 4.2.0-rc.1 +dotnet tool update Volo.Abp.Cli -g --version 4.2.0-rc.2 ```` **or install** if you haven't installed before: ````bash -dotnet tool install Volo.Abp.Cli -g --version 4.2.0-rc.1 +dotnet tool install Volo.Abp.Cli -g --version 4.2.0-rc.2 ```` 2) Create a **new application** with the `--preview` option: From 0ac632fecf15a5d37048e49148f455b903b2c1ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 18 Jan 2021 21:42:54 +0300 Subject: [PATCH 078/309] Update POST.md --- docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md index 8d769b52ce..d16afb4244 100644 --- a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md +++ b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/POST.md @@ -130,7 +130,9 @@ abp new BookStore -dbms mysql --preview Available options: `SqlServer` (default), `MySQL`, `SQLite`, `Oracle-Devart`, `PostgreSQL`. See the [documentation](https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Other-DBMS) to use any other DBMS or switch the DBMS later. -> If you select a DBMS other than the SQL Server, then the database migrations are also created when you first run the `DbMigrator` application. In this case, do not run the application inside Visual Studio (or another IDE), but execute `dotnet run` command in a terminal in the folder of the `DbMigrator` project. +One change related to this feature is that: Now, the startup template doesn't come with an **initial migration** file. This is because the database migrations are different based on your DBMS preference and should be re-created. However, when you first run the `.DbMigrator` application, it will create the initial migration and create the database just like before. + +> See The Initial Migration section in the [Getting Started](https://docs.abp.io/en/abp/4.2/Getting-Started-Running-Solution?DB=EF#database-migrations) document if you have problems on running the `.DbMigrator` application first time. ### Swagger UI Login / Authorization From ece9d26f8663b210e7aa1618c53547ee0b2b859e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 18 Jan 2021 21:55:13 +0300 Subject: [PATCH 079/309] Update Repositories.md --- docs/en/Repositories.md | 176 ++++++++++++++++++++++++++++++---------- 1 file changed, 135 insertions(+), 41 deletions(-) diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index 5ad3107ca6..a2eb385094 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -13,84 +13,178 @@ ABP can provide a **default generic repository** for each aggregate root or enti **Example usage of a default generic repository:** ````C# -public class PersonAppService : ApplicationService -{ - private readonly IRepository _personRepository; +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; - public PersonAppService(IRepository personRepository) +namespace Demo +{ + public class PersonAppService : ApplicationService { - _personRepository = personRepository; - } + private readonly IRepository _personRepository; - public async Task Create(CreatePersonDto input) - { - var person = new Person { Name = input.Name, Age = input.Age }; + public PersonAppService(IRepository personRepository) + { + _personRepository = personRepository; + } - await _personRepository.InsertAsync(person); - } + public async Task CreateAsync(CreatePersonDto input) + { + var person = new Person(input.Name); - public List GetList(string nameFilter) - { - var people = _personRepository - .Where(p => p.Name.Contains(nameFilter)) - .ToList(); + await _personRepository.InsertAsync(person); + } - return people - .Select(p => new PersonDto {Id = p.Id, Name = p.Name, Age = p.Age}) - .ToList(); + public async Task GetCountAsync(string filter) + { + return await _personRepository.CountAsync(p => p.Name.Contains(filter)); + } } } ```` -> See the "*IQueryable & Async Operations*" section below to understand how you can use **async extension methods**, like `ToListAsync()` (which is strongly suggested) instead of `ToList()`. - In this example; * `PersonAppService` simply injects `IRepository` in it's constructor. -* `Create` method uses `InsertAsync` to save a newly created entity. -* `GetList` method uses the standard LINQ `Where` and `ToList` methods to filter and get a list of people from the data source. +* `CreateAsync` method uses `InsertAsync` to save the new entity. +* `GetCountAsync` method gets a filtered count of all people in the database. -> The example above uses hand-made mapping between [entities](Entities.md) and [DTO](Data-Transfer-Objects.md)s. See [object to object mapping document](Object-To-Object-Mapping.md) for an automatic way of mapping. +### Standard Repository Methods Generic Repositories provides some standard CRUD features out of the box: -* Provides `Insert` method to save a new entity. +* `GetAsync`: Returns a single entity by its `Id` or a predicate (lambda expression). + * Throws `EntityNotFoundException` if the requested entity was not found. + * Throws `InvalidOperationException` if there are multiple entities with given predicate. +* `FindAsync`: Returns a single entity by its `Id` or a predicate (lambda expression). + * Returns `null` if the requested entity was not found. + * Throws `InvalidOperationException` if there are multiple entities with given predicate. +* `InsertAsync`: Inserts a new entity to the database. +* `UpdateAsync`: Updates an existing entity in the database. +* `DeleteAsync`: Deletes the given entity from database. + * This method has an overload that takes a predicate (lambda expression) to delete multiple entities satisfies the given condition. +* `GetListAsync`: Returns the list of all entities in the database. +* `GetPagedListAsync`: Returns a limited list of entities. Gets `skipCount`, `maxResultCount` and `sorting` parameters. +* `GetCountAsync`: Gets count of all entities in the database. + +There are overloads of these methods. + * Provides `Update` and `Delete` methods to update or delete an entity by entity object or it's id. * Provides `Delete` method to delete multiple entities by a filter. -* Implements `IQueryable`, so you can use LINQ and extension methods like `FirstOrDefault`, `Where`, `OrderBy`, `ToList` and so on... -### Basic Repositories +### Querying / LINQ over the Repositories -Standard `IRepository` interface extends standard `IQueryable` and you can freely query using standard LINQ methods. However, some ORM providers or database systems may not support standard `IQueryable` interface. +Repositories provide the `GetQueryableAsync()` method that returns an `IQueryable` object. You can use this object to perform LINQ queries on the entities in the database. -ABP provides `IBasicRepository` and `IBasicRepository` interfaces to support such scenarios. You can extend these interfaces (and optionally derive from `BasicRepositoryBase`) to create custom repositories for your entities. +**Example: Use LINQ with the repositories** -Depending on `IBasicRepository` but not depending on `IRepository` has an advantage to make possible to work with all data sources even if they don't support `IQueryable`. But major vendors, like Entity Framework, NHibernate or MongoDb already support `IQueryable`. +````csharp +using System; +using System.Linq; +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; -So, working with `IRepository` is the **suggested** way for typical applications. But reusable module developers may consider `IBasicRepository` to support a wider range of data sources. +namespace Demo +{ + public class PersonAppService : ApplicationService + { + private readonly IRepository _personRepository; -### Read Only Repositories + public PersonAppService(IRepository personRepository) + { + _personRepository = personRepository; + } -There are also `IReadOnlyRepository` and `IReadOnlyBasicRepository` interfaces for who only want to depend on querying capabilities of the repositories. + public async Task> GetListAsync(string filter) + { + //Obtain the IQueryable + IQueryable queryable = await _personRepository.GetQueryableAsync(); -### Generic Repository without a Primary Key + //Create a query + var query = from person in queryable + where person.Name == filter + orderby person.Name + select person; -If your entity does not have an Id primary key (it may have a composite primary key for instance) then you cannot use the `IRepository` (or basic/readonly versions) defined above. In that case, you can inject and use `IRepository` for your entity. + //Execute the query to get list of people + var people = query.ToList(); -> `IRepository` has a few missing methods those normally works with the `Id` property of an entity. Because of the entity has no `Id` property in that case, these methods are not available. One example is the `Get` method that gets an id and returns the entity with given id. However, you can still use `IQueryable` features to query entities by standard LINQ methods. + //Convert to DTO and return to the client + return people.Select(p => new PersonDto {Name = p.Name}).ToList(); + } + } +} +```` + +You could also use the LINQ extension methods: + +````csharp +public async Task> GetListAsync(string filter) +{ + //Obtain the IQueryable + IQueryable queryable = await _personRepository.GetQueryableAsync(); + + //Execute a query + var people = queryable + .Where(p => p.Name.Contains(filter)) + .OrderBy(p => p.Name) + .ToList(); + + //Convert to DTO and return to the client + return people.Select(p => new PersonDto {Name = p.Name}).ToList(); +} +```` + +Any standard LINQ method can be used over the `IQueryable` returned from the repository. + +> This sample uses `ToList()` method, but it is **strongly suggested to use the asynchronous methods** to perform database queries, like `ToListAsync()` for this example. +> +> See the **IQueryable & Async Operations** section to learn how you can do it. + +### Bulk Operations + +There are some methods to perform bulk operations in the database; + +* `InsertManyAsync` +* `UpdateManyAsync` +* `DeleteManyAsync` + +These methods work with multiple entities and can take advantage of bulk operations if supported by the underlying database provider. + +> Optimistic concurrency control may not be possible when you use `UpdateManyAsync` and `DeleteManyAsync` methods. ### Soft / Hard Delete `DeleteAsync` method of the repository doesn't delete the entity if the entity is a **soft-delete** entity (that implements `ISoftDelete`). Soft-delete entities are marked as "deleted" in the database. Data Filter system ensures that the soft deleted entities are not retrieved from database normally. -If your entity is a soft-delete entity, you can use the `HardDeleteAsync` method to really delete the entity from database in case of you need it. +If your entity is a soft-delete entity, you can use the `HardDeleteAsync` method to physically delete the entity from database in case of you need it. + +> See the [Data Filtering](Data-Filtering.md) documentation for more about soft-delete. + +## Other Generic Repository Types + +Standard `IRepository` interface exposes the standard `IQueryable` and you can freely query using the standard LINQ methods. This is fine for most of the applications. However, some ORM providers or database systems may not support standard `IQueryable` interface. If you want to use such providers, you can't rely on the `IQueryable`. + +### Basic Repositories + +ABP provides `IBasicRepository` and `IBasicRepository` interfaces to support such scenarios. You can extend these interfaces (and optionally derive from `BasicRepositoryBase`) to create custom repositories for your entities. + +Depending on `IBasicRepository` but not depending on `IRepository` has an advantage to make possible to work with all data sources even if they don't support `IQueryable`. -See the [Data Filtering](Data-Filtering.md) documentation for more about soft-delete. +Major vendors, like Entity Framework, NHibernate or MongoDB already support `IQueryable`. So, working with `IRepository` is the **suggested** way for typical applications. But reusable module developers may consider `IBasicRepository` to support a wider range of data sources. -## Bulk Operations -You can execute bulk operations with `InsertManyAsync`, `UpdateManyAsync`, `DeleteManyAsync` methods. +### Read Only Repositories -> **WARNING:** ConcurrencyStamp can't be checked at bulk operations! +There are also `IReadOnlyRepository` and `IReadOnlyBasicRepository` interfaces for who only want to depend on querying capabilities of the repositories. + +### Generic Repository without a Primary Key + +If your entity does not have an Id primary key (it may have a composite primary key for instance) then you cannot use the `IRepository` (or basic/readonly versions) defined above. In that case, you can inject and use `IRepository` for your entity. + +> `IRepository` has a few missing methods those normally works with the `Id` property of an entity. Because of the entity has no `Id` property in that case, these methods are not available. One example is the `Get` method that gets an id and returns the entity with given id. However, you can still use `IQueryable` features to query entities by standard LINQ methods. ## Custom Repositories From cc1c1d3cd1dc19bf66701d12ebc02acc58b559b6 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 19 Jan 2021 10:27:05 +0800 Subject: [PATCH 080/309] Localized exception message in pages. --- .../Volo.Abp.Account.Web/AbpAccountWebModule.cs | 4 +++- .../Pages/Account/AccountPageModel.cs | 14 +++++++++++++- .../Pages/Account/ForgotPassword.cshtml.cs | 2 +- .../Pages/Account/Register.cshtml.cs | 4 +--- .../Pages/Account/ResetPassword.cshtml.cs | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs index 303963d24f..4a806b9ae2 100644 --- a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs +++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs @@ -8,6 +8,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars; using Volo.Abp.AutoMapper; +using Volo.Abp.ExceptionHandling; using Volo.Abp.Identity.AspNetCore; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; @@ -19,7 +20,8 @@ namespace Volo.Abp.Account.Web typeof(AbpAccountHttpApiModule), typeof(AbpIdentityAspNetCoreModule), typeof(AbpAutoMapperModule), - typeof(AbpAspNetCoreMvcUiThemeSharedModule) + typeof(AbpAspNetCoreMvcUiThemeSharedModule), + typeof(AbpExceptionHandlingModule) )] public class AbpAccountWebModule : AbpModule { diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs index 3e016c8bb5..c4461bd512 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs @@ -2,10 +2,11 @@ using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Identity; -using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Volo.Abp.Account.Localization; +using Volo.Abp.AspNetCore.ExceptionHandling; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.ExceptionHandling; using Volo.Abp.Identity; using IdentityUser = Volo.Abp.Identity.IdentityUser; @@ -18,6 +19,7 @@ namespace Volo.Abp.Account.Web.Pages.Account public IdentityUserManager UserManager { get; set; } public IdentitySecurityLogManager IdentitySecurityLogManager { get; set; } public IOptions IdentityOptions { get; set; } + public IExceptionToErrorInfoConverter ExceptionToErrorInfoConverter { get; set; } protected AccountPageModel() { @@ -42,5 +44,15 @@ namespace Volo.Abp.Account.Web.Pages.Account throw new ApplicationException($"Current tenant is different than given tenant. CurrentTenant.Id: {CurrentTenant.Id}, given tenantId: {tenantId}"); } } + + protected virtual string GetLocalizeExceptionMessage(Exception exception) + { + if (exception is ILocalizeErrorMessage || exception is IHasErrorCode) + { + return ExceptionToErrorInfoConverter.Convert(exception, false).Message; + } + + return exception.Message; + } } } diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ForgotPassword.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ForgotPassword.cshtml.cs index b66b53c913..1789a6ba2e 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ForgotPassword.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ForgotPassword.cshtml.cs @@ -43,7 +43,7 @@ namespace Volo.Abp.Account.Web.Pages.Account } catch (UserFriendlyException e) { - Alerts.Danger(e.Message); + Alerts.Danger(GetLocalizeExceptionMessage(e)); return Page(); } diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs index 065573c137..eb6307e6b0 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs @@ -1,8 +1,6 @@ -using System; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Security.Claims; -using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; @@ -100,7 +98,7 @@ namespace Volo.Abp.Account.Web.Pages.Account } catch (BusinessException e) { - Alerts.Danger(e.Message); + Alerts.Danger(GetLocalizeExceptionMessage(e)); return Page(); } } diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs index 13370f5fbd..c961fe7e14 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs @@ -82,7 +82,7 @@ namespace Volo.Abp.Account.Web.Pages.Account { if (!string.IsNullOrWhiteSpace(e.Message)) { - Alerts.Warning(e.Message); + Alerts.Warning(GetLocalizeExceptionMessage(e)); return Page(); } From e9504c58ca57615a7196eaf6d60d806fab6c282e Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 19 Jan 2021 11:26:21 +0800 Subject: [PATCH 081/309] Enhanced topic already exists condition --- .../src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs index 8ae81a2a26..bb7e2d66a3 100644 --- a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs @@ -86,7 +86,7 @@ namespace Volo.Abp.Kafka } catch (CreateTopicsException e) { - if (!e.Error.Reason.Contains($"Topic '{TopicName}' already exists")) + if(e.Results.First().Error.Code != ErrorCode.TopicAlreadyExists) { throw; } From 3a09416f0ae15ea91b620f8962ae089b2e90b601 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 19 Jan 2021 09:24:34 +0300 Subject: [PATCH 082/309] update styles in test projects of angular templates --- templates/app/angular/angular.json | 23 +++++++---------------- templates/module/angular/angular.json | 10 +++++++++- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/templates/app/angular/angular.json b/templates/app/angular/angular.json index 988b46e036..fdf6751f7b 100644 --- a/templates/app/angular/angular.json +++ b/templates/app/angular/angular.json @@ -121,22 +121,13 @@ "karmaConfig": "karma.conf.js", "assets": ["src/favicon.ico", "src/assets"], "styles": [ - { - "input": "node_modules/bootstrap/dist/css/bootstrap.min.css", - "inject": true, - "bundleName": "bootstrap.min" - }, - "src/styles.scss", - { - "input": "node_modules/@fortawesome/fontawesome-free/css/all.min.css", - "inject": false, - "bundleName": "fontawesome-all.min" - }, - { - "input": "node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css", - "inject": false, - "bundleName": "fontawesome-v4-shims.min" - } + "node_modules/bootstrap/dist/css/bootstrap.min.css", + "node_modules/@fortawesome/fontawesome-free/css/all.min.css", + "node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css", + "node_modules/@swimlane/ngx-datatable/index.css", + "node_modules/@swimlane/ngx-datatable/assets/icons.css", + "node_modules/@swimlane/ngx-datatable/themes/material.css", + "src/styles.scss" ], "scripts": [] } diff --git a/templates/module/angular/angular.json b/templates/module/angular/angular.json index 339566a394..f9bc85d851 100644 --- a/templates/module/angular/angular.json +++ b/templates/module/angular/angular.json @@ -159,7 +159,15 @@ "tsConfig": "projects/dev-app/tsconfig.spec.json", "karmaConfig": "projects/dev-app/karma.conf.js", "assets": ["projects/dev-app/src/favicon.ico", "projects/dev-app/src/assets"], - "styles": ["projects/dev-app/src/styles.scss"], + "styles": [ + "node_modules/bootstrap/dist/css/bootstrap.min.css", + "node_modules/@fortawesome/fontawesome-free/css/all.min.css", + "node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css", + "node_modules/@swimlane/ngx-datatable/index.css", + "node_modules/@swimlane/ngx-datatable/assets/icons.css", + "node_modules/@swimlane/ngx-datatable/themes/material.css", + "src/styles.scss" + ], "scripts": [] } }, From 47d89b7ddc1ebb86306ad0e2708aaf72bcaf1cbd Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 19 Jan 2021 09:32:43 +0300 Subject: [PATCH 083/309] fix dev-app styles path --- templates/module/angular/angular.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/module/angular/angular.json b/templates/module/angular/angular.json index f9bc85d851..f7c5426772 100644 --- a/templates/module/angular/angular.json +++ b/templates/module/angular/angular.json @@ -166,7 +166,7 @@ "node_modules/@swimlane/ngx-datatable/index.css", "node_modules/@swimlane/ngx-datatable/assets/icons.css", "node_modules/@swimlane/ngx-datatable/themes/material.css", - "src/styles.scss" + "projects/dev-app/src/styles.scss" ], "scripts": [] } From fb2c76082ad14fe32373d4c278e63c40f5163aec Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 19 Jan 2021 09:46:24 +0300 Subject: [PATCH 084/309] allow paths to include whitespace in dbmigrator & cli --- .../Volo/Abp/Cli/Commands/CreateMigrationAndRunMigrator.cs | 6 +++++- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs | 2 +- .../Data/MyProjectNameDbMigrationService.cs | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigrator.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigrator.cs index 0a79b7760a..982ef77065 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigrator.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigrator.cs @@ -26,12 +26,16 @@ namespace Volo.Abp.Cli.Commands throw new Exception("DbMigrator is not found!"); } - var output = CmdHelper.RunCmdAndGetOutput("cd \"" + commandLineArgs.Target + "\" && dotnet ef migrations add Initial -s " + dbMigratorProjectPath); + var output = CmdHelper.RunCmdAndGetOutput($"cd \"{commandLineArgs.Target}\" && dotnet ef migrations add Initial -s \"{dbMigratorProjectPath}\""); if (output.Contains("Done.") && output.Contains("To undo this action") && output.Contains("ef migrations remove")) // Migration added successfully { CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(dbMigratorProjectPath) + "\" && dotnet run"); } + else + { + throw new Exception("Migrations failed: " + output); + } } private string GetDbMigratorProjectPath(string dbMigrationsFolderPath) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs index 07052a8f48..4fde5dfe80 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs @@ -47,7 +47,7 @@ namespace Volo.Abp.Cli.Utils { process.StartInfo = new ProcessStartInfo(CmdHelper.GetFileName()) { - Arguments = CmdHelper.GetArguments(command), + Arguments = GetArguments(command), UseShellExecute = false, CreateNoWindow = true, RedirectStandardOutput = true, diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index 1cb3ba052c..f33076746a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -141,7 +141,7 @@ namespace MyCompanyName.MyProjectName.Data } var procStartInfo = new ProcessStartInfo( fileName, - $"{argumentPrefix} \"abp create-migration-and-run-migrator {GetDbMigrationsProjectFolderPath()}\"" + $"{argumentPrefix} \"abp create-migration-and-run-migrator \"{GetDbMigrationsProjectFolderPath()}\"\"" ); try From b43878f5706f033721aae5407ff245ea5ed18582 Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Tue, 19 Jan 2021 10:07:50 +0300 Subject: [PATCH 085/309] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 480ccfc371..38f2b4f84b 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 4.1.1 + 4.1.2 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From 815857daf1fea19a0cf7e5f8e12d33a464177e63 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 19 Jan 2021 16:19:55 +0800 Subject: [PATCH 086/309] Add ConfigureAll method to Bundle system --- .../Bundling/BundleConfigurationCollection.cs | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs index afc4ec6a4a..a18e8bdd11 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleConfigurationCollection.cs @@ -9,11 +9,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling { private readonly ConcurrentDictionary _bundles; private readonly ConcurrentDictionary>> _lazyBundleConfigurationActions; + private readonly List> _lazyAllBundleConfigurationActions; public BundleConfigurationCollection() { _bundles = new ConcurrentDictionary(); _lazyBundleConfigurationActions = new ConcurrentDictionary>>(); + _lazyAllBundleConfigurationActions = new List>(); } ///

    From 648955798d694f640d573e2b178f09fb41b4150d Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Jan 2021 09:53:29 +0300 Subject: [PATCH 100/309] Cli DBMS: SQLite connection string espace char resolves https://github.com/abpframework/abp/issues/7339 --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 9caa952528..0c88f238b8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -248,7 +248,7 @@ namespace Volo.Abp.Cli.Commands case DatabaseManagementSystem.OracleDevart: return "Data Source=MyProjectName;Integrated Security=yes;"; case DatabaseManagementSystem.SQLite: - return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};Version=3;"; + return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};Version=3;".Replace("\\", "\\\\"); default: return null; } From 534419e32130fd6b1f82e70fa562fd940aac0a5d Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Jan 2021 10:12:10 +0300 Subject: [PATCH 101/309] Cli dbms: remove Version keyword from SqLite connection string --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 0c88f238b8..f80daa4240 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -248,7 +248,7 @@ namespace Volo.Abp.Cli.Commands case DatabaseManagementSystem.OracleDevart: return "Data Source=MyProjectName;Integrated Security=yes;"; case DatabaseManagementSystem.SQLite: - return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};Version=3;".Replace("\\", "\\\\"); + return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};".Replace("\\", "\\\\"); default: return null; } From 30ed87a53abc36765cff7eb56f4d3a90163f6063 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Jan 2021 10:16:18 +0300 Subject: [PATCH 102/309] Update NewCommand.cs --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index f80daa4240..e0c1a4ffcc 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -248,7 +248,7 @@ namespace Volo.Abp.Cli.Commands case DatabaseManagementSystem.OracleDevart: return "Data Source=MyProjectName;Integrated Security=yes;"; case DatabaseManagementSystem.SQLite: - return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};".Replace("\\", "\\\\"); + return $"Data Source={Path.Combine(outputFolder,"database" , "MyProjectName.db")};".Replace("\\", "\\\\"); default: return null; } From 4af52a08d0e7c787925caa76cec6b09ff491d2c4 Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 20 Jan 2021 10:28:08 +0300 Subject: [PATCH 103/309] CmsKit - Refactoring TagsEntityTypes --- .../Volo/CmsKit/CmsKitDomainModule.cs | 11 ++--------- .../Volo/CmsKit/Tags/EntityNotTaggableException.cs | 11 +++++++++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs index faf258f923..a60cb0d521 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs @@ -38,16 +38,9 @@ namespace Volo.CmsKit }); - if (GlobalFeatureManager.Instance.IsEnabled()) { - Configure(options => - { - if (GlobalFeatureManager.Instance.IsEnabled()) - { - options.EntityTypes.AddOrReplace(typeof(Page).Name, L("Page")); - } - }); + // TODO: Configure TagEntityTypes here... } } @@ -56,4 +49,4 @@ namespace Volo.CmsKit return LocalizableString.Create(name); } } -} +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs index d39c81a127..8787fb16a5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/EntityNotTaggableException.cs @@ -1,4 +1,5 @@ -using System; +using Microsoft.Extensions.Logging; +using System; using Volo.Abp; namespace Volo.CmsKit.Tags @@ -6,7 +7,13 @@ namespace Volo.CmsKit.Tags [Serializable] public class EntityNotTaggableException : BusinessException { - public EntityNotTaggableException(string code = null, string message = null, string details = null, Exception innerException = null, Microsoft.Extensions.Logging.LogLevel logLevel = Microsoft.Extensions.Logging.LogLevel.Warning) : base(code, message, details, innerException, logLevel) + public EntityNotTaggableException( + string code = null, + string message = null, + string details = null, + Exception innerException = null, + LogLevel logLevel = LogLevel.Warning) + : base(code, message, details, innerException, logLevel) { } From a16afa03164e7cbbf084eced7e673c1e82fdf39f Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Jan 2021 10:34:12 +0300 Subject: [PATCH 104/309] Update NewCommand.cs --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index e0c1a4ffcc..96e59152de 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -248,7 +248,7 @@ namespace Volo.Abp.Cli.Commands case DatabaseManagementSystem.OracleDevart: return "Data Source=MyProjectName;Integrated Security=yes;"; case DatabaseManagementSystem.SQLite: - return $"Data Source={Path.Combine(outputFolder,"database" , "MyProjectName.db")};".Replace("\\", "\\\\"); + return $"Data Source={Path.Combine(outputFolder , "MyProjectName.db")};".Replace("\\", "\\\\"); default: return null; } From b8e1a969be953097a9a67715ce5f34f76c598a72 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 16:46:57 +0800 Subject: [PATCH 105/309] Add CancellationToken optional parameter to the Auditlogging module repository methods --- .../Abp/AuditLogging/IAuditLogRepository.cs | 9 ++--- .../EfCoreAuditLogRepository.cs | 26 +++++++++----- .../MongoDB/MongoAuditLogRepository.cs | 34 ++++++++++++------- 3 files changed, 45 insertions(+), 24 deletions(-) diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs index ad0e0d20c2..cd7e22b9a2 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs @@ -44,9 +44,10 @@ namespace Volo.Abp.AuditLogging Task> GetAverageExecutionDurationPerDayAsync( DateTime startDate, - DateTime endDate); + DateTime endDate, + CancellationToken cancellationToken = default); - Task GetEntityChange(Guid entityChangeId); + Task GetEntityChange(Guid entityChangeId, CancellationToken cancellationToken = default); Task> GetEntityChangeListAsync( string sorting = null, @@ -70,8 +71,8 @@ namespace Volo.Abp.AuditLogging string entityTypeFullName = null, CancellationToken cancellationToken = default); - Task GetEntityChangeWithUsernameAsync(Guid entityChangeId); + Task GetEntityChangeWithUsernameAsync(Guid entityChangeId, CancellationToken cancellationToken = default); - Task> GetEntityChangesWithUsernameAsync(string entityId, string entityTypeFullName); + Task> GetEntityChangesWithUsernameAsync(string entityId, string entityTypeFullName, CancellationToken cancellationToken = default); } } diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs index edb1f3f599..acd1912925 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs @@ -125,14 +125,17 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore .WhereIf(minExecutionDuration != null && minExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration >= minExecutionDuration); } - public virtual async Task> GetAverageExecutionDurationPerDayAsync(DateTime startDate, DateTime endDate) + public virtual async Task> GetAverageExecutionDurationPerDayAsync( + DateTime startDate, + DateTime endDate, + CancellationToken cancellationToken = default) { var result = await (await GetDbSetAsync()).AsNoTracking() .Where(a => a.ExecutionTime < endDate.AddDays(1) && a.ExecutionTime > startDate) .OrderBy(t => t.ExecutionTime) .GroupBy(t => new { t.ExecutionTime.Date }) .Select(g => new { Day = g.Min(t => t.ExecutionTime), avgExecutionTime = g.Average(t => t.ExecutionDuration) }) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); return result.ToDictionary(element => element.Day.ClearTime(), element => element.avgExecutionTime); } @@ -148,14 +151,16 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore return (await GetQueryableAsync()).IncludeDetails(); } - public virtual async Task GetEntityChange(Guid entityChangeId) + public virtual async Task GetEntityChange( + Guid entityChangeId, + CancellationToken cancellationToken = default) { var entityChange = await (await GetDbContextAsync()).Set() .AsNoTracking() .IncludeDetails() .Where(x => x.Id == entityChangeId) .OrderBy(x => x.Id) - .FirstOrDefaultAsync(); + .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); if (entityChange == null) { @@ -201,10 +206,12 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore return totalCount; } - public virtual async Task GetEntityChangeWithUsernameAsync(Guid entityChangeId) + public virtual async Task GetEntityChangeWithUsernameAsync( + Guid entityChangeId, + CancellationToken cancellationToken = default) { var auditLog = await (await GetDbSetAsync()).AsNoTracking().IncludeDetails() - .Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId)).FirstAsync(); + .Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId)).FirstAsync(GetCancellationToken(cancellationToken)); return new EntityChangeWithUsername() { @@ -213,7 +220,10 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore }; } - public virtual async Task> GetEntityChangesWithUsernameAsync(string entityId, string entityTypeFullName) + public virtual async Task> GetEntityChangesWithUsernameAsync( + string entityId, + string entityTypeFullName, + CancellationToken cancellationToken = default) { var dbContext = await GetDbContextAsync(); @@ -225,7 +235,7 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore return await (from e in query join auditLog in dbContext.AuditLogs on e.AuditLogId equals auditLog.Id select new EntityChangeWithUsername {EntityChange = e, UserName = auditLog.UserName}) - .OrderByDescending(x => x.EntityChange.ChangeTime).ToListAsync(); + .OrderByDescending(x => x.EntityChange.ChangeTime).ToListAsync(GetCancellationToken(cancellationToken)); } protected virtual async Task> GetEntityChangeListQueryAsync( diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs index 788b6995bb..ce3c0e18c8 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs @@ -124,9 +124,12 @@ namespace Volo.Abp.AuditLogging.MongoDB } - public virtual async Task> GetAverageExecutionDurationPerDayAsync(DateTime startDate, DateTime endDate) + public virtual async Task> GetAverageExecutionDurationPerDayAsync( + DateTime startDate, + DateTime endDate, + CancellationToken cancellationToken = default) { - var result = await (await GetMongoQueryableAsync()) + var result = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(a => a.ExecutionTime < endDate.AddDays(1) && a.ExecutionTime > startDate) .OrderBy(t => t.ExecutionTime) .GroupBy(t => new @@ -136,17 +139,19 @@ namespace Volo.Abp.AuditLogging.MongoDB t.ExecutionTime.Day }) .Select(g => new { Day = g.Min(t => t.ExecutionTime), avgExecutionTime = g.Average(t => t.ExecutionDuration) }) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); return result.ToDictionary(element => element.Day.ClearTime(), element => element.avgExecutionTime); } - public virtual async Task GetEntityChange(Guid entityChangeId) + public virtual async Task GetEntityChange( + Guid entityChangeId, + CancellationToken cancellationToken = default) { - var entityChange = (await (await GetMongoQueryableAsync()) + var entityChange = (await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId)) .OrderBy(x => x.Id) - .FirstAsync()).EntityChanges.FirstOrDefault(x => x.Id == entityChangeId); + .FirstAsync(GetCancellationToken(cancellationToken))).EntityChanges.FirstOrDefault(x => x.Id == entityChangeId); if (entityChange == null) { @@ -194,11 +199,13 @@ namespace Volo.Abp.AuditLogging.MongoDB return count; } - public virtual async Task GetEntityChangeWithUsernameAsync(Guid entityChangeId) + public virtual async Task GetEntityChangeWithUsernameAsync( + Guid entityChangeId, + CancellationToken cancellationToken = default) { - var auditLog = (await (await GetMongoQueryableAsync()) + var auditLog = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId)) - .FirstAsync()); + .FirstAsync(GetCancellationToken(cancellationToken)); return new EntityChangeWithUsername() { @@ -207,13 +214,16 @@ namespace Volo.Abp.AuditLogging.MongoDB }; } - public virtual async Task> GetEntityChangesWithUsernameAsync(string entityId, string entityTypeFullName) + public virtual async Task> GetEntityChangesWithUsernameAsync( + string entityId, + string entityTypeFullName, + CancellationToken cancellationToken = default) { - var auditLogs = await (await GetMongoQueryableAsync()) + var auditLogs = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.EntityChanges.Any(y => y.EntityId == entityId && y.EntityTypeFullName == entityTypeFullName)) .As>() .OrderByDescending(x => x.ExecutionTime) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); var entityChanges = auditLogs.SelectMany(x => x.EntityChanges).ToList(); From 5202d8e7e0533dbd4bce3d346e7e320c21d98c40 Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Wed, 20 Jan 2021 11:51:17 +0300 Subject: [PATCH 106/309] test --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 5254c91876..11da9b9971 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 4.3.0 + 4.3.0 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From 9425585a64815def3b4064363a45fce12e89e7c1 Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Wed, 20 Jan 2021 11:53:34 +0300 Subject: [PATCH 107/309] test --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 11da9b9971..f4765e5c7d 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 4.3.0 + 4.3.0 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From 16056ef6f9dfd8a787ba61239f44dfab76b168b8 Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Wed, 20 Jan 2021 10:03:44 +0100 Subject: [PATCH 108/309] Move GetEntitiesAsync into OnCreatedEntityAsync and OnUpdatedEntityAsync --- .../src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 84ab0099c5..65bb82feff 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -362,7 +362,6 @@ namespace Volo.Abp.BlazoriseUI await CheckCreatePolicyAsync(); var createInput = MapToCreateInput(NewEntity); await AppService.CreateAsync(createInput); - await GetEntitiesAsync(); await OnCreatedEntityAsync(); } @@ -373,10 +372,11 @@ namespace Volo.Abp.BlazoriseUI return Task.CompletedTask; } - protected virtual Task OnCreatedEntityAsync() + protected virtual async Task OnCreatedEntityAsync() { + await GetEntitiesAsync(); + CreateModal.Hide(); - return Task.CompletedTask; } protected virtual async Task UpdateEntityAsync() @@ -388,7 +388,6 @@ namespace Volo.Abp.BlazoriseUI await CheckUpdatePolicyAsync(); var updateInput = MapToUpdateInput(EditingEntity); await AppService.UpdateAsync(EditingEntityId, updateInput); - await GetEntitiesAsync(); await OnUpdatedEntityAsync(); } @@ -399,10 +398,11 @@ namespace Volo.Abp.BlazoriseUI return Task.CompletedTask; } - protected virtual Task OnUpdatedEntityAsync() + protected virtual async Task OnUpdatedEntityAsync() { + await GetEntitiesAsync(); + EditModal.Hide(); - return Task.CompletedTask; } protected virtual async Task DeleteEntityAsync(TListViewModel entity) From 2bf5b81662204d59dbab8aa8cbe1e61b41eee15d Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Wed, 20 Jan 2021 10:04:09 +0100 Subject: [PATCH 109/309] Optimize StateHasChanged to use InvokeAsync --- framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 65bb82feff..99d0f2a4c3 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -269,7 +269,7 @@ namespace Volo.Abp.BlazoriseUI await GetEntitiesAsync(); - StateHasChanged(); + await InvokeAsync(StateHasChanged); } protected virtual async Task OnDataGridReadAsync(DataGridReadDataEventArgs e) @@ -282,7 +282,7 @@ namespace Volo.Abp.BlazoriseUI await GetEntitiesAsync(); - StateHasChanged(); + await InvokeAsync(StateHasChanged); } protected virtual async Task OpenCreateModalAsync() @@ -295,7 +295,7 @@ namespace Volo.Abp.BlazoriseUI // Mapper will not notify Blazor that binded values are changed // so we need to notify it manually by calling StateHasChanged - await InvokeAsync(() => StateHasChanged()); + await InvokeAsync(StateHasChanged); CreateModal.Show(); } @@ -317,7 +317,7 @@ namespace Volo.Abp.BlazoriseUI EditingEntityId = entity.Id; EditingEntity = MapToEditingEntity(entityDto); - await InvokeAsync(() => StateHasChanged()); + await InvokeAsync(StateHasChanged); EditModal.Show(); } From d569511af7ad3c07a3d1b504230b862839d6c0cd Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 17:05:53 +0800 Subject: [PATCH 110/309] Add CancellationToken optional parameter to the BackgroundJobs module repository methods --- .../Volo/Abp/BackgroundJobs/IBackgroundJobRepository.cs | 5 +++-- .../EntityFrameworkCore/EfCoreBackgroundJobRepository.cs | 7 +++++-- .../BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs | 7 +++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/IBackgroundJobRepository.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/IBackgroundJobRepository.cs index e12aeff70a..0fdf15de4b 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/IBackgroundJobRepository.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/IBackgroundJobRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -7,6 +8,6 @@ namespace Volo.Abp.BackgroundJobs { public interface IBackgroundJobRepository : IBasicRepository { - Task> GetWaitingListAsync(int maxResultCount); + Task> GetWaitingListAsync(int maxResultCount, CancellationToken cancellationToken = default); } -} \ No newline at end of file +} diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs index 1971faf380..a4512a6e16 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; @@ -21,9 +22,11 @@ namespace Volo.Abp.BackgroundJobs.EntityFrameworkCore Clock = clock; } - public virtual async Task> GetWaitingListAsync(int maxResultCount) + public virtual async Task> GetWaitingListAsync( + int maxResultCount, + CancellationToken cancellationToken) { - return await (await GetWaitingListQueryAsync(maxResultCount)).ToListAsync(); + return await (await GetWaitingListQueryAsync(maxResultCount)).ToListAsync(GetCancellationToken(cancellationToken)); } protected virtual async Task> GetWaitingListQueryAsync(int maxResultCount) diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs index 258c9310e2..88d28616a1 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; @@ -21,9 +22,11 @@ namespace Volo.Abp.BackgroundJobs.MongoDB Clock = clock; } - public virtual async Task> GetWaitingListAsync(int maxResultCount) + public virtual async Task> GetWaitingListAsync( + int maxResultCount, + CancellationToken cancellationToken) { - return await (await GetWaitingListQuery(maxResultCount)).ToListAsync(); + return await (await GetWaitingListQuery(maxResultCount)).ToListAsync(GetCancellationToken(cancellationToken)); } protected virtual async Task> GetWaitingListQuery(int maxResultCount) From 3da17ba365c4b9f582abb4b2d1b9a542b0a00f32 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 17:32:32 +0800 Subject: [PATCH 111/309] Add CancellationToken optional parameter to the Blogging module repository methods --- .../Volo/Blogging/Blogs/IBlogRepository.cs | 3 ++- .../Blogging/Comments/ICommentRepository.cs | 11 ++++---- .../Volo/Blogging/Posts/IPostRepository.cs | 9 ++++--- .../Volo/Blogging/Tagging/ITagRepository.cs | 8 +++--- .../Blogging/Blogs/EfCoreBlogRepository.cs | 5 ++-- .../Comments/EfCoreCommentRepository.cs | 17 +++++++------ .../Blogging/Posts/EfCorePostRepository.cs | 19 +++++++------- .../Blogging/Tagging/EfCoreTagRepository.cs | 16 ++++++------ .../Blogging/Blogs/MongoBlogRepository.cs | 5 ++-- .../Comments/MongoCommentRepository.cs | 25 ++++++++++--------- .../Blogging/Posts/MongoPostRepository.cs | 23 +++++++++-------- .../Blogging/Tagging/MongoTagRepository.cs | 18 ++++++------- .../Blogging/Users/MongoBlogUserRepository.cs | 6 ++--- 13 files changed, 86 insertions(+), 79 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Blogs/IBlogRepository.cs b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Blogs/IBlogRepository.cs index ade8d1be0e..37dbf85ddd 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Blogs/IBlogRepository.cs +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Blogs/IBlogRepository.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -6,6 +7,6 @@ namespace Volo.Blogging.Blogs { public interface IBlogRepository : IBasicRepository { - Task FindByShortNameAsync(string shortName); + Task FindByShortNameAsync(string shortName, CancellationToken cancellationToken = default); } } diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Comments/ICommentRepository.cs b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Comments/ICommentRepository.cs index 88ff91d516..65144cf5c2 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Comments/ICommentRepository.cs +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Comments/ICommentRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -7,14 +8,12 @@ namespace Volo.Blogging.Comments { public interface ICommentRepository : IBasicRepository { - Task> GetListOfPostAsync( - Guid postId - ); + Task> GetListOfPostAsync(Guid postId, CancellationToken cancellationToken = default); - Task GetCommentCountOfPostAsync(Guid postId); + Task GetCommentCountOfPostAsync(Guid postId, CancellationToken cancellationToken = default); - Task> GetRepliesOfComment(Guid id); + Task> GetRepliesOfComment(Guid id, CancellationToken cancellationToken = default); - Task DeleteOfPost(Guid id); + Task DeleteOfPost(Guid id, CancellationToken cancellationToken = default); } } diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Posts/IPostRepository.cs b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Posts/IPostRepository.cs index 9a49590015..b5446515bf 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Posts/IPostRepository.cs +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Posts/IPostRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -7,12 +8,12 @@ namespace Volo.Blogging.Posts { public interface IPostRepository : IBasicRepository { - Task> GetPostsByBlogId(Guid id); + Task> GetPostsByBlogId(Guid id, CancellationToken cancellationToken = default); - Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null); + Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null, CancellationToken cancellationToken = default); - Task GetPostByUrl(Guid blogId, string url); + Task GetPostByUrl(Guid blogId, string url, CancellationToken cancellationToken = default); - Task> GetOrderedList(Guid blogId,bool descending = false); + Task> GetOrderedList(Guid blogId,bool descending = false, CancellationToken cancellationToken = default); } } diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Tagging/ITagRepository.cs b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Tagging/ITagRepository.cs index 8c076c49d7..12aa0031ed 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Tagging/ITagRepository.cs +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Tagging/ITagRepository.cs @@ -8,13 +8,13 @@ namespace Volo.Blogging.Tagging { public interface ITagRepository : IBasicRepository { - Task> GetListAsync(Guid blogId); + Task> GetListAsync(Guid blogId, CancellationToken cancellationToken = default); - Task GetByNameAsync(Guid blogId, string name); + Task GetByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default); - Task FindByNameAsync(Guid blogId, string name); + Task FindByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default); - Task> GetListAsync(IEnumerable ids); + Task> GetListAsync(IEnumerable ids, CancellationToken cancellationToken = default); Task DecreaseUsageCountOfTagsAsync(List id, CancellationToken cancellationToken = default); } diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Blogs/EfCoreBlogRepository.cs b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Blogs/EfCoreBlogRepository.cs index 564d45dc7a..d5397a66f0 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Blogs/EfCoreBlogRepository.cs +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Blogs/EfCoreBlogRepository.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; @@ -15,9 +16,9 @@ namespace Volo.Blogging.Blogs } - public async Task FindByShortNameAsync(string shortName) + public async Task FindByShortNameAsync(string shortName, CancellationToken cancellationToken = default) { - return await (await GetDbSetAsync()).FirstOrDefaultAsync(p => p.ShortName == shortName); + return await (await GetDbSetAsync()).FirstOrDefaultAsync(p => p.ShortName == shortName, GetCancellationToken(cancellationToken)); } } } diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Comments/EfCoreCommentRepository.cs b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Comments/EfCoreCommentRepository.cs index 6c28b521aa..801ef07825 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Comments/EfCoreCommentRepository.cs +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Comments/EfCoreCommentRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; @@ -16,29 +17,29 @@ namespace Volo.Blogging.Comments { } - public async Task> GetListOfPostAsync(Guid postId) + public async Task> GetListOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .Where(a => a.PostId == postId) .OrderBy(a => a.CreationTime) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task GetCommentCountOfPostAsync(Guid postId) + public async Task GetCommentCountOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) - .CountAsync(a => a.PostId == postId); + .CountAsync(a => a.PostId == postId, GetCancellationToken(cancellationToken)); } - public async Task> GetRepliesOfComment(Guid id) + public async Task> GetRepliesOfComment(Guid id, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) - .Where(a => a.RepliedCommentId == id).ToListAsync(); + .Where(a => a.RepliedCommentId == id).ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task DeleteOfPost(Guid id) + public async Task DeleteOfPost(Guid id, CancellationToken cancellationToken = default) { - var recordsToDelete = (await GetDbSetAsync()).Where(pt => pt.PostId == id); + var recordsToDelete = await (await GetDbSetAsync()).Where(pt => pt.PostId == id).ToListAsync(GetCancellationToken(cancellationToken)); (await GetDbSetAsync()).RemoveRange(recordsToDelete); } } diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Posts/EfCorePostRepository.cs b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Posts/EfCorePostRepository.cs index a5a84fd340..a676816dee 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Posts/EfCorePostRepository.cs +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Posts/EfCorePostRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Entities; @@ -18,12 +19,12 @@ namespace Volo.Blogging.Posts } - public async Task> GetPostsByBlogId(Guid id) + public async Task> GetPostsByBlogId(Guid id, CancellationToken cancellationToken = default) { - return await (await GetDbSetAsync()).Where(p => p.BlogId == id).OrderByDescending(p=>p.CreationTime).ToListAsync(); + return await (await GetDbSetAsync()).Where(p => p.BlogId == id).OrderByDescending(p=>p.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null) + public async Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null, CancellationToken cancellationToken = default) { var query = (await GetDbSetAsync()).Where(p => blogId == p.BlogId && p.Url == url); @@ -32,12 +33,12 @@ namespace Volo.Blogging.Posts query = query.Where(p => excludingPostId != p.Id); } - return await query.AnyAsync(); + return await query.AnyAsync(GetCancellationToken(cancellationToken)); } - public async Task GetPostByUrl(Guid blogId, string url) + public async Task GetPostByUrl(Guid blogId, string url, CancellationToken cancellationToken = default) { - var post = await (await GetDbSetAsync()).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url); + var post = await (await GetDbSetAsync()).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url, GetCancellationToken(cancellationToken)); if (post == null) { @@ -47,15 +48,15 @@ namespace Volo.Blogging.Posts return post; } - public async Task> GetOrderedList(Guid blogId,bool descending = false) + public async Task> GetOrderedList(Guid blogId,bool descending = false, CancellationToken cancellationToken = default) { if (!descending) { - return await (await GetDbSetAsync()).Where(x=>x.BlogId==blogId).OrderByDescending(x => x.CreationTime).ToListAsync(); + return await (await GetDbSetAsync()).Where(x=>x.BlogId==blogId).OrderByDescending(x => x.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } else { - return await (await GetDbSetAsync()).Where(x => x.BlogId == blogId).OrderBy(x => x.CreationTime).ToListAsync(); + return await (await GetDbSetAsync()).Where(x => x.BlogId == blogId).OrderBy(x => x.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } } diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Tagging/EfCoreTagRepository.cs b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Tagging/EfCoreTagRepository.cs index a92ae780da..0a33207374 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Tagging/EfCoreTagRepository.cs +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Tagging/EfCoreTagRepository.cs @@ -17,24 +17,24 @@ namespace Volo.Blogging.Tagging { } - public async Task> GetListAsync(Guid blogId) + public async Task> GetListAsync(Guid blogId, CancellationToken cancellationToken = default) { - return await (await GetDbSetAsync()).Where(t=>t.BlogId == blogId).ToListAsync(); + return await (await GetDbSetAsync()).Where(t=>t.BlogId == blogId).ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task GetByNameAsync(Guid blogId, string name) + public async Task GetByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetDbSetAsync()).FirstAsync(t=> t.BlogId == blogId && t.Name == name); + return await (await GetDbSetAsync()).FirstAsync(t=> t.BlogId == blogId && t.Name == name, GetCancellationToken(cancellationToken)); } - public async Task FindByNameAsync(Guid blogId, string name) + public async Task FindByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetDbSetAsync()).FirstOrDefaultAsync(t => t.BlogId == blogId && t.Name == name); + return await (await GetDbSetAsync()).FirstOrDefaultAsync(t => t.BlogId == blogId && t.Name == name, GetCancellationToken(cancellationToken)); } - public async Task> GetListAsync(IEnumerable ids) + public async Task> GetListAsync(IEnumerable ids, CancellationToken cancellationToken = default) { - return await (await GetDbSetAsync()).Where(t => ids.Contains(t.Id)).ToListAsync(); + return await (await GetDbSetAsync()).Where(t => ids.Contains(t.Id)).ToListAsync(GetCancellationToken(cancellationToken)); } public async Task DecreaseUsageCountOfTagsAsync(List ids, CancellationToken cancellationToken = default) diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs index 6025dfe3ca..0ef6b70a88 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; @@ -13,9 +14,9 @@ namespace Volo.Blogging.Blogs { } - public async Task FindByShortNameAsync(string shortName) + public async Task FindByShortNameAsync(string shortName, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()).FirstOrDefaultAsync(p => p.ShortName == shortName); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(p => p.ShortName == shortName, GetCancellationToken(cancellationToken)); } } } diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs index bbbe60345b..cfeb24475a 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; @@ -15,33 +16,33 @@ namespace Volo.Blogging.Comments { } - public async Task> GetListOfPostAsync(Guid postId) + public async Task> GetListOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(a => a.PostId == postId) .OrderBy(a => a.CreationTime) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task GetCommentCountOfPostAsync(Guid postId) + public async Task GetCommentCountOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) - .CountAsync(a => a.PostId == postId); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + .CountAsync(a => a.PostId == postId, GetCancellationToken(cancellationToken)); } - public async Task> GetRepliesOfComment(Guid id) + public async Task> GetRepliesOfComment(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) - .Where(a => a.RepliedCommentId == id).ToListAsync(); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + .Where(a => a.RepliedCommentId == id).ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task DeleteOfPost(Guid id) + public async Task DeleteOfPost(Guid id, CancellationToken cancellationToken = default) { - var recordsToDelete = (await GetMongoQueryableAsync()).Where(pt => pt.PostId == id); + var recordsToDelete = (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(pt => pt.PostId == id); foreach (var record in recordsToDelete) { - await DeleteAsync(record); + await DeleteAsync(record, cancellationToken: GetCancellationToken(cancellationToken)); } } } diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs index 27f4ad4348..ec40e8da4a 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; @@ -16,27 +17,27 @@ namespace Volo.Blogging.Posts { } - public async Task> GetPostsByBlogId(Guid id) + public async Task> GetPostsByBlogId(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()).Where(p => p.BlogId == id).OrderByDescending(p => p.CreationTime).ToListAsync(); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(p => p.BlogId == id).OrderByDescending(p => p.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null) + public async Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync()).Where(p => blogId == p.BlogId && p.Url == url); + var query = (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(p => blogId == p.BlogId && p.Url == url); if (excludingPostId != null) { query = query.Where(p => excludingPostId != p.Id); } - return await query.AnyAsync(); + return await query.AnyAsync(GetCancellationToken(cancellationToken)); } - public async Task GetPostByUrl(Guid blogId, string url) + public async Task GetPostByUrl(Guid blogId, string url, CancellationToken cancellationToken = default) { - var post = await (await GetMongoQueryableAsync()).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url); + var post = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url, GetCancellationToken(cancellationToken)); if (post == null) { @@ -46,16 +47,16 @@ namespace Volo.Blogging.Posts return post; } - public async Task> GetOrderedList(Guid blogId, bool @descending = false) + public async Task> GetOrderedList(Guid blogId, bool @descending = false, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync()).Where(x => x.BlogId == blogId); + var query = (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(x => x.BlogId == blogId); if (!descending) { - return await query.OrderBy(x => x.CreationTime).ToListAsync(); + return await query.OrderBy(x => x.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } - return await query.OrderByDescending(x => x.CreationTime).ToListAsync(); + return await query.OrderByDescending(x => x.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } } } diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs index f0024b37d7..73999628ce 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs @@ -18,29 +18,29 @@ namespace Volo.Blogging.Tagging { } - public async Task> GetListAsync(Guid blogId) + public async Task> GetListAsync(Guid blogId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()).Where(t => t.BlogId == blogId).ToListAsync(); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => t.BlogId == blogId).ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task GetByNameAsync(Guid blogId, string name) + public async Task GetByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()).Where(t => t.BlogId == blogId && t.Name == name).FirstAsync(); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => t.BlogId == blogId && t.Name == name).FirstAsync(GetCancellationToken(cancellationToken)); } - public async Task FindByNameAsync(Guid blogId, string name) + public async Task FindByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()).Where(t => t.BlogId == blogId && t.Name == name).FirstOrDefaultAsync(); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => t.BlogId == blogId && t.Name == name).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } - public async Task> GetListAsync(IEnumerable ids) + public async Task> GetListAsync(IEnumerable ids, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()).Where(t => ids.Contains(t.Id)).ToListAsync(); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => ids.Contains(t.Id)).ToListAsync(GetCancellationToken(cancellationToken)); } public async Task DecreaseUsageCountOfTagsAsync(List ids, CancellationToken cancellationToken = default) { - var tags = await (await GetMongoQueryableAsync()) + var tags = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(t => ids.Contains(t.Id)) .ToListAsync(GetCancellationToken(cancellationToken)); diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs index fdcf4d0097..c558799a86 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs @@ -15,16 +15,16 @@ namespace Volo.Blogging.Users { } - public async Task> GetUsersAsync(int maxCount, string filter, CancellationToken cancellationToken) + public async Task> GetUsersAsync(int maxCount, string filter, CancellationToken cancellationToken = default) { - var query = await GetMongoQueryableAsync(cancellationToken); + var query = await GetMongoQueryableAsync(GetCancellationToken(cancellationToken)); if (!string.IsNullOrWhiteSpace(filter)) { query = query.Where(x => x.UserName.Contains(filter)); } - return await query.Take(maxCount).ToListAsync(cancellationToken); + return await query.Take(maxCount).ToListAsync(GetCancellationToken(cancellationToken)); } } } From dd56dd405d2292fded4b39f5459f97042e58f185 Mon Sep 17 00:00:00 2001 From: Ahmet Date: Wed, 20 Jan 2021 12:42:36 +0300 Subject: [PATCH 112/309] Page content converted to nullable --- .../Contents/ContentViewComponent.cs | 32 +++++++++++-------- .../Shared/Components/Contents/Default.cshtml | 2 +- .../Shared/Components/Pages/Default.cshtml | 12 +++---- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/ContentViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/ContentViewComponent.cs index 129bff61cf..6a2a4e5a13 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/ContentViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/ContentViewComponent.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Domain.Entities; using Volo.CmsKit.Public.Contents; using Volo.CmsKit.Web.Contents; @@ -25,18 +26,26 @@ namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Contents string entityType, string entityId) { - var content = await contentAppService.GetAsync(new GetContentInput + var content = string.Empty; + + try { - EntityId = entityId, - EntityType = entityType - }); + var contentDto = await contentAppService.GetAsync(new GetContentInput + { + EntityId = entityId, + EntityType = entityType + }); + + content = contentDto.Value; + } + catch (EntityNotFoundException e) + { + // ContentDto can be null, we will render empty content. + } var viewModel = new ContentViewModel { - EntityId = entityId, - EntityType = entityType, - ContentId = content.Id, - Rendered = await contentRenderer.RenderAsync(content.Value) + Value = await contentRenderer.RenderAsync(content) }; return View("~/Pages/CmsKit/Shared/Components/Contents/Default.cshtml", viewModel); @@ -44,12 +53,7 @@ namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Contents public class ContentViewModel { - public Guid ContentId { get; set; } - public string EntityType { get; set; } - - public string EntityId { get; set; } - - public string Rendered { get; set; } + public string Value { get; set; } } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/Default.cshtml index 29f7bfa6a3..0f1ddedfe5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Contents/Default.cshtml @@ -1,3 +1,3 @@ @model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Contents.ContentViewComponent.ContentViewModel -@Html.Raw(Model.Rendered) +@Html.Raw(Model.Value) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml index 28af196e39..e10fa0754a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml @@ -1,16 +1,16 @@ @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap @using Microsoft.AspNetCore.Mvc.RazorPages +@using Volo.Abp.AspNetCore.Mvc.UI.Layout @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Contents @model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages.PageViewModel +@inject IPageLayout PageLayout + +@{ + PageLayout.Content.Title = Model.Title; +} - -

    - @Model.Title -

    -
    - @await Component.InvokeAsync(typeof(ContentViewComponent), new From 746dc8a1e03bc314d5c7f9e0380329e404db4446 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 17:45:12 +0800 Subject: [PATCH 113/309] Add CancellationToken optional parameter to the Docs module repository methods --- .../Volo/Docs/Projects/IProjectRepository.cs | 9 +++++---- .../Volo/Docs/Projects/EfCoreProjectRepository.cs | 13 +++++++------ .../Volo/Docs/Projects/MongoProjectRepository.cs | 15 ++++++++------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs index add77749b4..4893ab4114 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -7,10 +8,10 @@ namespace Volo.Docs.Projects { public interface IProjectRepository : IBasicRepository { - Task> GetListAsync(string sorting, int maxResultCount, int skipCount); + Task> GetListAsync(string sorting, int maxResultCount, int skipCount, CancellationToken cancellationToken = default); - Task GetByShortNameAsync(string shortName); + Task GetByShortNameAsync(string shortName, CancellationToken cancellationToken = default); - Task ShortNameExistsAsync(string shortName); + Task ShortNameExistsAsync(string shortName, CancellationToken cancellationToken = default); } -} \ No newline at end of file +} diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs index bf92a8a795..294241c992 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Dynamic.Core; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Entities; @@ -18,20 +19,20 @@ namespace Volo.Docs.Projects { } - public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount) + public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, CancellationToken cancellationToken = default) { var projects = await (await GetDbSetAsync()).OrderBy(sorting ?? "Id desc") .PageBy(skipCount, maxResultCount) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); return projects; } - public async Task GetByShortNameAsync(string shortName) + public async Task GetByShortNameAsync(string shortName, CancellationToken cancellationToken = default) { var normalizeShortName = NormalizeShortName(shortName); - var project = await (await GetDbSetAsync()).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName); + var project = await (await GetDbSetAsync()).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); if (project == null) { @@ -41,11 +42,11 @@ namespace Volo.Docs.Projects return project; } - public async Task ShortNameExistsAsync(string shortName) + public async Task ShortNameExistsAsync(string shortName, CancellationToken cancellationToken = default) { var normalizeShortName = NormalizeShortName(shortName); - return await (await GetDbSetAsync()).AnyAsync(x => x.ShortName == normalizeShortName); + return await (await GetDbSetAsync()).AnyAsync(x => x.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); } private string NormalizeShortName(string shortName) diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs index 91f1af9b2a..1e9fe1be4f 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs @@ -9,6 +9,7 @@ using Volo.Abp.MongoDB; using Volo.Docs.MongoDB; using System.Linq; using System.Linq.Dynamic.Core; +using System.Threading; namespace Volo.Docs.Projects { @@ -19,20 +20,20 @@ namespace Volo.Docs.Projects { } - public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount) + public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, CancellationToken cancellationToken = default) { - var projects = await (await GetMongoQueryableAsync()).OrderBy(sorting ?? "Id desc").As>() + var projects = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).OrderBy(sorting ?? "Id desc").As>() .PageBy>(skipCount, maxResultCount) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); return projects; } - public async Task GetByShortNameAsync(string shortName) + public async Task GetByShortNameAsync(string shortName, CancellationToken cancellationToken = default) { var normalizeShortName = NormalizeShortName(shortName); - var project = await (await GetMongoQueryableAsync()).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName); + var project = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); if (project == null) { @@ -42,11 +43,11 @@ namespace Volo.Docs.Projects return project; } - public async Task ShortNameExistsAsync(string shortName) + public async Task ShortNameExistsAsync(string shortName, CancellationToken cancellationToken = default) { var normalizeShortName = NormalizeShortName(shortName); - return await (await GetMongoQueryableAsync()).AnyAsync(x => x.ShortName == normalizeShortName); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).AnyAsync(x => x.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); } private string NormalizeShortName(string shortName) From 590176f221b55ef42600dc6aff3d556643fc0f3f Mon Sep 17 00:00:00 2001 From: Ahmet Date: Wed, 20 Jan 2021 12:47:43 +0300 Subject: [PATCH 114/309] Added interface to page public controller --- .../Volo/CmsKit/Public/Pages/PagesPublicController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs index 4d1c5391c7..a9c6cd70e4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs @@ -7,7 +7,7 @@ namespace Volo.CmsKit.Public.Pages [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Route("api/cms-kit-public/comments")] - public class PagesPublicController + public class PagesPublicController : IPageAppService { protected readonly IPageAppService PageAppService; @@ -18,7 +18,7 @@ namespace Volo.CmsKit.Public.Pages [HttpGet] [Route("url/{url}")] - public Task GetByUrlAsync(string url) + public Task FindByUrlAsync(string url) { return PageAppService.FindByUrlAsync(url); } From 630c7610cfbe8f1086cfb6e6c6bc71fb0dd1dc5d Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 17:50:55 +0800 Subject: [PATCH 115/309] Add CancellationToken optional parameter to the feature-management module repository methods --- .../IFeatureValueRepository.cs | 18 +++++++++-- .../EfCoreFeatureValueRepository.cs | 26 +++++++++++----- .../MongoDB/MongoFeatureValueRepository.cs | 30 +++++++++++++------ 3 files changed, 54 insertions(+), 20 deletions(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureValueRepository.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureValueRepository.cs index f5b5c85da4..800424e901 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureValueRepository.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureValueRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -7,10 +8,21 @@ namespace Volo.Abp.FeatureManagement { public interface IFeatureValueRepository : IBasicRepository { - Task FindAsync(string name, string providerName, string providerKey); + Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default); - Task> FindAllAsync(string name, string providerName, string providerKey); + Task> FindAllAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default); - Task> GetListAsync(string providerName, string providerKey); + Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default); } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs index be75e600d8..8256b08c2d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; @@ -15,29 +16,38 @@ namespace Volo.Abp.FeatureManagement.EntityFrameworkCore { } - public virtual async Task FindAsync(string name, string providerName, string providerKey) + public virtual async Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .OrderBy(x => x.Id) - .FirstOrDefaultAsync( - s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey - ); + .FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, GetCancellationToken(cancellationToken)); } - public async Task> FindAllAsync(string name, string providerName, string providerKey) + public async Task> FindAllAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .Where( s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey - ).ToListAsync(); + ).ToListAsync(GetCancellationToken(cancellationToken)); } - public virtual async Task> GetListAsync(string providerName, string providerKey) + public virtual async Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .Where( s => s.ProviderName == providerName && s.ProviderKey == providerKey - ).ToListAsync(); + ).ToListAsync(GetCancellationToken(cancellationToken)); } } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs index 21d4784f6e..5547997251 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; @@ -16,24 +17,35 @@ namespace Volo.Abp.FeatureManagement.MongoDB } - public virtual async Task FindAsync(string name, string providerName, string providerKey) + public virtual async Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .OrderBy(x => x.Id) - .FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey); + .FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, GetCancellationToken(cancellationToken)); } - public async Task> FindAllAsync(string name, string providerName, string providerKey) + public async Task> FindAllAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) - .Where(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey).ToListAsync(); + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + .Where(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey).ToListAsync(GetCancellationToken(cancellationToken)); } - public virtual async Task> GetListAsync(string providerName, string providerKey) + public virtual async Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); } } } From 07c4d157e8af4e79fe2c2a18536eff8c0a5ad9b9 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 18:02:44 +0800 Subject: [PATCH 116/309] Add CancellationToken optional parameter to the setting-management module repository methods --- .../SettingManagement/ISettingRepository.cs | 18 ++++++++-- .../EfCoreSettingRepository.cs | 29 ++++++++++----- .../MongoDB/MongoSettingRepository.cs | 36 +++++++++++++------ 3 files changed, 61 insertions(+), 22 deletions(-) diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs index a1e40f3a14..ee8cfa64a8 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -7,10 +8,21 @@ namespace Volo.Abp.SettingManagement { public interface ISettingRepository : IBasicRepository { - Task FindAsync(string name, string providerName, string providerKey); + Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default); - Task> GetListAsync(string providerName, string providerKey); + Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default); - Task> GetListAsync(string[] names, string providerName, string providerKey); + Task> GetListAsync( + string[] names, + string providerName, + string providerKey, + CancellationToken cancellationToken = default); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs index e90d2fc63a..4bab46315a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; @@ -8,36 +9,48 @@ using Volo.Abp.EntityFrameworkCore; namespace Volo.Abp.SettingManagement.EntityFrameworkCore { - public class EfCoreSettingRepository : EfCoreRepository, ISettingRepository + public class EfCoreSettingRepository : EfCoreRepository, + ISettingRepository { public EfCoreSettingRepository(IDbContextProvider dbContextProvider) : base(dbContextProvider) { } - public virtual async Task FindAsync(string name, string providerName, string providerKey) + public virtual async Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .OrderBy(x => x.Id) .FirstOrDefaultAsync( - s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey - ); + s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, + GetCancellationToken(cancellationToken)); } - public virtual async Task> GetListAsync(string providerName, string providerKey) + public virtual async Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .Where( s => s.ProviderName == providerName && s.ProviderKey == providerKey - ).ToListAsync(); + ).ToListAsync(GetCancellationToken(cancellationToken)); } - public virtual async Task> GetListAsync(string[] names, string providerName, string providerKey) + public virtual async Task> GetListAsync( + string[] names, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) .Where( s => names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey - ).ToListAsync(); + ).ToListAsync(GetCancellationToken(cancellationToken)); } } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs index e81e76dfcc..fc01f79132 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; @@ -9,33 +10,46 @@ using Volo.Abp.MongoDB; namespace Volo.Abp.SettingManagement.MongoDB { - public class MongoSettingRepository : MongoDbRepository, ISettingRepository + public class MongoSettingRepository : MongoDbRepository, + ISettingRepository { public MongoSettingRepository(IMongoDbContextProvider dbContextProvider) : base(dbContextProvider) { - } - public virtual async Task FindAsync(string name, string providerName, string providerKey) + public virtual async Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .OrderBy(x => x.Id) - .FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey); + .FirstOrDefaultAsync( + s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, + GetCancellationToken(cancellationToken)); } - public virtual async Task> GetListAsync(string providerName, string providerKey) + public virtual async Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); } - public virtual async Task> GetListAsync(string[] names, string providerName, string providerKey) + public virtual async Task> GetListAsync( + string[] names, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) + return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) .Where(s => names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); } } } From 3ce47a2525d44ee96b2cbad81ba5f978a198488d Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 18:29:32 +0800 Subject: [PATCH 117/309] Improve --- .../MongoDB/MongoAuditLogRepository.cs | 28 +++++++++++-------- .../EfCoreBackgroundJobRepository.cs | 2 +- .../Blogging/Blogs/MongoBlogRepository.cs | 2 +- .../Comments/MongoCommentRepository.cs | 8 +++--- .../Blogging/Posts/MongoPostRepository.cs | 8 +++--- .../Blogging/Tagging/MongoTagRepository.cs | 10 +++---- .../Blogging/Users/MongoBlogUserRepository.cs | 2 +- .../MongoDB/Pages/MongoPageRepository.cs | 2 +- .../Docs/Projects/MongoProjectRepository.cs | 6 ++-- .../MongoDB/MongoFeatureValueRepository.cs | 6 ++-- .../MongoDB/MongoSettingRepository.cs | 6 ++-- 11 files changed, 42 insertions(+), 38 deletions(-) diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs index ce3c0e18c8..e0ce5990b7 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs @@ -52,7 +52,8 @@ namespace Volo.Abp.AuditLogging.MongoDB minDuration, hasException, httpStatusCode, - includeDetails + includeDetails, + cancellationToken ); return await query.OrderBy(sorting ?? "executionTime desc").As>() @@ -85,7 +86,8 @@ namespace Volo.Abp.AuditLogging.MongoDB maxDuration, minDuration, hasException, - httpStatusCode + httpStatusCode, + cancellationToken: cancellationToken ); var count = await query.As>() @@ -106,9 +108,10 @@ namespace Volo.Abp.AuditLogging.MongoDB int? minDuration = null, bool? hasException = null, HttpStatusCode? httpStatusCode = null, - bool includeDetails = false) + bool includeDetails = false, + CancellationToken cancellationToken = default) { - return (await GetMongoQueryableAsync()) + return (await GetMongoQueryableAsync(cancellationToken)) .WhereIf(startTime.HasValue, auditLog => auditLog.ExecutionTime >= startTime) .WhereIf(endTime.HasValue, auditLog => auditLog.ExecutionTime <= endTime) .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null && auditLog.Exceptions != "") @@ -129,7 +132,7 @@ namespace Volo.Abp.AuditLogging.MongoDB DateTime endDate, CancellationToken cancellationToken = default) { - var result = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + var result = await (await GetMongoQueryableAsync(cancellationToken)) .Where(a => a.ExecutionTime < endDate.AddDays(1) && a.ExecutionTime > startDate) .OrderBy(t => t.ExecutionTime) .GroupBy(t => new @@ -148,7 +151,7 @@ namespace Volo.Abp.AuditLogging.MongoDB Guid entityChangeId, CancellationToken cancellationToken = default) { - var entityChange = (await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + var entityChange = (await (await GetMongoQueryableAsync(cancellationToken)) .Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId)) .OrderBy(x => x.Id) .FirstAsync(GetCancellationToken(cancellationToken))).EntityChanges.FirstOrDefault(x => x.Id == entityChangeId); @@ -174,7 +177,7 @@ namespace Volo.Abp.AuditLogging.MongoDB bool includeDetails = false, CancellationToken cancellationToken = default) { - var query = await GetEntityChangeListQueryAsync(auditLogId, startTime, endTime, changeType, entityId, entityTypeFullName); + var query = await GetEntityChangeListQueryAsync(auditLogId, startTime, endTime, changeType, entityId, entityTypeFullName, cancellationToken); return await query .OrderBy(sorting ?? "changeTime desc") @@ -192,7 +195,7 @@ namespace Volo.Abp.AuditLogging.MongoDB string entityTypeFullName = null, CancellationToken cancellationToken = default) { - var query = await GetEntityChangeListQueryAsync(auditLogId, startTime, endTime, changeType, entityId, entityTypeFullName); + var query = await GetEntityChangeListQueryAsync(auditLogId, startTime, endTime, changeType, entityId, entityTypeFullName, cancellationToken); var count = await query.As>().LongCountAsync(GetCancellationToken(cancellationToken)); @@ -203,7 +206,7 @@ namespace Volo.Abp.AuditLogging.MongoDB Guid entityChangeId, CancellationToken cancellationToken = default) { - var auditLog = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + var auditLog = await (await GetMongoQueryableAsync(cancellationToken)) .Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId)) .FirstAsync(GetCancellationToken(cancellationToken)); @@ -219,7 +222,7 @@ namespace Volo.Abp.AuditLogging.MongoDB string entityTypeFullName, CancellationToken cancellationToken = default) { - var auditLogs = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + var auditLogs = await (await GetMongoQueryableAsync(cancellationToken)) .Where(x => x.EntityChanges.Any(y => y.EntityId == entityId && y.EntityTypeFullName == entityTypeFullName)) .As>() .OrderByDescending(x => x.ExecutionTime) @@ -239,9 +242,10 @@ namespace Volo.Abp.AuditLogging.MongoDB DateTime? endTime = null, EntityChangeType? changeType = null, string entityId = null, - string entityTypeFullName = null) + string entityTypeFullName = null, + CancellationToken cancellationToken = default) { - return (await GetMongoQueryableAsync()) + return (await GetMongoQueryableAsync(cancellationToken)) .SelectMany(x => x.EntityChanges) .WhereIf(auditLogId.HasValue, e => e.Id == auditLogId) .WhereIf(startTime.HasValue, e => e.ChangeTime >= startTime) diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs index a4512a6e16..3ae5d2a409 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/EfCoreBackgroundJobRepository.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.BackgroundJobs.EntityFrameworkCore public virtual async Task> GetWaitingListAsync( int maxResultCount, - CancellationToken cancellationToken) + CancellationToken cancellationToken = default) { return await (await GetWaitingListQueryAsync(maxResultCount)).ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs index 0ef6b70a88..2577b8d3a0 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Blogs/MongoBlogRepository.cs @@ -16,7 +16,7 @@ namespace Volo.Blogging.Blogs public async Task FindByShortNameAsync(string shortName, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(p => p.ShortName == shortName, GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.ShortName == shortName, GetCancellationToken(cancellationToken)); } } } diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs index cfeb24475a..689e44abbd 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Comments/MongoCommentRepository.cs @@ -18,7 +18,7 @@ namespace Volo.Blogging.Comments public async Task> GetListOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .Where(a => a.PostId == postId) .OrderBy(a => a.CreationTime) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -26,19 +26,19 @@ namespace Volo.Blogging.Comments public async Task GetCommentCountOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .CountAsync(a => a.PostId == postId, GetCancellationToken(cancellationToken)); } public async Task> GetRepliesOfComment(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .Where(a => a.RepliedCommentId == id).ToListAsync(GetCancellationToken(cancellationToken)); } public async Task DeleteOfPost(Guid id, CancellationToken cancellationToken = default) { - var recordsToDelete = (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(pt => pt.PostId == id); + var recordsToDelete = (await GetMongoQueryableAsync(cancellationToken)).Where(pt => pt.PostId == id); foreach (var record in recordsToDelete) { diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs index ec40e8da4a..a2d79c9466 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Posts/MongoPostRepository.cs @@ -19,13 +19,13 @@ namespace Volo.Blogging.Posts public async Task> GetPostsByBlogId(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(p => p.BlogId == id).OrderByDescending(p => p.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).Where(p => p.BlogId == id).OrderByDescending(p => p.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } public async Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(p => blogId == p.BlogId && p.Url == url); + var query = (await GetMongoQueryableAsync(cancellationToken)).Where(p => blogId == p.BlogId && p.Url == url); if (excludingPostId != null) { @@ -37,7 +37,7 @@ namespace Volo.Blogging.Posts public async Task GetPostByUrl(Guid blogId, string url, CancellationToken cancellationToken = default) { - var post = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url, GetCancellationToken(cancellationToken)); + var post = await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url, GetCancellationToken(cancellationToken)); if (post == null) { @@ -49,7 +49,7 @@ namespace Volo.Blogging.Posts public async Task> GetOrderedList(Guid blogId, bool @descending = false, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(x => x.BlogId == blogId); + var query = (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.BlogId == blogId); if (!descending) { diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs index 73999628ce..2030d47f2d 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs @@ -20,27 +20,27 @@ namespace Volo.Blogging.Tagging public async Task> GetListAsync(Guid blogId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => t.BlogId == blogId).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId).ToListAsync(GetCancellationToken(cancellationToken)); } public async Task GetByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => t.BlogId == blogId && t.Name == name).FirstAsync(GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId && t.Name == name).FirstAsync(GetCancellationToken(cancellationToken)); } public async Task FindByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => t.BlogId == blogId && t.Name == name).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId && t.Name == name).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } public async Task> GetListAsync(IEnumerable ids, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(t => ids.Contains(t.Id)).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => ids.Contains(t.Id)).ToListAsync(GetCancellationToken(cancellationToken)); } public async Task DecreaseUsageCountOfTagsAsync(List ids, CancellationToken cancellationToken = default) { - var tags = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + var tags = await (await GetMongoQueryableAsync(cancellationToken)) .Where(t => ids.Contains(t.Id)) .ToListAsync(GetCancellationToken(cancellationToken)); diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs index c558799a86..5523af8394 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Users/MongoBlogUserRepository.cs @@ -17,7 +17,7 @@ namespace Volo.Blogging.Users public async Task> GetUsersAsync(int maxCount, string filter, CancellationToken cancellationToken = default) { - var query = await GetMongoQueryableAsync(GetCancellationToken(cancellationToken)); + var query = await GetMongoQueryableAsync(cancellationToken); if (!string.IsNullOrWhiteSpace(filter)) { diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Pages/MongoPageRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Pages/MongoPageRepository.cs index cc07afcd4b..af72da56c8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Pages/MongoPageRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Pages/MongoPageRepository.cs @@ -63,7 +63,7 @@ namespace Volo.CmsKit.MongoDB.Pages public virtual async Task ExistsAsync(string url, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).AnyAsync(x => x.Url == url, GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).AnyAsync(x => x.Url == url, GetCancellationToken(cancellationToken)); } } } diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs index 1e9fe1be4f..99aa5a99dd 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs @@ -22,7 +22,7 @@ namespace Volo.Docs.Projects public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, CancellationToken cancellationToken = default) { - var projects = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).OrderBy(sorting ?? "Id desc").As>() + var projects = await (await GetMongoQueryableAsync(cancellationToken)).OrderBy(sorting ?? "Id desc").As>() .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -33,7 +33,7 @@ namespace Volo.Docs.Projects { var normalizeShortName = NormalizeShortName(shortName); - var project = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); + var project = await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); if (project == null) { @@ -47,7 +47,7 @@ namespace Volo.Docs.Projects { var normalizeShortName = NormalizeShortName(shortName); - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).AnyAsync(x => x.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).AnyAsync(x => x.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); } private string NormalizeShortName(string shortName) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs index 5547997251..8f5a659fd8 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs @@ -23,7 +23,7 @@ namespace Volo.Abp.FeatureManagement.MongoDB string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, GetCancellationToken(cancellationToken)); } @@ -34,7 +34,7 @@ namespace Volo.Abp.FeatureManagement.MongoDB string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .Where(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey).ToListAsync(GetCancellationToken(cancellationToken)); } @@ -43,7 +43,7 @@ namespace Volo.Abp.FeatureManagement.MongoDB string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs index fc01f79132..aef9624a4d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.SettingManagement.MongoDB string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync( s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, @@ -36,7 +36,7 @@ namespace Volo.Abp.SettingManagement.MongoDB string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -47,7 +47,7 @@ namespace Volo.Abp.SettingManagement.MongoDB string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetMongoQueryableAsync(cancellationToken)) .Where(s => names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey) .ToListAsync(GetCancellationToken(cancellationToken)); } From 5a6751f10b164e89c0f81fd6760c865fa734ab41 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 20 Jan 2021 18:31:51 +0800 Subject: [PATCH 118/309] Improve --- .../MongoDB/MongoBackgroundJobRepository.cs | 6 +++--- .../CmsKit/MongoDB/Contents/MongoContentRepository.cs | 2 +- .../MongoDB/MongoIdentitySecurityLogRepository.cs | 11 +++++++---- .../MongoDB/MongoPersistedGrantRepository.cs | 9 +++++---- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs index 88d28616a1..56d0bfaff1 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs @@ -24,15 +24,15 @@ namespace Volo.Abp.BackgroundJobs.MongoDB public virtual async Task> GetWaitingListAsync( int maxResultCount, - CancellationToken cancellationToken) + CancellationToken cancellationToken = default) { return await (await GetWaitingListQuery(maxResultCount)).ToListAsync(GetCancellationToken(cancellationToken)); } - protected virtual async Task> GetWaitingListQuery(int maxResultCount) + protected virtual async Task> GetWaitingListQuery(int maxResultCount, CancellationToken cancellationToken = default) { var now = Clock.Now; - return (await GetMongoQueryableAsync()) + return (await GetMongoQueryableAsync(cancellationToken)) .Where(t => !t.IsAbandoned && t.NextTryTime <= now) .OrderByDescending(t => t.Priority) .ThenBy(t => t.TryCount) diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Contents/MongoContentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Contents/MongoContentRepository.cs index f42b0890e7..1068c352d5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Contents/MongoContentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Contents/MongoContentRepository.cs @@ -54,7 +54,7 @@ namespace Volo.CmsKit.MongoDB.Contents public async Task ExistsAsync([NotNull] string entityType, [NotNull] string entityId, Guid? tenantId = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()).AnyAsync(x => + return await (await GetMongoQueryableAsync(cancellationToken)).AnyAsync(x => x.EntityType == entityType && x.EntityId == entityId && x.TenantId == tenantId, diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySecurityLogRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySecurityLogRepository.cs index cc926db139..1ac54cfc82 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySecurityLogRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySecurityLogRepository.cs @@ -44,7 +44,8 @@ namespace Volo.Abp.Identity.MongoDB userId, userName, clientId, - correlationId + correlationId, + cancellationToken ); return await query.OrderBy(sorting ?? nameof(IdentitySecurityLog.CreationTime) + " desc") @@ -74,7 +75,8 @@ namespace Volo.Abp.Identity.MongoDB userId, userName, clientId, - correlationId + correlationId, + cancellationToken ); return await query.As>() @@ -98,9 +100,10 @@ namespace Volo.Abp.Identity.MongoDB Guid? userId = null, string userName = null, string clientId = null, - string correlationId = null) + string correlationId = null, + CancellationToken cancellationToken = default) { - return (await GetMongoQueryableAsync()) + return (await GetMongoQueryableAsync(cancellationToken)) .WhereIf(startTime.HasValue, securityLog => securityLog.CreationTime >= startTime.Value) .WhereIf(endTime.HasValue, securityLog => securityLog.CreationTime < endTime.Value.AddDays(1).Date) .WhereIf(!applicationName.IsNullOrWhiteSpace(), diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistedGrantRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistedGrantRepository.cs index 2d4728a7e1..9dd4f24af6 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistedGrantRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistedGrantRepository.cs @@ -21,7 +21,7 @@ namespace Volo.Abp.IdentityServer.MongoDB public async Task> GetListAsync(string subjectId, string sessionId, string clientId, string type, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await FilterAsync(subjectId, sessionId, clientId, type)) + return await (await FilterAsync(subjectId, sessionId, clientId, type, cancellationToken)) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -57,7 +57,7 @@ namespace Volo.Abp.IdentityServer.MongoDB string type = null, CancellationToken cancellationToken = default) { - var persistedGrants = await (await FilterAsync(subjectId, sessionId, clientId, type)) + var persistedGrants = await (await FilterAsync(subjectId, sessionId, clientId, type, cancellationToken)) .ToListAsync(GetCancellationToken(cancellationToken)); foreach (var persistedGrant in persistedGrants) @@ -86,9 +86,10 @@ namespace Volo.Abp.IdentityServer.MongoDB string subjectId, string sessionId, string clientId, - string type) + string type, + CancellationToken cancellationToken = default) { - return (await GetMongoQueryableAsync()) + return (await GetMongoQueryableAsync(cancellationToken)) .WhereIf>(!subjectId.IsNullOrWhiteSpace(), x => x.SubjectId == subjectId) .WhereIf>(!sessionId.IsNullOrWhiteSpace(), x => x.SessionId == sessionId) .WhereIf>(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) From 63b74254fef7b38c965daf571c9a362aae80041c Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 20 Jan 2021 14:26:06 +0300 Subject: [PATCH 119/309] add a community article named How to Use PrimeNG Components with the ABP Angular UI #6608 --- .../POST.md | 343 ++++++++++++++++++ .../organization-chart.jpg | Bin 0 -> 25247 bytes .../organization-units-menu-item.jpg | Bin 0 -> 18993 bytes .../table.gif | Bin 0 -> 401280 bytes 4 files changed, 343 insertions(+) create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-chart.jpg create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-units-menu-item.jpg create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/table.gif diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md new file mode 100644 index 0000000000..1fb438adce --- /dev/null +++ b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md @@ -0,0 +1,343 @@ +# How to Use PrimeNG Components with the ABP Angular UI + +## Introduction + +In this article, we will use components of the [PrimeNG](https://www.primefaces.org/primeng/) that is a popular UI component library for Angular with the ABP Framework Angular UI that will be generated via [ABP CLI](https://docs.abp.io/en/abp/latest/CLI). + +We will create an organization units page and use PrimeNG's [OrganizationChart](https://primefaces.org/primeng/showcase/#/organizationchart), [Table](https://primefaces.org/primeng/showcase/#/table) components on the page. + +TODO: Gif + +The UI shown above contains many PrimeNG components. You can reach the source code of this rich UI. Take a look the source code section below. + +> This article does not cover any backend code. I used mock data to provide data source to the components. + +## Pre-Requirements + +The following tools should be installed on your development machine: + +* [.NET Core 5.0+](https://www.microsoft.com/net/download/dotnet-core/) +* [Node v12 or v14](https://nodejs.org/) +* [VS Code](https://code.visualstudio.com/) or another IDE + +## Source Code + +TODO: Source code link + +## Creating a New Solution + +In this step, we will create a new solution that contains Angular UI and backend startup templates. If you have a startup template with Angular UI, you can skip this step. + +Run the following command to install the ABP CLI: + +```bash +dotnet tool install -g Volo.Abp.Cli +``` + +...or update: + +```bash +dotnet tool update -g Volo.Abp.Cli +``` + +Create a new solution named `AbpPrimengSample` by running the following command: + +```bash +abp new AbpPrimengSample -u angular -csf +``` + +See the [ABP CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all available options. + +You can also use the Direct Download tab on the [Get Started](https://abp.io/get-started) page. + +## Running the Solution + +You can run the solution as described in [here](https://docs.abp.io/en/abp/latest/Getting-Started-Running-Solution?UI=NG&DB=EF&Tiered=No). + +## PrimeNG Setup + +Open the `angular` folder and run the following command to install packages: + +```bash +npm install +``` + +Next, we need to install `primeng` and required packages (`primeicons` and `@angular/cdk`) for the library. Run the command below to install these packages: + +```bash +npm install primeng primeicons @angular/cdk --save +``` + +The packages we have installed; + + - `primeng` is the main package that is a component library. + - `primeicons` is an icon font library. Many PrimeNG components use this font internally. + - `@angular/cdk` is a component dev kit created by the Angular team. Some PrimeNG modules depend on it. + +As the last step of the setup, we should add the required style files for the library to `angular.json`: + +```json +//angular.json + +"projects": { + "AbpPrimengSample": { + //... + "styles": { + "node_modules/primeicons/primeicons.css", + "node_modules/primeng/resources/themes/saga-blue/theme.css", + "node_modules/primeng/resources/primeng.min.css", + //...other styles + } + } +} +``` + +We have added the `primeng.min.css`, Saga Blue theme's `theme.css`, and `primeicons.css` files to the project. You can choose another theme instead of the Sage Blue. See available themes on the [Get Started](https://www.primefaces.org/primeng/showcase/#/setup) document of the PrimeNG. + + +> You have to restart the running `ng serve` process to see the effect of the changes you made in the `angular.json`. + + +## Creating the Organization Units Page + +Run the following command to create a new module named `OrganizationUnits`: + +```bash +npm run ng -- generate module organization-units --route organization-units --module app.module +``` + +Then open the `src/route.provider.ts` and add a new route as an array element to add the organization units navigation link to the menu: + +```js +//route.provider.ts + +import { eThemeSharedRouteNames } from '@abp/ng.theme.shared'; +//... + +routesService.add([ + //... + { + path: '/organization-units', + name: 'Organization Units', + parentName: eThemeSharedRouteNames.Administration, + iconClass: 'fas fa-sitemap', + layout: eLayoutType.application, + }, +]); +``` + +We have created a lazy-loadable module and defined a menu navigation link. We can navigate to the page as shown below: + +![organization units menu navigation item](organization-units-menu-item.jpg) + +## Using the PrimeNG Components + +### Implementing the Organization Chart Component + +When you would like to use any component from PrimeNG, you have to import the component's module to your module. Since we will use the `OrganizationChart` on the organization units page, we need to import `OrganizationChartModule` into `OrganizationUnitsModule`. + +Open the `src/organization-units/organization-units.module.ts` and add the `OrganizationChartModule` to the imports array as shown below: + +```js +import { OrganizationChartModule } from 'primeng/organizationchart'; +//... + +@NgModule({ + //... + imports: [ + //... + OrganizationChartModule + ], +}) +export class OrganizationUnitsModule {} +``` + +> Since NGCC need to work in some cases, restarting the `ng serve` process would be good when you import any modules from `primeng` package to your module. + +Let's define a mock data source for the `OrganizationChartComponent` and add the component to the page. + +Open the `src/organization-units/organization-units.component.ts` and add two variables as shown below: + +```js +//... +import { TreeNode } from 'primeng/api'; + +@Component(/* component metadata*/) +export class OrganizationUnitsComponent implements OnInit { + //... + + organizationUnits: TreeNode[] = [ + { + label: 'Management', + expanded: true, + children: [ + { + label: 'Selling', + expanded: true, + children: [ + { + label: 'Customer Relations', + }, + { + label: 'Marketing', + }, + ], + }, + { + label: 'Supporting', + expanded: true, + children: [ + { + label: 'Buying', + }, + { + label: 'Human Resources', + }, + ], + }, + ], + }, + ]; + + selectedUnit: TreeNode; +``` + +- First variable is `organizationUnits`. It provides mock data source to `OrganizationChartComponent`. +- Second variable is `selectedUnit`. It keeps chosen unit on the chart. + +Then, open the `src/organization-units/organization-units.component.html` and replace the file content with the following: + +```html +
    +
    +
    Organization Units
    +
    +
    + +
    +
    +``` + +We have implemented the `OrganizationChart`. The final UI looks like below: + +![organization chart](organization-chart.jpg) + +## Implementing the Table Component + +In order to use the `TableComponent`, we have to import the `TableModule` to the `OrganizationUnitsModule`. + +Open the `organization-units.module.ts` and add `TableModule` to the imports array as shown below: + +```js +import { TableModule } from 'primeng/table'; +//... + +@NgModule({ + //... + imports: [ + //... + TableModule + ], +}) +export class OrganizationUnitsModule {} +``` + +Open the `organization-units.component.ts` and add a variable named `members` with initial value and add a getter named `tableData` as shown below: + +```js +//... +export class OrganizationUnitsComponent implements OnInit { + //... + + members = [ + { + fullName: 'John Doe', + username: 'John.Doe', + phone: '+1-202-555-0125', + email: 'john.doe@example.com', + parent: 'Customer Relations', + }, + { + fullName: 'Darrion Walter', + username: 'Darrion.Walter', + phone: '+1-262-155-0355', + email: 'Darrion_Walter@example.com', + parent: 'Marketing', + }, + { + fullName: 'Rosa Labadie', + username: 'Rosa.Labadie', + phone: '+1-262-723-2255', + email: 'Rosa.Labadie@example.com', + parent: 'Marketing', + }, + { + fullName: 'Adelle Hills', + username: 'Adelle.Hills', + phone: '+1-491-112-9011', + email: 'Adelle.Hills@example.com', + parent: 'Buying', + }, + { + fullName: 'Brian Hane', + username: 'Brian.Hane', + phone: '+1-772-509-1823', + email: 'Brian.Hane@example.com', + parent: 'Human Resources', + }, + ]; + + get tableData() { + return this.members.filter(user => user.parent === this.selectedUnit.label); + } +``` + +What we have done above? + +- We defined a variable named `members` to provide mock data to the table. +- We have defined a getter named `tableData` to provide filtered data source to the table using `members` variable. + +We are now ready to add the table to the HTML template. + +Open the `organization-units.component.html`, find the `p-organizationChart` tag and place the following code to the bottom of this tag: + +```html +
    +
    Members of {{ selectedUnit.label }}
    + + + + + Name + Username + Email + Phone + + + + + {{ member.fullName }} + {{ member.username }} + {{ member.email }} + {{ member.phone }} + + + +
    +``` + +We have added a new `div` that contains the `TableComponent`. The table appears when an organization unit is selected. +The table contains 4 columns which are name, username, email, and phone for displaying the members' information. + +After adding the table, the final UI looks like this: + +![PrimeNG TableComponent](table.gif) + + +## Conclusion + +TODO \ No newline at end of file diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-chart.jpg b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-chart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d18f35ba1c7d49faca4f5abc245ff84e3054c96 GIT binary patch literal 25247 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 M|I0|e+Zp)308w;`W&i*H literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-units-menu-item.jpg b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-units-menu-item.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc6111f5533c49b5e5df6b83d7bf8c9c62075e11 GIT binary patch literal 18993 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/table.gif b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/table.gif new file mode 100644 index 0000000000000000000000000000000000000000..d27dcb26bd0aeed40f7bc005d22d4e80afab94d6 GIT binary patch literal 401280 zcmeD?`9G9j)H7xn+sxSaWr~pO*`t|3NU|l_(v*rsA!I8vwn4U#tQkv;B}>_tnnAXR zqU?q2>tHa}d41o1<9*L_&OP_sb3f1h;hyuk_nv#M(N#lDt-H1ie!x9|GJp<%Lg8Fo ze0+QYqN3u`QZjOK3d%|s)zmb#wRKS_{VRqh*G$aJEv&4pZEfzj-m-VHwRNy{z&JYH zy>sW@y?YOw@4G&5f9CSY-PJ4LvHKH`r{11kzMer5K0bcFeu4ghF9LDVK`(GY_@vG~sBWxi>Zq)${#4so zU0qjG+gQ`qU)%7xuD+?UvAMDNOXJt?O)cc6&#j+7lfU$hkXzf^+B?5?^mKOjcK@FK z*7u{g_xtz$AKwQCzyJ8v|NGC6A47vfzXxa5fBhc)JvuoyHZeB8IkvPjzPdlYelRgl znONSPocuevelWRy_~-AxzYA-B*AJ&>=B8&C{>?4T&acdF9nZ}z%q^_UFD%cWmP;Fp zON)z3D~ro3i|f>-rRAmNm8Ip?rIn49<>i(CU~OgpWOZe2b!}sHeRFMPZEbaPZEb69 zowB}4SzlXQKdr29t#7QaZ%{YZDI4os8yl1j$|-JcY*PQLQ8p=*?ahs?Q?|LewYf>% z+}hdP-rd}$ZEaDvwy9e?``eq_+grP*w7tEvO{H#A_qKO-w|8jNty5u}y1h$1g`FMh z&K~u&ac7^pOQY`YQ)!1g)V-aZ?f*3Y0c~e@XJ>bJXZN(Szq5CW2dB78-Te=DsHckE z9oqj2d%L>_yLI6gk*Cnv`z^ke$T$>Gs| zcyx-Vf1#iJ*XdMusyJn*K&PMf`%giq|1X`PvzcA7zM+q{xT2z<1Ofs8fHV7GM%Gg< zcS?Z&+ywvsPV)aw@_*S$nCSp5ud(W-L1|O4#$EfaL_}Le63^v!9?N@e5lqTBJ))9? zUZmi;=wN2IWaFz)ZUyj7s|O~pTFhOov(XZB})}~M9 zxa1G2<;Dni$zwZ#8VlX|?g{UXwNp063fwMzFEhENFwuC!{O*a*vh@ReHu7m6+gn7@ zHxOH^=z~#=-p_K4?8wXmmB)iwYSKEBqtw-(D*A_Jsb#km?Yka*uz#S_u)WZgDSd}g zH=xvJ@b#VNpIfwdmiyyE=#ZS|VY#ijgnV=OivXXUZ^hR_6kjxK&aXE#z5R3ivf^mF zs!qhOI!fb@Pie2WxDW7iCm|3P2{{uqwFbEx4CV8`bAeB&OBCN*Je(5+GF;5U3(3}* zT-d%_PY9Pbb3GfO{M%RzOR*DhesN~zIYJ&$$SnElZ0KT+PX}jFR%pAR#;Z^x1;_)% z_M3JhZ)}{>->2S`N`L>>CUo@Nn}*re2PzNd&pu2((G3vyBDJ%`%KMC+UC8#IFJ5>T zyt}lJ`>2ndFAD2mdGszZ zzHzCT$dJEOSeRsAT#%DW*IrWjCU>x0^!#T=QMv!tSW$&HgK$x0DU-wFiq6Xi%f7wp zE32Od3@@xz57|6ks~LG%x>h^kx3X3@6?tL3em3>-dc$I2>3U=TpPBV0O2>tbX6o<9 z8!fc?(v8nYyDJ-C01!C}3C!Xs=g+v<_4TiyDm)G4>!t2*qy-KV)ww*6gayLY`G1(Bx?81Q>ge;7+& z_vzm^yV$2>0dMOavNn=e`*p)1&iA+F)4tf>4q3$@AT<7>NPo(uHJy+6Km`MSS%wr~4S;ki%zX0R8Y&}I^m3R*L-Z(MHpm+BI~ zKOgt}a{YpTSo!mrL8WIO3B;oEgXP-lpX@S0tD8ov)x%E?*XkF_57(Rb)(>i|{V73{}vDl@XUa(rsUcIHRTCI_7oLW)s9;?$6~UeBPg_ zsE9sTX-oKgv{Wbl<#_v_IdcE-)5ggmt@JPb073#XC5Aw#Ifu+$Bru;R4(3h(N;9Kb z|MZ9Mw-Epry2xyPN@3y?1c(u{9#>3dxQtFND`)-Z>qB?B3xm>jAEs&F_0fa>8i-Kz z>uM7_nZbWqoQBbH0tRQeETcYa=5gYp49*=SMqfL+%N@=9RoX;3=1TQFzJNso1)CqQ zZVk=wv@v(c!!}>JNIDDkr5UK!TE;!S@611}X{goc74KD+FIH7=q`bA6@RI$$;Gw25 ziq9(1NA><$&UB+I9rpy|5$zZ4(QPJ$Pwuu2w2QyYjj{FLN+z(smod89W0kR$LNt9Z zd#k(0rg7^{W$b%7m#g3G$F@@Id*3TOkG^)tz&pv5dq_TVngvNa%l9$ytAZc-)kE#= z^nuty)uO9?ZuZ+5BfW*{b=`eW0=F}#*o!nfuYUK=*v?usEzaIRGdT1u+>26`~TDuM_q7dj=x4skt0+L<4D)A2IgSJb^wL z12jwj!>+-1yX=w1MkYU#GN=U-45CQCjG@ zAd4_=M#i}dPPmvf1!v)^sUqo4H`ZGiXF8wc?~e3%V342k*iJFT_)!#g>7#j#};bD9c! zk;ery%U3ZWbc_U_^FW)5weYyPLO!fD7dz~J zY$ka4>j{t0@RxdCGcpbBiqk9c=Ti>h=G1@8&Ruv=JQhBe5ynkj>p)VLqeE=5;1eYy z9$=?k;?=|MF1K;($$VcRL*!SO#`9^S_QC_h?n=zu-OOzpyiy* z;;MIr*QxhyKYd#=3pyAiz-ov_qCFB{xVzxo-Ve1_@Y{vMycLV>NLdS9h+}J;P*f{` z2LWc3BmhBa3>@qj978M_#27^aJRwAYs&T);7?La(2M&zIvVbkH{Qe&z?sEf}?F6tO zSS8?wk3WMr4WG;D83mTa0>KtxEOMSrT8+N7LHi4U*OMS-o?W|XJV+^n zi_N9W8}{l!PRC)FpZ2`EJ@gwWN$V6p@d{;8%>~e>aKLquRXG5e4MOh%vIr$6@T!v7 zn3dX*Ll~?a_AJB>Lk4b<0b)lIKqCTxiG~gXTi^hp1Ny*fi?|TNxcCT$fq}ydAWG8* z>i7d0kG!zT?P!2Dk%60-%NnD!op5CBbjV546LLMhQP!G zFi$Q}gVf1`eFt!x00Qk?55Ve)2_Z^k0Kpi=b21GOB@q}JG_m|ARpHDC0Mn?z70bWh zkLEAY_XiSQjy>mO^YnUcJT#9aP$_11o>p3K ztnJ>|1iTUPjYiKW*}hkror{hqnh*!<57KVOySlk7g{9P|x{szl*-vf0AHCVGO4)kz zA=0V9^G#sG+u+f+FZbUj_y+>6wiU znax_61_sb{f@ey*veQ*l-zny~r}7a|JSTg&K23#&X3DauGs# zXSMSr?enAp^JFseWE=D3-0rm6rLnQHXWO!zaKL5|u$9Do?Z$kavHZ&i`6!_RJ?#Pm z`vSwj0^^JVlg0wmu>!M$0t=z{R@(2a?cdvs6=($JpH#9X`J}VSnnLu=(+gPW9I&+k z*mh!}TVtX7SmBd{LQkP0Z|x!<`y#)*^>a(xVhAO64!uAv4O&Mi98D&Lo@JBJl z+kg+gtRMOs3x5fH=vyuu3HW)Kn!hUL|%|g%JLD_R>d5hmTT0A7wH>$~JvGA5^%j6jM`_T*LoK`NAg- zdSKbf6uk2QwxLw6dI;A#gzu9+X$t33dOjLwR+}_cn~qnT9af8#mh=OPd4-EvpH-!f zeVA&jaV#y4UWTos;J*pCCP(6ad)7Y4to@0By1lA>6jb}nf0f3J%@tN0hrT(JV}=tLeU)B$_;1Hr%uR`Xu+8p z#5E1NM4Ez4lVCAHjl>H@MHwYk7Ui2)s}}8xXDAiL4o$V!J{(sK15 zBGD;qtP8E|>@7m8EvCU=ZL_}a^|a8(pve}6#uJsOEaG7$92H#H8Pl;3sAP6*$B1;; zi*$OIeRb)9F;6tgPc*Y#gti}$o*i{!%i1S`ik(*BfWu0c3D_fgS=UNQM`usVVH0~~ za2L+8J5`S4+Y5`!AQX4JITvAGvE21mr>9`GlAb|yaxC+d>tb%kU>tiYMZPhQw|&-r z`!4vVz`y1Uj-FV#Z=a98Q3HE+6MI%Fd#~t!1Q8(IeUP$Wq^Hhfcf^9ZBpMJ2Br~MTx?&)c?e&lK*tHt zsVV4}kNt= z=#ZZ7kiPDhvQkoSY5LnlvU*HDtg*co-`>ay8?9%|vT^ zK+Uzj?;Fh{f5ysoEa14`@OjTdS|aqs6T~{eO2>{a@q?VOP|E=jiURjUf%LG@p9Bz! zgONJLsEA>tb1+`^1m8q}o)PXVdqPr3U~MJFA|;>_3U=(-K0N?04=#?)o}gqAjV9U8 zwUMTsi}QMWhvdH*$HGsr#WI!cUU2qsP?MuZaM4FdQA2COl_ zaD@ZtR0+I+0oq#t4X1#LB#<)Uk1+{o4FK9mkB>Q+&Y7fdwv~HeK!3@uVljk z`q*^(e69ML*{4O!dWN$n<0~iEFz`_d{PF-u6${otfxG}<-AbTMB?BD;MpGCsVHh-= z*v`*`ge<@^6tElxu8U#J1Avqe3~0pPyT=Uo2p~7g@6Mj7^0_Hdr@1$B(_aoOZ7vkQ z)@HXpBApkRzjt~5zQV_USojzR%gqTGRvKhY0i zsZqcJC`RD{COrbv5?u;paT=iD0LvnnOgI?j32-R{lQIJQ^N{4xJN)3!(z}x-spi(w z#yM?$>GG11p6uo6k`D=S(0IhC0-L|75|c+FNG_6Di^8CVVA7j{+fZC(5Fi@>vkC`T z2*7FtV7R2jnm-A?OJdQRf~i_CSe_nCrr=jBAa}70UnuZ-_s)(M_De77OPtm}Ha6~K zJMG2FY!Cb9PuBBTKYaMpHxKwQ56FE2&0Rv|ngT!?6b3GP7@z$e?MEN9J~(zkH(22% zMLl=A06An6r)cOr!D*8(WK;GM>>pv0ryn+s{W3nac^mq3ngCr(gpDcvlsJap!7%O& z+!;%RPSG)gV}LCQ`sSI0ZE-s3U**yRZJ2;KRS!u$)7%{%9VRdseP6p}t(jsbP8@Z+ zcV~4y=t6H`P~pc#_zdQIbVjuy z-jkhDz2C2Yq5Xsx4ax3siyr5@!Ixt1 zM$wV9LHe=RSlQC|?!*w~EaO9B$kDQS8(pX>LIlRb23rm+n;NKapO_-vIa>KbA6sb$ zaK5tmWK)Y3HAu6V){A8G&yJ}N$0M=Gf20ZGf9=d z{W)ClhEz{HVr{O?usBC6L0o^ACtWe8FJb;<)Zs0BvMzsq{+9^Ln*t-BV^jI@MX!0A z^4l#h8HIOCjXddKuI8JTYxXhZiO&(jx7H`>dS!2p)thZNeSUF#!YE=(!L&v|#SOD; zH}7@Cv`w$1cKxY)GWprE+&Jw?hjye+8i{%oH9 z@bS084Xg5(aWCjhVvaP=nXiW@+iHpH-t*stFXQ7Wc~Z^OV>QXLHiv%elP&m&82FtA zg9NejdO1$VfxDSjb%4!{F{GH#$&RqEG3VLS3mfsDPmy#Q8#prvd!T@3(jvwP( z$hpnrHkZ1n5WCI?)tIf+ha)FE1(wwt6`GjL4V16&7Hu)-c&;uP=?H9$8WjXR5qXp& z^t2hDA7V@+<%r3UmW6|;4d-*>C%hIqULNclT@6|f_}C-8ebuCgw{G_1HOLyyLXQ|Ea0 z*f>1>s&?!4^9O2H9;|EAuR}hPjVzoJuBh8Rc>AE%&gG8prnntb-nq0eL+CG44`lPA zf=1j6bw{txb9Ii-L|e=ZhfnrhGJRfoEI0-%ysvW#0=1Zlgh&M!wtCQyIrMRytPe9d z+kTX)NAN$azl#@-)VvohU08qbm12jcbDYL}y|d5dlM%6Jl}nLgi9eP!AH2Esu;Ibm zJCR!d5_a_B6J1I~HC@61^L7T!nlU$S4=% zk}7z^tG!}DEA7T4kFe)PL%wX5r`U;r>HwdaboMqclgIwp@8{xyDWYZ}$9vzR#b2g0 zElDTeTU?6N>cxNAA2koiIp5ieO1{jP@ic%*?heD~Ef|woZ4Tx6uMS6DE{3!mN8v+cL&xD3AZj!ivtEqNjH$uQ=l)<15-$NiVGh zAcIA;*iTlewL|Y;a*AuNdNBv*NxWwcdSvF?IQVz*h9W+A(a^f*MjqeJ`-7pPG-fNS zLiL)0Kh#1*OGNy0yTOuM5viL8o6OJdoB7%@KDK>-wfBc=8#kwJf$cBZ3VXw-I}_n< zj#Uv-H>%EOJpTGv?Lqag@|S8AAvIF5y@9t#eCm$(8b=*@n?~x>+)8e$xzq1|t+`bm zx$c+rwd|9BI^4~_ReS++|KSyf(%Q4N_OVxPI0Cgqt)ubblHn!_H-B;$spbib0yCKJ zu#FRn<79s3N1mTZX`JNKkS#y#RIE+s`(^m6xL2F5q`!-oHP!L^?c&edEBvgWh; z%~(;^Y_Ed^?v*9%Kk@%{$;PjFUG6j4 z;5X2J@^23(pYH8mN_Yw0lX3kg9I6@W%v)sK%I((iNU=F<{^ONK553O75A^ZZ!Y?Rl zbzWN@)yh%sy-XtGq>m|<60m!+f~EDxh8_=Z%zdjj>@ia}(x}D3?%!_}|D$v<1t~Mv z=O5|s#8gTp?!~tAj`oLq?vhXqg~jrX4d4w`FSX^uAAuRT=5am+;%F8V;{(octg3{- znMc>3+Ye#^5Or={H>xJ0-$PxR z?LQ+h4RM?OcfHWi@1x@K9~^bR|8X(p8Ms@m#80q4GR{T;S@oy42&kf;UG4Ge$s;&DN6lk;DTgU*)GO*s7qA}na7@Zlrf zokZ6=u3d4rlOt<}{^d>A%2p~}L7Mq}jP%fn+&WCV+~<{GL^!+xFQoYeCc%=5Bm!C5 z9H=uz{P58HdFf|;eH!I&KT2Ld&up?E{j#|eKlpwcTKv>ErNyW4?SXG4Ej-g03QuyD z5Wn6T`1?mdzLDE;7N-!S4eOHcN0;0AAgzOlnI^xExZ6$4kP8J)Z(mu~pKs~p+UdIX z(s#M_*l|W#G8y(d-h1qt&QG?c$>ZhcwYB*zV~)#X=itLGMh1xzCcKwJoi_8RpnpQ< zp0~t!qzrBUiF=xC&UYqBCYqiVO*YZ>*9oOPaGj_r;n(&q+KKI<)2kMrc2nxg`e>Ev zCV>qc>&~e=<;-ikAC{$F*0TrXlZT(t=I)&!Th|jbuH-nqpBvtYd$()#fu%cf=jFua zCcKd@asFxNucp=LC;spMI_74!3S6-Kba_+e6>Ro1_XOHWSu$P| z{2a@H7}EJR!sH=9QlPd1XH{Ob7ATgTBRNBYD98{Ch)k>=-3f?9Exr}9eic8%5oX!= zv8_!H0sY$Q_eY-^Q-G>nSU4R1GCiCVr`^rNf5;6C0! zvURuhqaG_n?wf&}^INltcJuajZ`oJv&h5tczv^AObUD8bn@)a0ekDiN&BML#|Muad zCYTR^J3CNdT7pv^04h!aL%Isw2^#M>vO@@9_o$?irYjYT(N~p}Z;wTW5EwXYamuKU zkA%7>1P#~w{9gC@HEo%Y1e}+nVIC^uUZrG8reP%@C1fgME`uCw9mRi;POHifsm`C< zY>v&>^1&MNP=HUAfSUD@XDOi}GB`y|oHi{~pE-S1aPK1+$Ht+{%d6S zRUj;l!G#9lrU2nx3<4Ae0Ya!SGXwhokgFcVHictmW(bkd%Vq9PdX;pja%~O3lZXlT zk*S#d2@nzp3kEPCD0r@cP-Y@rrXC2b2f`A=p z0u-DI39hJpzOzO+!`#qS{~ z+*umdfdfaLh`hMU{JOevz}d1&NwU)v|3et6*@X*<0zsKWWq$z_NLU9Y27xr3m?s3z z5elc_g{N@*h#tBSN2sPNP+|%fVgZzz!k%7Kgix4*lnSidS*1Lzsuo#1WV5(y5(QOx z-JZp9+#Gsq`MrM-5o8=EGlGR%0G~56aBAW-yMW45KzWYPb5WroSlo5O!08ylO6}Wn z4f%FMHoj>+=@42LKB58Q;fjL~0L}?Sz%_AP93XZS5Ly}555@^o@WK=Tmu-YF!BU){kU$IROEC{*BZ-ijEIn+WO#(_N0i{ScLL;&tD5*#Ij=qf;4db#FRK2AY z&RkpqQ+IFs!iIn8`epAh>lv-XSB8yW*?#kpBG*o+*g)vZfyhoJ$)$Ag!ML3Zi>MI_ zKYqsEPYd5kgM<(x)uRgX3?lkX@I%b$oy>USvEgABkT{2};cH31uD%CTpG#iwQSv!5 zj|=0i&dl&!hP01&hw|*M=wIx88;mYdYHo#36q(*L*i8Fkyxc^duuW z&zt8gSDt(6c*i6bzn`ccyM6nSMyo`T?NxF@g9y|e(#?y1f`!~aTlD*S-HO8>2TRS& zhTBliFPJpgH4JIvxQUs1o3)vDErX}{D--$V-?G*(Wi3rk`&r&e6EmWvHw96mf-S^z znpOFK58nUj45}ED|69jlW^YhxlY%Kc4eL65)xTi-Idcm7uIM<>bnRyC5c(=07870oF+d~@L^hP_in^NrIFANaVD9|ad*!e z&Pc*!#%jc-XB`~U)bAG8f()l_D}UZ){Ilhq!ULXK{)+!N1$LcnlC9Gvhknro%;-Ds zjpH5=>>bc;mWls*&ONmGF^<;#A^n;068nVQpLvHziZ2LEC|k8VO==jn+M5D=>}jDP zgwyo`$4A3I9RM5ogHI?mPWoU}J=5RwF1NI}j6A{Dw_UJL7Hl4e-!O&>p>XsNtf3+i z8?^(zyImbO?`p`Qj!KMNmtUOfd;5a(&V0|mt(NAQ_SV<6GyMUv8G|ZA#`tFzaZH5J zi#34Z>z}@*#eG|hRmy}+$}bv|-+Le+-cc$eQJ->Z&+m_5c@c3;1GXL<`1B695duC4 zVE=ahVW)HLr6*H$q<_ixmY5`6D$03HmgbC0QsC{drxs9V8i3sx8f?NPx|v+-_qaxC zDV}4>VJ4Y$xoBt(080eO3#57pKys&6IwMzWKXZQHTzSl}!gAq3lq;r5^RaCC>bD0F zQJkSN09dApKR8?s;H+`?fpB&)#FRrGE+^}zuMJ5pbzX~a7kXSL^O!E+*Hm4*M!Vod zQt#|%mG6f=xesjCyT|V_b$QloeH`|nICJnpQ+I zZfKoh^M*3e@ z0oG9CuY%|kpEBYpg+bX#gLvjT&zQg~{OXpOy37s&1z9_P`kl_dU==i)(%alDW?P+Y zvE9_$eZ|+G#P8yz0jm&jndQfCvZZVaZ?J7HiMv-q^q#~nR;@izh=TRIYc=a|;MXrd zsc_=sH)6#HW4CmtS6X)QH;cXHI=AGDw&dvEweNX;c)!-)@}_q(JyYG=x=8nyH{Vve z^W~aFhs)BPiYFJ6KKM?3y-}Z}s{VLLcSnVW1)zhHr^@9x4)J&q(uDFI9Jq_2# zs#0CShJUM#{C%hcswP;f5e966_W_KmTHFGgD1jd*3jbSO)k;py)n)?Vl4j&i#gh0C!qg)QASQc zUrRuaVv(@lTe^0oj@Jc)+PV&R}2G~aerk_6%T^V`^CK3 z|EVF}YD8hXb?`~y#dA#fgvARMKI?exAAP&2^vT(y4U89JZp5>eRv(w7*b};tK*s^*_+0CU95V~Jfkpm)v0GyaC?dz5?g%? ziW!jpSzx07b7Jw;z(ohEBC8K>JF>qW?CZSOmUmWu-_7tAQgz#v8>@C3{^+r?D?d?> z`g*)gEhSDg2kw15u9HnM`y2|%Kj!zifuXm?@Y91*`u@yxB}ucL>`?_rdNVFMudSw+ zR90!D734h*RNG=#md_r(-P|#F$N3;X{zcMc#~bZO!yQqI(<^`XjWvSTo(dKvw2CuH zU!RzH_TF$u_ov?>!fK%sueh-`ss7|!ct*{E`yZW3>hkcXr~Q`&jxeN*Xg>bqODEAQ zzo-93xeX&%5^MV}?~XVp;lLT;1RO+Rgb?;|jejs)(j%ou=7gx9iG%vqTSOGTPyVjE zXU!9j9J-%3{ZhU>45qEHZUom|90A>k>RYOpNYIYdh}NLRUW~_`6AF+_x+)uBZpbv2 zCZ59ch?*exuaAK}c>Phs`_#>V{c~ybyFEpJS4DG8MFNg|7yIi1>VaDT7R2a%=TOLO_rcp#zfC0 z#TJi@!G4v<`zp~A$J#0^Bp{oP5}A>0)mSQ2;2w(vUWDtaB<$kP$~InyVC4>eNEWmD z9>$?acX7hmC_zwI8ks14uJXXyTw0{F>%E=7jHZ}?HEXzke) z$)9oWcUN^ZCey@>haapg_l*X;xOTJ9b=p8n)1Wk$>l#)?_Os@{xNkDB+1J;;Lp72d zUTV!J;-8rz-&OmG8wy|7i_@JB|5yJ{kj(t=r9^yJ;H%Qk`iyf!N6r~{qh37wt~EtF zxkUNA;c}o+TDPvfS~#xXCnKw0C?hvB8JL&>=-dqgc){Xr=X#8(eHQv8@ z_ixCc`C1+K$z}bSyMC|!?wEf)cS3jguJ^YoG5-V!0LhSm+Uw#(it$SU1H@BZ8ND^* zE<8dK&7$&+=Y#Sj;QC&IDJEZ>kR0U~I3!`6+v*1fBVvemW5!>2o;f3O=J^3G&Xi}? zhhYdqCA@jfC1@Oe`6w5TG{_J;p@?S_4Y5l8t>;v#qF*IXAX|50FU(cMIE)GN^-P>m@Eb<24z>rA@eJ{Va|n;0$<; zQzYMD>ozJq%JM{+&5SA`GCON#`gy;fPdi-I5PeQ<%gg+Z6h(b&kX6Cs{Euk2D{@+B z{MF^cA8{S>5LyO={f5JSw-rn#jbA;N_VcmU zl3128@p=Q}nP8ekHoX#lIghW%dC5oY!dD|CaZ@3fWNmg~l3A*5gkU$F@1sD9pLagq`)ed1*qsRDD&!qjii7JPwa)#Yb)R=z z6kl$a{yqMED=l9}Dg-1q1%%VYy$TAjbgyW)vLq6$b_1zOo`Nj!XGZ}c5qm+CkY{_` z%-@xw^n(?z8|RbhXD%zpa5u+pHrIVsSU0_(m&|=K3uZ6a>Vh8pf;P{r|ALEXHM zy+XzkHomjzl`6|>M;$@MHTJJNr*eBzEX@~w`J1uYK~+?`AIjwCe;>E+R1Y?t|8n5g z{t*xPQOdElC2?K1ViH3}`oGQ{_y=(S&zzOdv0Wa6_6 z+_MZM^5>J~hkfpNk5!|OM0KMNOIrzk?l5mUqNl3nZhX*@8ETr~t5@ze)kI6y*eEO1 z)GFl+o`8vTiP1l)D>bj69)S$Unem0-odloRK+((_cx^`k*nCVffmd0&E{+v8T`M6< zyj;um*FPSW?ffj1TPy_IaJQuKS%xr6wKs+HoiEo!jzEEL6WP*pFxx?5k5;D{Ga2u= zkUtsQ=Kq0g>HSxJ77=eltU*NHlRewxHO@l;?rhpuVn;U2_Ssa)5?aXOzup&W7nE1Vu zWc~*J*UUj&JthFXkR9zVeolNG6RJYpOi*+uFB26)g&20qLZ;Y+8|ulOEako-U6~R) z>t@TdaNL zIh%u}iHjMjtVItp-8?NSj@LtwNBRqWAvBOk zWwwwf>5MB`^hjS|f($lm6{x>`HkhnE5vG*}i#-C#OhlYi{XHfdBQ5mw_7U2P^sq~E zC{C~mm_$Mnaf|Y82+3BKG>j;_lPC=Y@4~8D1J$xx8Ot36bQt7%_2GHrPeu8)C+-{r z&9lhqOVkl$77AvIW+b7N(?DunzqJcMa;`uTe|=HOKgc1pFao4L0@_LYu4~(-up`d- z^Ulfpb~(({vU?lSAIlhuy>vfG8lx{)jg}^~3V>sTh&UudUn&;ue5@~QLE>o!upPA_ z{BhR}Lis&~W&LqeSy$yKttvw}1iP3lxQCyHCWPa}j`a72&g^~QiY4W$IZ3ELlsE#K z%SE&8PfysSh~Ff3UL@X$$(GRmGkoIl8h#MVL~K=x141!4^)fn%KM}xAJ5Bf{34jSq z{y+|QEQ>#h)t_{c1Yl1@AyNQLX$Z+gga(ErkVax_2Z&UY1hN2ZGyty>fR{oNppYO( z`EYjt%MeN!i)E)^k*;B)FIrXVQ^Jn*&zX)0FM-r;0n9Xg0VNctCz+*;#ASd3@c`NV zfvna*jxqp?JCGGa;+w$o+LGA(Q5Oj)7I!TBk-oaCndV|xc>0J|Ub1%dczq3kdlk(x z1Y~s$9avnD6y2|ELVF>BOj6_%|IDSMZB3yi8)K zs|_g<3ULQ<9k;Pz$Z7;EFNVYg4iy+8sbNS+e<0fgiU%WopAW}qO=be%Slh|klX{F% z0I(^V<1~BP0&qI#QgXP{gr^JGhwLIi7H@K(5E&VT@>f9%W3n&)63rBRRfw3DtLTw238`o3;=imCy(#q&C&au-8|l zjntx)y14?d&fn!1tTl_wg6}*9aNi!eVm#V~bS3fA+W1Y;?EVW(SUrIO(y95dyMh7( z$*hYg-Yzn$rwb=5j}~M=f&IV^|rMAxCX|WdOJ- zos3KbAfm|7<`r!Kqll&O?YmCsxj#&slPQi2Y#5x49u7WBf&$3VsgrE3SoUf?MpGbn zESi%F&>*0A21v+u6i0I@Cy`XO`8fRcyOyirT3VuK1((pCXQK{4?6V|R8i=3DZC!A_msit?a0$$u#aZYVwwe0Fkb<>~d)MQCR(189pNV z^o;|25yj4f<`{aM8&8Hzg)()Kp(7GptLRgkVpWy9&j56t$8vO`MD7Dw7+Rg|(cC1A zzsjUK;ED-*lAb7cd4}N)pZvbp;vZ}xc&|SRq?n^o@#+uD=bw}x-lpe;kX!k(xuhc( z*le-@*O6izPBmPg&rh+V7lIfm>n6Q_@sdMsPWt zhs;7ig{F$Kk$_Md7Cte@AB$tWk7GAQLuqYn;lLN6BsLM@Sg_Tz?(g#q@EAZ_L<^^M zD~U<+JYp8W;*Vmd>a#VkK!@_AB_E3hW7$`8k+Fgp6%S3!ljCeFlXeE=`7@ST*u@Ak z8|~DipBSEmvAd#$dn-KtkT{uf$m)5QF?W_~9OD8VC6I!GcA-R>C7H1x)-o)kDiB(5 zk0p)7G=V;SXuujwh7O=u(x&dPN=MIuvC1kQhP*ZsYnUu6W2bCe_2Ws~)6@ z3B6R^sy4-dQQA_f*1K>NCTSXWX@o3$>%$p|R@n-n3y2H+VYK}kZIqLqn%cwT$| zL5J(h)Z&C}+mHio0;-{Eo~;mD^kocPPszAdjlE6PlT7snoWV@$Om)1Q-pW)pHsL8m zYDMchhN^dQ+*`#7Rkx}dhhD<8N`$q_f?DMryOFk`>Wlj7h*m>DD-s;a?-(W*f^!LN z@UONRJ zh8k}cD)G@9@qD3*TzeDuA2ae|(!1S!maI$f!Dgcd_@qB;D2bc-V;PLBVsUCKqe747 z1gz=RwhvtOps6_b8eL|wmD~)a2GH#?U#El~swIw{ic&@St^tb$+iJ>C##zc?cpM0H zQ|;f2wj8ht9}f;`JxQFPcOeB@`7@?8IDYs7RWp1SRS1vJ8qELX$8CywY##gGOz1%# zMVnfhm@o^&nOLceF}h_5k1GV1c;OBELKCjymzuN8FZ$l-A44L--XPTG@?QDiS>%=U z`*SyiT~<$q!IX6<9ShioP~Lp zzo53eeoRQ%i=5{Hf9aa9xxalVo|e|iK#mOfAp`vCsx)bBH&j9LrW&cQqRVQ(xgSr= zWJC_k>7i#w-x?X{4y9BW3!C11`}U5*C&zcjavT@YU`=;W#m#rpQOU@iaIIY9Z)e}^ zy_rzg0q0dsOw_c&uJUFM{%Jnb_CK_}WmJ`czV7=nsX2)mA|>73-7O$UNC*-FN_Tg6 zcZ1R?(j_4!-3@|tsVH3n^Wa+N?!DKJd+zygzcL16Oc?Jo-{)Vy=Mcrl(jnO;CY>H$ zI+J$&Vp9L{SdzNET$;J3tM~E?mSzLu!Hx{jenGEF;*E*OkVdkb_k5RKWg)0{nr8zwXN!v_Xy{x5XOXWpu)X~=y9m#YoqakFc_su@;z~i2Iq4PEt}! zN>JW%ef!7N_fPp9yk{^>Oph+Ax`bAywpUo+;Xw*)%3IQ+YBWzo4OlmFrL8rmN+i3n*h3dPqaaY+A*XH9#>7TI( zKfeqL7S{yv8O>~KblTQDNo||k`YnN!5SIk-1QU#;f-%vjO|;9WKRX;Qk0lExn#e^H za+%GxB+@+fzF4f~S%7KO_#4Sxd zeED=kuVe}v`D5Y%90awv|1=Q0%=_+^er;#uy}X3soyYSmWje2Ioj=D8cLgXnvssUd zry}5ivPt*%GH;U)0Mb}Vg-0PppV9GsYIwnlg-6}b8JFI|Y;I~xJ7H2dh`#Zp=+Fc+ zyH>hdd|g@A3_{}=^?qVYAICH^UZiCii_iY|sR0V6pixq*2wLtennI?eESgy5It9xj z;}=78xj9M0^i?S@6xm8sl9ZgirXvfhyMC4^GUdy1KVhsb3L9ftO(_}U%?;sxZk>gN zr%)C~d-9yN>R3aCd5To?xzu6GE{S&+nl(e@jVAY$0G^!73neyRjY;LhZI@}4tv(Dg zN=3H0^7w>51AS&@C?)+bjf=Uy=vr3I&Ffj3Di1jH=ngEr4#d@7G>&AOUwo5Dr%meU zan6@BqEir4oI)Gz#%*0`p!mwRdPkev>Qpyv!88$HfYfnW=-_M0tuCSd;G(U-dym!B z^lzSb8;whEV-4n4TuzNKS3Dp{c0oFyb{atuw?}sFxxUw{0;_?Lux1k@U=um_NDDNV_N5Z+77l$ruwMS#8jkwj^NE?$8p`gT+d%id+!6GulDmJ*_ZbV z6Z?fsU#r+??Uv@p-Q<})i5{J;tQ~*#qpJ1S@{j6nsNT=op^L%ZMvtWt%ko0Isl&dI zp<{~8WyI94w&QWV-yPS#zW)A<0@FY0hH$JL4YeqxADDl$^ZAla^|=w>KrZaV&k?Q( z{nIg_-z%pRQZSzPuJ?*0Uk24x4P1x96aVB#NXHvoELm2sUVL?|9(mVx^2+mkjSMFK zE9;zZ;A$&T)$n>J)BfA_UOqD3@aCYr`rFNq+6luyhpoTA{rTMudwqM{h>1yRh&29` zxxT~@bC|(kAMEn2i^;3Y1kDVLzmkB+=Ou0&!i|QK^We zASwwD_r>ezTp3chb_u~`XX}_!MAC@3gb=#N#!dw3)PXohwp9)r*v3RM#N(5p-9}+6 zPA80ahY8_gXB)6UaN7F}cA|#74Md_~@0!$jSnQB7JfBF8NhL8Vdj=wS9~gsoZW?KD zMqNc8-dnAi7-P!2MLczt5^uys5CF#*=>)gZjwgmy(U8kdXUL2FN{qk$Gq~?{8KXCu zn85p%D*6=_4ntgRe5?y{n}$k}Klk>nW0m0BEv!t%VX-OAn4Aa(y3HYpU78g0;3!#E z!V>j3b?)MjQKr4bXJzdt>J78Ga*|AnWED>7ttrJSHpEJmk?a&Tw>!+%LdtLJl2Y&y zJM1HAN|qNVHXm6_GD38py)Af=S<<)5)iE??zWFHY)9k7s3uxS^DJi4BeOGie@k^>{ z(mQq>N+W_TVbLBuPkhC95`PpCE_quX@84=l3|O=W@>@}3^SzToW~w=}Hc&%N_vNW? z7(*X56rlMs%H2bz15{{>Xvvt0;1yGmPMUe-9s5$)%<5514SB_*jL*!M)zYPTiy5oR z75%@@#DiSRq)p3Yk*vcr85O*x3ajPMy@w}C#%apc4474PD`xUeoGa=0m?hhu%*B$Y zR;c36JTK1DDrIjJ91slQ)%2LiFyQ8j{D5{W9mLu3ORG9z!`dybaA6ZIhOF?c@}=7X zG-QmsMomgb0q3hu0w+#wq5cOIay=byN@Z?}A!}0sY@LBk)VlmoW%v8xh2D~;>cpkW zw--^b`VHMuibL5qzv<(bL&qwm zZ#UD;H4;;s$o(hC_4TSrg4&~C{s!Ytd)AC@T*I1Uf)DHVl2;^;_}_)JO~qoEXY^q2 z)(DBN#M;{Ql6(^!5Rz`+u*+%bqq%p8kbf9znqT$u8XgP1YLA7HaP&g&pT-mW7&~0G zbU#jW2xhZ^o@P!A%Dm%@AimvXbe9=qddD5zv0=h2Bh<^q&lTnWVS{B$a76eUcf6eP zCPz5Ym?V@dA^YbREk)*_qn}equKo^ZWlOJdi9`CFj|odS(a5WN=PXm4-6u0GlV(rf zWtZx|r4z{6Y#mh7kg!p&k2`$bhYn~mx3SIgriZjHWo zHgC=UEDT+oH#f&xTM>FMeIpQP$+!Jwk>0l4*LhJhW^iaCPqKQ{f6=g0^}|~)dv))^ z{d0HK;hSXdl~ucD3bc=Q&gmk{zX8>Gy{4LKfeBu$0$??>%)H%;3kzB*cO((RpQX$J4i$(F<)*xB6_98QPD)3T! zgYP2_-pkldu3c+l-?d)0uW|hLsAqV0RuF%?hbQ6L|JvZ!yK0f`V{v#P>TDu&nQ06b>+<&#i&#g4N*KjYo3eVk4Nf``6IumsxKtM09&e$ zXhGWJ6KB)E0WOX^&iK2qag>hndn?nc8&%|e_5BS8^7c2uRXnh2uMPeQl1V_Ft41S) zqo}K)AeG>twF!bvRk`H}kfIuf=@E$U2!p2vB%lU}O#+xfC`xMRp+}g{VW4w+PI5Q~ zwgV_z71MDN!?otNNKHFW^~Putt198n1|9orHTt>gfuR~mqwmIP^5B;}YJS4~2L}kp zB-ZN?>{bVC%o^==2WVpg)K&^(>4@MAimT{=ll}|GG8AWq6Z7jNRM7!9PzteAgD@}V zd^L%nIYzW4Jo=nK+yh6GfWxhiVD{ZO*2Q>oQ?Sb;T*TC4Jx=Jc+M{YXq8^TM?tpjg zKz!lA$({)Ma)j5-@%T>dkKrL&6p)v!N;rRtvWXySt+G%9i71moiR7PsS~|r9lh-dy(2e+s}qA~ z9fR))Lm>C{wiRP!9b@bXVc(ab1gSZqZ3PO9ZSav zODPxQ7bn)CI@YnIn=Wp)IVZNII=0mlwv7|caVPeJI`+dPb|G$#b0?1LIu7LB2?q)f zC%Q8yM1#8WgcHHTh40KoT+c;z%02lecb!n~sZc&1y}Gk-dA)Gescw1a1QwbDaNpu%UNP{HqnIwW&3g1PF zxIv1Hm!g?Rn$AUPneN61_qSV@;)N!WNtw~YrqCC`~JU09HzclCad`a_p@7eQ>2G*}G zDhCZJhYfsOysGCes@DywcW2bUdDYNe)gbtETW4yBRE7x`b>c>KGJJ77z87?^FPIu% z7&oYK@oDh6YM_t45IfhnJXV);)l_WM#81{x=hM=1)skw|GSDJ_$)|1Vs%_b*ZF{cm zn9BCr^`$2t+4J+4fqXilt~!y8IH*X!ofe-oxV)Tlppu0O?RFz0Hpq^`euZm_{;xZ`Sg&?r-TZg|Z1`rP&P zX`SKS`D>I5%kP#(kS3#tV`2oqF}|BIag#CGg)tSs37wk>QHZDf;0?1e=lzh$bMWoDBlpUc~Peyd_PD;7((agjtlEgV%{Kjwxq!RtnVV;`yQP+U;KEZDcaO+sk5~bZ#FtNF z-90m#J&XB0^P6RT-Mz})HF7V#Y6ZNj8@*bay?^t1bze$px%&(?`;1-sObPhT5i)l) z`>qN+Zxry`ara|7^F6%uI~MRizw|q3emMQ|S9118_XyC!3wY?KA~HC7-2(|z0?4ic zXPkWLJc5{7g17_%xdemxJc5N2dN8&);fjgwuJs!2r(86 zGxZ3wYzafm207|DYk7owdeGWlg$D{oBsPafwnQ|lMN>B!oW@9AhC)10C(c&GttvgfQaqjkh_t!2zdU8t{RG$c+ z&D99)5xab=;wE)&j9qwUo~HYh!fiv$<5eKW{RO#Cf8%_v|LI)%ibKx%%T;Hz6MiKQ z5Z|H_ck65jwOIlrMVUMP`8;+oBely$O#4{INIY;<_RdtIY2PFcEVo6;#%#E_9W~TK z^fsjs1vN&pX)(w&P2cUHIISa8S0i1|PmvzbtxGG;0CX(rvO%q$#Tia%5PJIul1g#5 z*L-Bcd#`yki)^2$O!K^m@17Rf(HO#v_Q6kIS!5)2Ld**z&7#x_GkUHq>{G|D%k!M; zTIuuOcquX$6wOS{_t*kAMGO)v{ah<74~9_aD_=7%V?)`UtFl)(+BF{;d1| ziU9oC^y7a(0RHjD21bggA7+aGKmcm|k^fW!a6(?={sRGciKW?^g#(gg1>Kz}_0y)? zaQDyV{1XA_RMLKQa`G1e=v?A=<@A66ytJvOhmE|LVQ&L#o=wW15}ZyeVTU}M5tnB> zpWR}g(PO2=ejCf68-6gnU=)lC@FP%<8tY2bsxFpowqD6gWEBJrb0-3MO4Z!)1d1eO z4amdGwSdd8Vd2cIU^qW$>`fd#P=qTfaXR~USd0%pQFYix8;}&|Tf)2A%fs|TqXo~2 zWkErnC|!?~DcQLIInG2m0T3AimlTvsJt+a4b(x`orfA@F`F|0B#+z|!OC9L>pHR_j z4p5{qd4q1x7kPe0)?PX2n`Z&P zI}#^Fz$Tk0dq6@E$xoyA(MG}V*9y>+5?nl)AnrE_@hu_wi_f{qX z9}YYWr_fNZJl;#j6bS?HJSfHf7#5rkEu;&VN?R!e{Zv;3OssjL$krGZY8xjFt z0;B~2zzN8w|A?o-(4>whrBj6^I$A*RrBO_FwTAu-4=hn;3?0`kl-~yc{7Qs)?@om^ zaD>iWlUT=NcO2(|lRif}K+=z1Vc*C6iq#{KFL0YJK0=wcg*2n;WxI4@LeVnMc&dam z{>dAiks?WU;vp5Ue;@!G={-L}qyAqJfI}mOHz(;`I3=9n<#nF2cFqvm5^i_mIEVcx zhmn{P#y?U*{B+4LsZvV#W5Z!Sr0h=?%P4bx>fnhaX;4msQ~1V*vU%#9vyZlkAO6ay z*o|k8GJ_!EsHw;?kDF7|>nr)kNXzQP{Kz~UJxtyzQ@)VR;XLSA9>bF-{~G~V_Ecba zD$eVykP^3CLFCm~V%B5N*J$(nU4ik=9=#;D9~601pUwCO0ujc{2NoZ@>D^;?5q!AJ zyC?6UTQKp5OaTr9VX7|6)4?5{x$v?(MzJSx${B;mk~*m(H{_&Z^iz<+d6 zyA@R1u=Ns4r zGM1j=x{U4i-uUa{&Bg0aatZ<$h?TV`0hom05Wu_YAeRYL*|`M4K1moL8> zumg`#Ak&A;9{>gU=lAMOGNhZI;lEPFCZ*!N*PGf}xCgj47-oFBsy-p0wUtK*DBL`X ztW-{c4LHKxkGlFY3;HQwH<)gVQjPCNcT_eXF;_7qu zl=p+gPQvGpE59ZtH9rKo&FdMc~nZ_gLWjlFCbKuOMyeH$T9bTx&G z%~&fa0J$=Wq+LR*PHn8YGuFWU)^O~-uw-&+ zQNj5tFam&eR1TGTUfBUZjZjs~BE>vug6U&Qs=>7bwFq+d$CQ0wd?Y4-QvvTs|E)H+ zxEqT=6uf-i*yRoux;j=6nwF*M!z7lBzGW7&U1&bzNiyz~dLsBKj_>d|&C+M3htZIKE`*nMd>Nsh~S&ui|P4ap-dK zmw~K+!uNQXUFLf?istkAcEB=MmEV9HL>JKbG~oLSz4e+G zO~uw_DbSy#8aRvW9j<``TGp47V#H;EpXZd_O4W{JgD3}CA1GUQla^MfI*nnld&dRBz(5;E--IBtg4tHrYm^+QAnyb-nD$da4GxYC5Po>+<6|314&;(3%mD5 zeAr+`OIh507j=!1|owMQ+GRjs1;H8 z*txH5u)D`Tx7%X)c%#<)WZr-)c7ZFF(o|fEMHcojy;!7Rz-5nfXc_lbjn9RH-=$Gt zTT*0Z2B$-d*I+5zoup0crb&)RR9Qw;MMPBLVq}T~bYqSs_e#*gSvg;jBRoSsi-;pE zkL7M1YrYQm&LMh58lu|5lFJWCsfig~j2XX*nY@YtAA^_DeY*?5(KX;OHRwY<+}tBR zHLZLH#Ch$rVY$K%W?6P>;&vo0)&eYk=~$cy#-HiLhic<-VmjNqDP)Gh%@zE=ZA0eP zVLW{7J6A0A`>{7B{tGV>?zpi_Faao2;>jK}{U8Zeu^L`^LPvvEJ0bn*<0NXKB-$Yl z9Hyie*96j5IomRp8%}Hrp(i7zdVPx|{Y8cXNFf+sYf^8|+w($L$E24igj3v7q63~R zv!ty#koa}oKWj50VUc95CSs~Cv_oC*(t||=!lnXY>uSbPxMq3IWbK{iS(y0tR|0gy z0lHIc3<~rtYfNmwrx#~nlfeLP@{HQ^uPDaCBMkfHbcp3x`OS zka}EqVtR;XIt1-Gp`|HDf}=4g14Q*Y_ge5f1HG|sx-q3bRXALIh-I}1wmgaUcuu5N0DZv z@4Jrtl9UEGNCE)LBTOKOGW3uZE{zm|v>L&>6xj^kK;-)AzXW7N6hH)vnFO|;Kl;L1dLb?k)9dg)lx(kFYD=~U=F6Y~c*CxgMP)~)6(B0qPG)$V zRt^{?don1y@YuBwQQ@!&t;T0tcc@bClXY-{44q(eMS_gGMA+c=oL!YbKz{#|ipfa0 z*17~mo-}>J2b<|aY+AVSq(eEsDNGwuQ^BOT|6wi_R&*q_Vr1k1#~KOKeIkH6GM^mD zjRWGsaHqumK}GKlyv$pNmSO=9?oMT(c+BM8N;n%QG5wOHkPiyjHUWDYE(Pkwtmovu zpM>xsr(Sz=`o4B}Dnvs6jhWu#2=)#O&{H&zLIu|OVs=3Sa+yz`VH;M_(~EcE%=YLb z9p23(`BS}pJ-aPOq-fX1oti6?YDJJ0VdAcC&3>U~v7gX%LkC}j7q`iY5U@ zLghzD>>fkIJz0D*Q$B*?T0p6{)2W>&FdxR28|vo8H>ojSIglA*29I0QSS-*ZaqcFS z11p(w{|Fr}h5LK6Z-Rj-Nui$!(e3&9d8e>D&(;+X_LrL0pAI2j)1^m`aNh2*Wq$Vx zx@I3?d^80JlxJrZ=7W>ej4rubR}0!HiEy9Iu}@luxMXlPiLg&6#NjYPKZvlmqz2I= zJu)K-KD|%=RP%rU%>wuh6nm;0XxK%ZX0oL=GfUeT3a@!MWW(mrX?K3V;~r#^iO|3CmL zuk@+h_NkG6c_I2mQ~!(hKM;Vg+P~hPY9H`f8Sr~R0Fn*{i4KP74?ghzB60?!knMvpD}!;jg9)TV zNuon34+ub?p^TiNtoEUtm7#aHLwTgb1rG>7{oxXy;j*0JiuU0TE5jde{~`eEL`NF* zN1A*_T5?7{wU4x~{6zqEk&gC=j`rz~_WO(u=8O)vkB+X4j^B<>l8#M_j?Lwf^Wz293HMxQLk&-=5erY0#Hx@G-N=R^|P^u)zh6k z6cjk1`vt3pdQ2CT_)851MG~L|Fh?kfqen)&;W#<9ST$X!VhMmdCq@b!w*i;}jwYwt z>Bkblt`1;q0CaDJHC2N%;=nwkj6He;aRtCyU1%kYHCV8*shJ!)<_?_c1T0t1X_CI_ zIZ~X_E}Usf;)9TxWm3v-Ib08)w{kHvk@;j zg|sx?s>+m)vBT$8YjGW3zN2!2gwnl%$;1RLf)3TXs^&s=79(k0!~XIn7;3~sHKP!L zVDjg}#d|aFl`0K$;f?0=H5%-C{YQLz!!2)qd>d zW+Wr~-Vh~FMy<`t)X%sTLm{QG6)U(aNEX9@2o2A31^)Tz?aAIF<$>!ZGmS3O#WAmg^U*qDx&rfi8 zdd>RNA;Y)nY`pieyalfOG-C=EKtkcdB|GiXuGUZe(xxs1&ruda2a-xk6k+&J`3aXl zPyZ!9q3Uc}SpYY!{N9H*T#{4J_Iyrf;o53mU!&P|!6=;VV)5;1+w&!h(!b4<=EIAx z4g+kLD=rIc`9i0QRRZ$+DM*bt87p9YLdcu&TcQvy0t=vtpftJKqR7R)-Uc=&im-5mTQKjB03ubUq=1MGkPYktCK8^ND%ubC7wW!Xe+0$YC0 zQ!LkLv}Z&y_JC=kSmWPq26=zHyIdZ76EAkUjeCE+U-~fQ``P@Em2l*57yo$~OsjHR zxElWu2ec(2hd&%VNG0mT`s@5Ry|fMij28$^B2D0vr|fQ5JL+0IGeRXpk?#A6hAA-y zu*Osv$rxb-;0_&C;$f{&taY>#|9 z$U%*D9HCI8o{|J^cw-tDDcVc*xK!cG?X66d)@_7DP+8%)sk-p)IvPzM?`Jty(4+A` zn~v~i+#yp%FMv^Az^?e|w#Tue`-d&({?doY4Rzt=vNb8z%K_;p+(OyT0{~2s%O&rP z9~cpiAQs{rz1u>ZPE*mXoq(0c%aXHk4EWCw&%(J(ND^4-dd`j`Y#HO?D<1L_?tz~UwW<>upKjEo!v|)}c557}8 z-F!J>4*Q?^31N7#b6@FY8d|elKcE7Vj`2dHiE&=br|+&tOT~X5AQfE6w{t;5A$IK$ z0#QYLTcbN6Ahjqs5(wawi z*uAeuj2@aN1IoMH+1H~MD*t`+WW4^}<>;RHpX-SLXhR<6^L=TOo5={3h62K|{ih-~ zQwebmMGVgmp6T68XN)(L2#o!Ee!}zbFS2iD%T!$Jb-JT8y~Bv}TEh79OtN20NI#Ju z?2*`)u{sCx@arcru|Yt%f5_%+eLyI`9XtRfMv5ez+SSx75lW2qK>aW4<#}aHtd1E> z@VN#P=aEAIb4Yh`v0Xn+4;+G#5%4(B=vkE%TdY!7K2)+RKv2gqS})}Z(FdY0jNkLZ zguyg(V*myX5Xhm)6HGjPl~KW0as(=6<0;XTQ8p)yYum-qIc)<6f%)9D}2ivDEJ zh;iJENsXOVNZif5h!-y3l1}Z+xjA_0ukuiu{hQ061RlDqpr`*F(SS)6YVx}O-DSXO zp5-XiZgxK>63|_Fa2fK^L=sV?igiUp$&3#!!?R9{C5`iqU6Gv9MpZhu^Y@jZ`qGK_ zk8L4jSPhJ$`LeOh2Ez^IGo@;U&vKtNR?JoE)LX3%H&!lG8}&w!DK&jqs<)V_Fc@j7 z`r7QUHJq!|{A)(9`RDi5k>=`AGe1;pa%I6y4j>VW#c;Hxc55JkM(JThQ@1mc!DIbx zw6%V3B2Olo{Q0McY^gGhO2ew7LGk&TH-r}qZB2(?Tb%#841rzY&VRU!t2a*l|3{Z` zJKnxKQ~CNIF5_rxoPXoRiap%_BW$B|GEs`d5ga;qiicq^kV<7%V640kR`C( zPE?>T-%e6~a2d&JPnmX7G_@^vQgzJAcm9rOcG4eQ#%{*jG|Sygi<0u)ESsi--E4<` zro9}OdCR?A*{Fb0pMXQ5_Xw|>)^C{NI7Jv(K}m$6l8m>#7NkP7%m+mhRg7xlDP|Q1 zB{^>24@&dGn7@~m@0?DQ*X#r{0hcQ>6^h~Q$Y-Tu7rE`jdyYN zZb4dH<$=>h51z8|47+|q;yR7^X&i~d|CG{n)C-sYZ&R912Aw|1fQOu}kHN#v=y*8) zC8g=Vbs2|eGirZFG@38}x(xHG^Lc&u!}I^`GSY1?{;SKdy)fjyX&0{^N-iNIqtvy8oCTEHTHy&K1_!oiK3PdqH7-LTgpTzZz=kY{niXS__PEA zx^S(!x}(@;ev{#_jYqr)Cl?|zf>3t-G4N&aF5|+$uu@2#UF%i|G@aa9vg){5qK;mm6q@T9gzRstA7)^auOlO_`e8!>{H{9g_<`b;vF{sCiH(T zCoa!Q{!it^{{Jj=H)GWGfRIC}{|lj)lx;o;orv0*{r@+id;FqRd3V`31AQNWQK1D1 zn%+~+zaWzW75oaE?3H{|*2UtIB`cc&`fo2*Hb!{K|?Aw0tYkv!Y2U`=4g9|0#}b?IM-|w^!Txzlmcz8GM+< z{*Q5N^_|UTZKo4Q=NdQQzdY6tPxV8}rprIxUtEyBGYG(-0sua*bl_bj z&mnl?${t5XeG&KwLtY(68u@4vo@XIf>RWP&R3as4o-a(5(ufTDLlo7`o@ddC75G@b z*c{Ikv&R@~b=p_Wr%5E3vrJ}GEfI`QqlG-Km@0Wu&tGNP_+z?SwYy|R;bgrxQbnwy z!y}D(powjxWasI1!%>PU}L~rk4=U; z*p&?Bi0jQp62!v4t$3bVOs3-bYx`!oTJ=>LH@k`IIUbHSzxnD%cEx4C^4S%YkW94s zcyloFjmlMatJ6?t`kI?vmV@iJ=vtY1J2F1^UXuFP$Q4_`~Cnpo*wo$Um6 z@}Ytx;TuMpM2T;M+rfNxXgjHjPc4hmL|!btO;FbsqDyBGW}-_svx_W_G5Oc`*T1I> z24FDn=YNLXKJL)9O zG=U>I#xe8rWJq{mrG8BC)aP`ZWlywWLLT*b!{}2?gN8{J9^CV334!OX)7ms-u5%jJ zzUT8g?o|y7Z{uy<=FOvHFP5#E@6Nuy=*^uZO9#);l_k0qG=JkfM6N2Xd83ZItNLNz z3v2|^h+oNtviP;oXVK0IZYMFQ2m#6RajiR9=7!hn>E4|}`?=2d*IUKOem7G2+2X?A zE1jo5eXp*6C;YQ<#INnJb|S8AzpIU0^spDnetXKND*b_iHn+ z@2>$ z@sxdhD$bRchHS}0UTiZl-ZNy2e1~XI9P1=L1g(e~Z%9Evm^&_>^ertyNKxX(Q8Np* zi=BT+QFkyXId3JDL1t-4HR(l43GEJ}YU?wt67H0$kR28&Vx?E(59N-mDZ6!~lJ+;J z%lgp?R!U9Zl0qyg`{`+r1%~vW02fX{71@Qwo@nz zwKT2@E3e9z{jm2&C;=w2Xaq#Q`!a~XD+VqvPGay$Z#PtdBcAux8*+3&UQBd~Cfn>F zwm8QNh@fmAUT%Z}A5asM>~~fwiCdvIXM*L@MM=$a)GwES5@74IMZLH4NrqafOD(j2x@e?8m;G>S9664hXZ&D%1pp5h@ev9H06OQOTpAF7=7R!Am#NFJ z2LUpak|>aCTj=abyh<6tN2ky#x8@%zu1Uj$^mSG8_la<3i+oJT6w1Tr2MA>Q-~bUS z&~!8(LKM&rkpdodeTO}v4FQ54=31RbxQ(Lxm{+k8DAd!z%(Q6upBCk$`G;1q^sahB zPD(@OKtU0CT_{%p@`fkssF<{Uco3;0N17K#KteMZLd5}!(2GrOT>NtJu&+>p9q`K& z}Xe@ds`PA3IYa+r$n$SA(i=uDTZ_kG+IS}hZ`OgkSD7|bxIc9+L zwUm=<28h5Bi7Qn3l58QZn(iZg(50NwMpR7D?Jm(o>v$k@gI_;r{X>;??;Y)F#ADw* z1=Sn3g9^1z+^hI3FF(zevb)B;EI+7ixt=K>KmX`$)oTcATO9b6n2>b$kTUqEm{$PY z*mifA?!^kco5IpON3A4mZTnVT;odG^^xIDrynfwz*?yUO75DOL+e~+}&rB z?(8jt{Ou0I=j&l>@zV_R+dVl7uaV$)r=^!Z2lDn_(}my8EBt+bm`~g+SKnXM zHT(W@r1qK()drLxSRm&cM@Aj*_#=_qRt4!ng6GaW{Kg6no|paRxa^AAk}`zv=(` z2#QRH-(SMO5drr`eyDIKtiq{ zvPBbmg&;(J5C9Kix4`|C2g4I&QsxULocG-~f~~G&);UAcB_WVwNCu}af-5A!Aw-@L z@{AEe9vC9;fyf9TND2r^0Ya=0I1sboxEH~%$_(%=0?sha;{MjGQvy)ARH(2`{cP7;Y95(06=KjRIFWA*U^f=9)Ly z4rU4GXaF2dXXo{f5w7Tk9|VC8IG{nOFs<-W-H*aF000k;5E_Icx?|wTOa|r9C?Q>z zSTMj+Oz?R9B}*opw1(gr07PH_@(>{7OA0WF${CQ<$A|ui^OcDj2)zaBCm1Cb$ z+AtllyiP9#q(W+6r=bHP4_|Y{2zduk@J{&SVpD`VDgdCGbfH4>ad*v=4VlthAEgE9 zviw~4e_u=hO@p(lp&6T^5N@E7beRbN0I!;^l|vf&IuwATJHinraKz2Su7FXx6-q>C zW|rHWuc-yhG*SmJ(#X}y1mIcsH5m*5pw)#5P?}c)Z-fIN;&4P-0-To;M6QdreV&Oh zhMoc$_^yc+OZ44>xm7(`53ef{s_^?f?P_8~&UG#!@)%@&oRu?_2|>Km3QC^Wr8_l( z9uBFTGrS|o*Iep?nzm{zaY6x3Xh9k7_cGk89q2E$v}#BcMnxQ8l!sk`d%lM#BYywr zN#aJhyMblk2M_3ZLd*qaBIG!9aVbtaHTOadM*j*{Wl8d+m|SaPn|)pf01qnHJ?v^VQ^zb_wtlCTDbqC$X9 zEU2k2q?R(cAPXMi^&!^@b}0#qO@K$ktEPpkW}j7woK?mQBtkY|w=UpsUf`IcsHqNwi?`QSQ>L7f~B^;Cu-g319m3- zA=FV{vCjEXKD(0I!%ob>WI7kpo59knzVT7`z9jBm08BI*`mv(k)+s_(iKTiGmg8WV z>(#)w87NShOV!3~KNq9o-Docz{^K#Oc66gBqC(y}Z2uu9@Cet;JE111^f07qDEu{z z_lH*^5I`-o!6ftu4O}w`v+(xue^UP{D%xredKFsi7OqAg=_5o^e~|}^gg|*k0vWX{ z4846=Sh4`M`t<15t#H^wkSRvE56rUxzY-Rnhf82lBQM!)8XZ55HZkCqw;yQ8uhp@&D{$uMa8zMGS9A`H9K!=zl}kNKox zkfo<^-HkAZP-i}|7;=U!|3faV!TTug1 zxaC$b71O4*^-435K3SW-HF#xh7W6Wq^CLmojAG3!0FKP8v+Dut=+guMQ2akuwLhx1 zvohinG9dY1%$561aR5`&kESdAYZYH&)IP2=54edA1RkYrir7E8=qw+?F75JIDDxln zav#MC*n2s6hji#h?uB2jyYv0DavTKTs11z{53XhwWvu8Xh6iN25ALOVDp_fj!f_i( z?2W#@!zA?^Q;c0Q?=P~Vb{y>K!h+6vjEplSwzQAb+r$(<>me}f;Szqhkt-8!a`szE zP*0P@j&yL*@EWehsDJb+sz70E{PtBOOUCZV*sAFG$4BGXm$k8<{62j3 zQ55d7&M!{Xr`h}9tVEx$S^=$~cOGPcE+566mqx$8g1z=Zc(1sAEYAbf{8t|?akF3> zM#%?9C4`911tnrd20d+N7yL2k#!)QHH)De{?yk&jixZmV&CtXA0l_tGcsXWLo;$Nr z=nMv&kkRJRq=?jVR8=!QE>X8-MNpYp1&Q%z@~L=NH5_-z@sIqmuYMqYf`NUZgaJ8_ zVSp8OB${`gnN_)4(z=n1f??7mMxh(RJ_D`|08+S+{7kqj02t?C0&1-Yt_ec(vF?#! z6<@^nw;(>KA-{r|<A( zdGp(QpELWMIeX^Jyz>{Z!gsCvxyyBZE-Bk1fQ3S{aE9 zC{Q4XdSxC42$i@Api-bHde6=fA_Kn#fq%R)0g?C)5W4~kpo|~kkPP@5x|{JM1Vd#C znD=Mqg`4;@(9oWiC6>yz*?&5ELiQ1-zC5ZyGXBwXFv~#};U~n8%%|S*EaY1)AmOy% zFVf2%o8*A$ajte(8=YRkmZh97C8`0FFssI-uFnk~QwaDcxFj3k7jmn6H21THpGU#) zky<5cD({awqLCjpjCt#5-5e?W-G!#-6hV5IQ#LGU^5p3C0&26HRpZXb_@vL-UoFLY z#NRwt&8}McaeC=048YdqsHjc+aQsr_X|SdIKBVW9NJC z-~IWTYjeM%Z1}wOf-dX3n+o0GW!>D*kblx|mj|x~R#!_p#kI%Z>N%2e6Z9Vz#NQqd zH5)fw(daz&=1WQUT=dh>(6Ufl)iu}sz2$}v2M98{hn#CkSb`deNXNy7rvH1{=BnX8% zrMB?QeYJt%1y9~f&sPnXq~;OnG^7-p?N{~alEIZ|wZRJR;9mNoXX_3MnGT<)KB+Rg z!_)Dk!l))m0A(Ul(HQ%B#bbb$4^xcyuMb!XAIfofkNW)1Q?VRm^z+4U{$ZYLVcZT) zmRm7U(OKRwu%%i4{kM&`*YAYo|5W%C8?V7Ef`=V#)VQttXSu)o;o~-YXW%Zw{3g$` z_=yz&og;K2gv;^%nol+K7Mv|FIK;S?qudJ`TplnM+`nQmeCW?2To?Bgx}_PhKMDP_ z6s&sxWw{V4+B9?sGkuLEK{p7IXZd^U)QM9j)sHUA z4x!{j`eZl1c^vktZ;|nb$7v$ZJkLO--?!R~LcV_58VN}Vn9t}Z3aKz} z@%>xMVBjVv(N9LkgE3z&OZmn`D++N|S4KB<&jNg>=^eF0dXHu(3H8?6oZriVYj=Hjv1QCN=hkf712BBTW@4Tvw<9!Q`dDdep zz>kI(y#1kLYQXByQyss#PZMhM;_n%4SkU~Xqd!c%+x>683ptV+Ixi<(dBiMEdELT# zz^1~a<3f4>zR~v*IeuBT1)~G|vC@?t%CCJ*Cw4rgtqG~u4-weLyH@G(UOu^q z<-5kdB=4v6mI?52pRH5c|SvSAxF9>QY)OmKUjDBy&c)B3_~pd%PLJHx|^SgXW6w|iU1%4DRqfR1eUx-tJ6i0RqZofBCbFg9Nj~OVo4r{a*^OKbEA18{uH8 z$o0cmWvhg7#f99!cXI0uu}4kpL?g#6Y5U>2?H?DPD9E|vW0`MsHO0+_lxZZ~W7`qN zS%c{r_bfcBBR@RmE{q3haee=MKlI&ITely$g*ZI2*aaeD6iZQS;D4KMervn!xlv!D>t@pbQ9e$MALJ99|f*-$of80G; z5B*@6CaT9JW5@w;Rq=Af@IO(f)8NK!TxuGWz-gh2Q{3O*j|v+L+|^R6DGHu`%0zrC z^-MN9iyq`*9sR+1eID^=+EvpB`P}_h(pG`K>m?mKx0Gd4>fLnlL?i zCdW^so%^ScDhnEah3$iWQ;n@df?0jJ1lJed_7lubiAG@R0}tLaCY&Ch5?HaxK4X5z zE-@Dw2TW={$$F1zZ;={Ud&Abl>2dJ!;Z3=>*+P1AQvwGEa`(Xm)%)Sx=N>PK{x(SQ za6M;?^T|lcd$NDw12>I%-ziA{;`6X72OU$@{D-!)m-40(H9z>3t|TK#$RQZ)+9DD!dLf)Qg-?Ny z`l`nEy!*B0XiLFJsTsjF(Y56c7PgBgWQI$l-Y>xes`;ATZf$BfahVl-Sfr3FyW=t1 z1FO%QAKk|n^6z)2U(c523sNeN?0h|a%&}HmbN80ox0Q}_CshpkvLTd9Rf01I^@b_Z zamh&spHHiANk`ipPr~twik}%uW>fP`0WV+HdwvC867>{)t6xkvLmwSnR)ikt7N~yS zm*AaWEmmA{_1MUEMxY-f(6WRO1$DzpUK@+gQ}q?jz3x15=aXoBA8FC3Cb9JfE3iPL zwySAa%KG3rFJ|G|RgA7?*?lt-j7ynLoR#FgHEJR-4QYoRD@vYJZGQ+<>YrQW%KLTL zC9u5cRzAom;++<&kUBNb_4JW0DwCub%(lqz@OxJi~F9)Xk} z`x;KE6_u12)s=ijJ*&|7m;^$$vie5y=z@SlzNvH6FjgTGl%u+4dH4}C(G(jgVyoSu z^StU&*UmbHyS((~S_~|tPQTO`PrCUI|13P1QN>`=?ny^EyakiIobsY`wULH znALU=yZAu7nlz|X1>Q6`$#j-E*98t_kt6I1K12#ythm884TL@r1+)PI0zm2r9idnw z_k2&6Jn@P*;)h?fE4~5zZkMRIh3HOTQASP5TC)_?##TZFasleL(hS5Y^2;q);PQEe z7h{R$G){qNU)IfeuvRJmWisB8$Cv1k5PD9t}l7G$mssm{wg*w9)O@sN0GWpf5IO1CUJ-XP1REaaG4xpo zz(+)10f@X@#b9i{HqH-&LiGc1aexRv+8hesiO}-=)*(?%+iaW+=K<)eM=Lf3aC8N_ z)ggckW>tWl@We99@6-S4N;+3ss+1fdT-XpF9n)XW3htrm_Dk`J(`RMa6fr?4oIw@~ z0;KVtIMYdl=BzE#nYz_@P!Cc~iK&9SLmp7=b|=%HzT}xt2@9tf^^Fd{avcL;L3Nf; z760Nuzh5v$(2BtmlvCTFFwX#ckMpV>eH8q-6Ii zQG5mt=M5(wFC(hi1$MwjzuW-`(`!X$l4$V=q9X4S(!N-5*y7;K5u0ou48ktO5Vky{X0Q?2SshH{54*UJ+2Q7x5Q3%GbX%rpqxHi+zyk+>6l`VAuii@ z1LSw4Nz#1LnbEE2qb%}#vxwqvjc!Hwaar=cGL~opInEPumhybqm+aQTyjmUU6Tkvs z->|wuO{7@>4AVU#_;g2-!i6^^zKA_WfPln}FgyzgFF?qUT>B)*?hn$g7hQ`WTLQ%E z?qtnMW=nk3uK9_5{s{F-X<*~!G1V8oIuB;@PamIUmWM<-Q)6eYkc|3bKk^fj4fJi*lPpoLBtkQZ^|>&gUbOp(*~RFagyw?jM5-_3@>bm8B8%T1 z<^6uNw8c~R@(QP7NC=tjQ$0QPO}{24s`Ys55x{zzpg#mePkTZVrn9C!$cyO5J{Ps( zF#2S4qroHLkb1pDV%Gg`y*s1X-O!xLX>L1TazHK1-3qevYFv5||`;AHX+Ta0l&v&YH!;c{fK4)oLH z(^S_)tL~38i#Xm}=aPMpU46x5V<>6${Osh%;sZ7h94GI7euzc9VHFvnARJ;-AnRfj z?eh`#IzJW!D60vij($oh%eZ97tdJSaTXh^rE)JMJUd9T4TF-RdCz>8NDb2xN_J~zn zp#1{qbG2Z5fLHZb=qV<P2!1chTj@FH`RCVsSn6$!ANUxMBMluy zjrfK-6M>vwal>XMlW4=Puwt^aXy<@Z=a+pJQ{?BXQ2i#Q7+w#uEinNShmnY>q+LwL zbZ>Tnw@jehCQ}X^jhrlVshEWWllhkRI{~S;Rax#1G7<2)$yDQL=`W-`(@EVgi(Fsl z9QbcnehI2SHt56gWaC1r&4m=csB5|=EDT@3{Ao+cn7J!CpL9FBpr_25OfCu@2lgW4 zn#z9_lRae=9w{YQ?18}z5Q2K*efNZ`lZT*5q9A#J5YzgLC*>ff`Oj5)KEx>na_6&1pfG>AP1ZHBNRqZ72lOZJ zoiE+bqC;0neEk>X$haH*T`A0_a~c<(byW&}Gqz0LQ-YxtpdL0PyWR`&WHXZxvguEV zU5=%m92BovbPjA0zbE3~!E)b*Iz%lXIAWc-2V5j_ZS1UEp2c64;Ps7pnvCY{ejw!9 zFmUCYRWx#72sz-v&F%w>aSeeCLI%3rqrVQCB@pBFY^}V1vfOl}j`~>fa=fz%|L*wX zTgcq^(4TBhKfe>X2g5=jXo094Sw*C;QkJ>m^XPh6t5l`$3AJOl6M5 zC~+(?HwVnmg|e}!_3M_js5Seh%VO*a>01(UlK-?_JQ|K?xsy>7*69GCA9sO?Uk)9} z+2o$C?5^6;Z&3~dCecSj5Btxs^xkj;V2l@)QIyFeN@e!E*}2eB=xmPQiHyQfV&7 z^qo(RJD+&&428RhH@XNn5=82p(MJSXtr;5IDHk!xND26iw3{;rX<8xlin=o4l;jm? zo3l#e75*<*U?l`DZVu75#ZvtNE*L^KSn0*GTj3Y4g`h<~{1>J=^BJ2IgD;DLpZ`GwHkh5O8lM4rVk z$wfL7J3@ak(rPivZIR@^7)@Fvr!CTAN)}`57US9$;|CTK<`)xp7n7KmC_GEal1mSi zms0eXQmvLAx-F&oFQt=~GSZeFl`Lh}EoHSWWe+Un%rE8cF6A*V=kqKVNG=yDFBj=A z7h5eqc3Up-UoIsrm!&P2mn=W2TYlQMTrsfxY<~Iq?(z%fl}etKD#?{<<&_%!m0GKn zmu@R{{wuFYEA?qBuS-_m)UCX2TX{FI(lEc$xV!S6d6mku+9bL9L3y=Vf3?MGwbji_ z`g#=JeKkqqLpXJ|qi)cuKI-})gEu1>U$^?1hhp<*HSWySXdjjiX5uH|8)OsLKBpUT zFJF-$V3XaK-@ON~+kDjQ4rAQNcwkj`Bl6{Cf(^-n@`6M@IdOC&^6_OnKsrk~ZDr_9 zJ{);Jr%O%nj=4&@j{mVTzqYo!w$8l1!Lz<8xxS^mzOBE$W3~R%ZGG2&{TFF{FKvCl zWc_#D`k%J-gMszK`E|OahsL}C@NR&lHW*Yk7!5X0j!?~47rt^t=pUl zOXu#7GFQ_#@UUXUM#UB=%nsJv*L%4J*5R4sm!-82$X$6K2w&&!WXXs8Ax-f6KL;lB z)Bvc$P|%_oJvy0oU22kO^o>&wmjqCm=-xJ6xXu7Z$p}Z|O4W-3+(AU)LD!2@EQj2> zP~ZyF6qp3xM@Ff9XjPy${%wPO=aRW1o490TCZqInKpRb7U{HASxm+f`{CK*|oFf*{ z=)sfuubT@3EbkVO=MdcadS_q{@1hXksW!IL;DqwoNACA_#I#UnHp~Jz_3%h3cHDUo zP`?>HfdcTi4RAx)n4WMbwL3uuFif8>j1L#rN5Q~TLZKo`kvJ`kMr{!sE(ZYF(m=jG z&Jvgu1jcR3&7lE}gNsiq^=ZY+9Pq&C4~O%1XFp+2-}g)DJl8|$%PSn#e^=(oF8T?X&SOJ}($G{_5`1(@ z*;O7Wq1Ym2fuI(_)0+OqRV|pjV+z2j#w}K#CzP$PU$!V>pF6=r2i+%lgw7{-v%iL9 zcNxED@ax1kKZ%v)$r6i`MZUI688E+_Am?MmxL`Eslzv0mP{y9CF3$6I$Un?%s^1Lh zGV{Crx9BqSzmb6clgzyD#@CrYYN<(260CE@wK8TnO;t_Iz4sUVhWgCTEz8fTEtb8A zdVO}S`-(|(4}gYM8HI5MF4q_RtXJD6*04xts7ko5wWR;tyGJ7^PG35%sD!xJYLLf0 z53Wl2s+?j`|3w{qW4&*Fy8Ls=&TNDwG-a;zTxRt0D>MGzYwd`c*%cG-_Xm5I_3s}Y zoUMC*_=}Nx^xJ?+)mRS%8xw4$LB%n(bSP^#NtHi5@dj6M_;7cdI<-m|F1r!o@G(-4 z>>@`hE)s=Bazd>6J}~R+f?!qpT*PjqXlnGOOL#iNx|K{aB#N$dwC~Yu40Vf@Kw?*j z5DoxSe%cEF_^8^tY0{`$wMAqb2UbCMo6;DcD)b3ts;(+s?oeAKq|;f*e_K0>pC?j_ zqdY97@MSW(Vlz?07B8^ehZGXu6tMz`+}c;8ra)M(;9(HZI0yyaU163`?MD5+6ipgD zl@QQ5dw#7(k!-OT30HH`T?G?|^2@Y0dt6PG%%K`~-2!_75_-nQ-Zm%#p6P%9YpDSAl8TfDp4fzn!yn-Ht@}Dsoj%kVC5AJb+30j_uTnwY9nf<*IXjA zn7E~}yq~&BX;+0G|LHi^bt|vqQISTE_@Z9rc`1+aF9n}8n55M%CO%MZDGu0bSMzy| z!e12QJ;hWmD`E}T3ob@w*CTZN0uZ`C@yE&77BPmN1Tv3BNoK9Jl!{AI&?uwOqPro& z7)-o9StODy;HZcBRUbrwr;aE|UuqR*<@efeB{_! zA;(|p4-U&&OlS9`F0!#(0g}Ip)5u@TO+A~SHZQl;pR7vv-gnoX=SY?eqkbBuwTRVx_4ete?oFX z1sqxj6}$%&4Q~l-ziThJ^SV2#L$tPMbX@<}8z95`PF|ej;xHU|*H`ZPaHs2wQDW^_ z!)L#z?TMR`*Y9W4oYcM7GPY9(&Q0oGn(e%R_8p)zxLz8b^ZRu9kK0^e$|Y%?ZjX_0 zEF`SFb4C;}dg`?tnKgA|=@%A}MW#Z0N#SQb+zdrHyvwdKM>3vk}Qxb%rkqk3p%a z3_$)aNpt#OEk{uLczSmjJ3qsaxV&fp@-Y7{ z&3pe0jvU<--FfWR{t>>Zp)2_-DL8UQ^RSGNvnA@+@xA3) zE;AsGM)eO}aAl?C>!+($k@c9k#mL02&`__S*ui>q>>d*t#4Uyoh&xV^u3nMXzEIBp}-un}gPHpIdR zEkmrg6>`l7Qmhui>S*s#Mm&&*n ziIygFmc>_4#vRCYQFSxa)x%=hgGKY>BvTeYjcts2LjVQxhysZF?EwU^yn3OE_18-m zJ|#m_CLyqJj%0#L1OPlMjH40l6OQvCP=AMk`FqpFfcd&qoK5@P1|C>$w+hXVd) z!b^LU3>Hm6n+L0lCaguUR!zo_%xGSog1+BCiMb+TUU3RNmTFj!H6oBp$=38#QIa||KRD{R*(8TY^{C5)HwB|xnl!4v$3#(LDVt;P<@~o zuQbzNXXpi@iuRFV`)tSVa+KOSyf@_dbNq(7{O!TXhgzGN2>IK2F@a#wES{cp(M>k9 zr3_JXllpSG%t_u;wj9baoQ;pTK0{IW=mwlhP@AcAaw;+`=dCK*ARY0I_R)&= zD@MI3XQEv0U>@=I(H-Nk+@)iRZ;$0&1X=z8tHDWmTm=aqEHX~GBS!Ek0wn+O9aZbV zEYJ>;(nrE?!ZJwk2|{ie)cDxEvmi6vYub&YMR*KpqL~Iq@)urj_XihTn!pJBAjGjd z!}G<{z*B{?qPA~K5OOxiF#YF21%X?kZgl4EmG5-XyktUH3t&sWM$i+*dmoWkY-8%O_AS)|lII5li zgpiy?q>$Ca6CN%L6yJRY&}pLRA=O2}KOT%a+fS61WC0#cDyxc~1~76x9Bk#T&{emS z$bujxkjo7~+~XVK<9W#d3F*&Ns5AC7Ox{;WP0K02yw3)CkFL}srf0UqqQcMQ0e~V} z4=(D#UIk{~1eN-iW3UXdfLFB?YQ_qwML=!38CSf?6bCVIe*k!K41kY^1BH>j352c# z$>X^e3HMFt*61J<;%%8E?u2PCvXmM4xrlzci z0h*#pz)-TNs^chguvsy~w?19~EyX2&6FgN5FJJL8n(=Xbze3>-d_ zAkHfK`2%#c{0?ExDB&ZvM%z)HORhME(mWVi&aF3`qRbEdP~73{ z&Ymd}ACYqdDCub*csh5OA6NbmqFz*Aqz?LP15wR}`anhIV_-=6`pkjiwSI>i_1^PS z=G;AYTAL-ZSv$HBSBIM4|E8o8U}it={>VB(=Qd#41Veg$x9x5vv&eIY$Ucw6@Ch)ElS z#8*i9T_ihM-T1~W{|$bt-x$_P5E^jN9B_3Ua0?l5&l&J&81Nb!@ID;y5&G_{`Q0yJ zAaaBKSvTvQG1b-NtIvGcbgI6`-~RrLz@~ERad?iT$4|&t0$Ux1D=}w~G{cfWWv}&N zdxai~(fN>>quSZcmLoJ=s5xBhI9w7kT$VHZq+z&XZ20-%aHY^lwdP2z<49e|NPW)8 zn}(5hVmLniieCVn?e9E?pI z9ZmqklMGsuOiq)`p_7o@N!G?m_VG#h(IirMibHFP%V~-ybc!!`iobD6aC}PmXbLSn zEv7Xs?ldhKIxU?$E!#MKa(w#K(KJSQMnP*v$!SJ8bVfCIM*Y;pBN*UBttqAQo=xOL zbRvtf+B&(jMo#=sD`%BJEcXF`nF5_%nYB9NEaM1 z(~agm8t1*n=e>{SeS{Z$wHExG7W_jO0&*AbH7*2?FN7W~5QP`RwH70t7D=ItWYOHk z*v7^9@x{cWMT+p!1FfZ0r=_&erHtGqDA!=TF!G>MzfBQqOqZ4S-se_dbo#6tc6O zPi#YOxZoPmJ*;r<`t41f1*+vJ@6f9Tn6 z_}Kn8ID=FG5kQ~k1_%nJfm1;DXJ$om&(~bpq2mr(-W*S)6EV!+nWW=NnDTVvbv>5M zCM#|)-QA1qGmXyr3(oKlbL;X|t^I?V{3k;)v_eQlt(GnVm`lC1VtmN{#`E@-;Ek2P z^Rur^MV$0o%uk`HPM`D?eA;W}`Qzmv9RXE0>c8^i)g@yq~A}`lo4)&yy!MOheh@GZ|g_2^$~SRaXBA&Tw^Q&z|z))){+BJ8$&Ktu#t1 zJJfg3@I-l|AHW$7|Np=l{v`tH^ub2UU;OM2sTT)Zohs`G+ua7I4|n>lZyx>}y!PU7 zcl7T1q4qPN(rB+OV%ik*l*{Y_T3*AY>tsvHRy>IHVEbsjiRltjx@qGT^<-`L#5xm0 ztQ$HXEl|%a-SO(}0kV10s+fdpgkA z4a6QaiR-g!r10TOP%7#1`@YVUrNGBOQg@?;6!;%x4P%ss3(*%md6^6M_U%CsRnQ+|M|9f0Z zFR$rexE5EV{fh0`|1(_6zp%SYhtj_`P;PpE?SB8_Q6UKCe4u#!{$6$s9oI76$|PA3 zUTji+m~+YH?!w6!j}Y@}TJx8uwF4e2{~+oYJ~Gp)9=d|iF8KMRS2+{&p~L4B|DTI$ zbE=;Wj?(GJO80iqOh;tzxrH@b0So zwW<2$G&KqcyVcHJ5CQ*m@>Ot^Qg3~*jeF~-|FRrS4!P8Z-+tqbv`LH^CJ3BMhflx#BxTsd zYPS*2*O||(($NIJw-JG6FMt>re&ER5h?F)iV72b}!1HD!3KL(ze$B9%e|UqW+F1a< z+tDoidm|dlUWmj+8@7n4yQ3Lwoe%o2X@{xy#7KJOam83`KYhF&E0tZyrIVoxXl%ww zFlF;GN_}__BE-9}ALlnO)8n#Bj`4*;{s#o=?|sJT-`FrW#|o7{C5Zt4j+*>mUg!R) z&#=ANhtB-Rb&g(DE<9oVe_vHptLh@<`RNd-p#t!UEqYb)vf-8iXh$Hl#9vh<*s@&V zTX~9%t&aKUTsal1lTm+Fl?3JgqN?0(dzSmJQIr4sszQfAtq#?6DFeia$p{}p8;S(eoS_$H$#WTs$-hZ_sXjfe9zlK0fyBj4Nz9}~QzlA{ki>gA0 zXxPyo`hf)qkW3Kfg98m-m%vc$jI zkh3-al+$4^tF^Z`lT^8Xry1%?!G?R8j`>}2sQo(s3K8|~uRg=`VINF=lwMVgSL4|x z{-VTu(M+nP+tTLSPP{mufLHj>RfV)ad)&N<@zqs?I=f0d{0)22iOs**FjW%5UW2* zmByQ%t62qgh~OE;{sDoqW)W)_iX{96fm#PqHCu!ecC4n2huZ{wYySsok`96L?L-+U z>E+RK9;!~4WhqPFS`BOe4-lwC17TnMC8fzwdx?NafXHAV>>v3bP?P?XD3&w73AwMW z(qlPT7NcvP|5d**OM6knruD=kz`!PAht)ACkoV37mdGb+PN(3(b`m zjCf2{?|AI7%=ZTQpc|gyu6IJZ zy>3BNJMv>+rZ__rj?bUsw;CtR^jHk%-(kdcaNH41BND^Wh75kUyY0|CIJGm~J}9M5 zI^o)xMUr8I>`QS$53ocYo6Uy>b}))Dph!Z7w@|k`BKUNZ8D&qp#M?TEK^R4$eK-U# zMQw){6`s1i!$?-;(qmV}M6oRbh#Qp=d_1Bg8N)&dny4f4WCMJ@7RPSWp~KzZO&^|d z?6G)8-Vfa@XN=Jhg-N1#KM;lW!98@y4;Qb@2gzea*&pOP2{&*I>lUCba z?hxxkIy<^OO$bwV(1BS6G;z)o!exj=@YymDP(d+bGj?X-1#rx!RFGO38Z3fjgq#GT zE{6iVft3J{7A2g^3k0@8f>?bqG$sHY#%z@VV!>de1R}S=+paivWHPn;2k3rlBBzKP*+hBm|n!zAyTFC@Cr#F*+6CPXH(@kcf@ zsZRpO2PYZyDO99IHwk^f1sAJtV9dc7suq+F(s8k(2%#QIVqY9`#rOEg(ubIG+`l zq0Q<+2}k!oVEpbLhES#Sa&}T7VTPsL%;$CD;GClCeNQg->otCOx#rX85DvBjh%#sp zqZnEo;nY8kONN zK${Uu1aZ4hf+~9_Aw=mWPD3OkkD!g`<*Dyx z*7Yf1y}-qI>S;IFxKv0+MGmJ48EtftD0p`%Itg^Pp2!tg2L;9cyp8AGAd$6UWy%@DfHt zoP2(BWm@A+U5sg0Y0&LOL)GSm$qhf#csSoVAhllUyK5dGm)pMly=@iefYKf)g!!WV&v zB!+Q!P+4}@7~-2w=`^XYAc`_^#Jtw6)xj{Gvza2YyW3;6nW{MVOX zjeiAyHQ6wug+O-oV$N`Gm5sgaNiC@Jd`3@;fNr2qBSa*y@SYF#=Z6{6p_I_ zolZ9~aIf7B`(u4Sm*byzI)5pl{ux+SK3Qs#1@N_`A^|#n4=~Ioq+4&UdQM{2IR9bEmW*wCYaU-z-fc<3@PaQC`{*($M)Hx9R!qqwT=;$}#jZ~2>ccvXn5#LL z;kFXloIPsux;H=BmgVAOW84cIcgyGV6P%#f2Qgx{vyUjuvQmX1)6lXM7t)ej)`K>B zCR(vRYgv9=No;vh<{Irads$jrjC5IW=+gD_%-knW3W|N7lx4p^lC600!pLZ;G~~?6 zYE8HPi66E7|J|L=|8j!+=betmx)ObYtFq+3s{v~lzQ*p`A#zSnq3w8dc6IxSyQ5oe zl6eQ!9r7s}il5Fr%~t$;_U))*r%{fBZ?^)?Sg}W0AVINLU9qdCPfG{3^P$+Vwp};E zRkK4x?s~(W?{>Fg55Bux5mFwsO_xIrx!>2^9lBXMRyPb(3cVU}`y8S&=D$Eo_%-bF zr|a${aYb%#l)Rp^Hx;Y$Wp5^m=BP52A|Sj!nPz<|a3cNm`0JTGo#$%vS(m=-FXk4( ze+yePcE`5<9qY~J)!yXSSNwVH?YYlE>tBwZ$F0BT{Q7p2s&YbOtC{8UyX|(Jyx_~9 zFHF4K`g%pAVYhF>QuEjMOL+}@BPkONmJ?YbjlX7UE;s&Jc-2B~%H1>n^VbA-uCWU6 zF;x7+_V)=+vXhtjZxb9gGEiHr8p$i`f@?au9>@ER0%4XPr2aL*@nk);T&qG^+pzIS zuUg3ildN2Y-Smq%81mNycd7y|S4FrSfPw_RS z?iUmYIH!Y-^+wqlzKc`OKqm_;JF_PN;g%F?q%4uKE16UT0sU|jA3L@7+hxhGZlrBeR7fGGValkM` z`}#$EOfVo0?`YQmFj2R806=__C@4f|iHX0>0Ig>R0+1%M#^Qzh2d;XE?qp*IE+D0! z!O#Ub54dg=U}3Vb8VrgPAh64!7!2>7Clc%?MdSgZsr`puHNzGmRsc{DFJu5}ablxj+6!5_py!rWTbhxB>7-txR1_5^-iUOttq9X&5feW*wD+_SITp7ei zGCG(6LOaCJm4UwdW)cr)4KdP1-oGPb*a+pgL;YEk|5%9O`UBkky&}$|y=bW?<}kmE znp|L#{)uctT%}Q(s{y(}Xf=5-J+xYIjtEvRq?5C_nnlJ{Nh$<$_5d=T_mOU^)Km8+ z4{Wc<0$$9M?RQ`Iy=k8r?ETORH+VZj(YIMgp(iY{I{X*^|0VY(O%Y%ra+ zdCg`)sB8qNr|(JizPG98XsB8|6~MddXn;J)w+{vaanr1PR`nmaDk`s6d9vErq)_(` zeJ*cw7-?jx(xs=z!S=SgHm-OQZ(P1omWHd)SSjA%BNJlY!}pj-D$U0of)O> z91e5&TPB)_(8<4NqJ2>epq2hR);mz42S>+xv!$eHoa4(6S8FYdA~2usa;(>9R7Wo zADDvptKNH->cnnj%He6G94AM3=& zDrSQe!`U482gm^}@+6;3q~H{9p1%5M@_M3F;Kc4CNklanYLel=`G98l`jdnx5+G>L z$)Y+wNqq2)e5Wx75caX&r=W(|aE>fwhorP9%8jlA%h^?ZU0AULYP|Pqf3eMZM(suT zn?gRqXzi1%FLw&6`GEna8I>jwJZACt>Pm*naL@DImn(06ct`&k?rL1I3vE~#kDV;u zXr$uZ*v2=Qp_8DS52<~wT)}1sccq$!yr+I|Qr`c$MCnQLnbg^e{cfdr>fwIA{?Rsf zYw$vQ>rT&hmCz3gWZ8Nm@x|N5!lxun!;Kz<8M%9Bi~+q?b$$6pmxs_kad+*R<>J)L z>6GY)4Yl|e_XbLZfzB5L6=6^kpI=<|EWkp#{!DSG zQ4djR>aNl)y*E5w;EXWVNPDGCbrpca4g94e2>^u1Wk#ftgdp?Sy^)396T6H0IkRA%p`yXBMD$7P_SGN zf@&Rtt&f7vGHRmD+`ue!Es|Un;|VYTl|u1hP$%(tTe|DNULS{TFD4im6}kVG>B`4(~oh_L#Y--_qw zq)=~X$&dUX^R6*RcreE;1^^EZ#-P%58Pw5GaR`tG0MlqjF$@YU!GbP`P#KInTTjg1 zLp*MeLCx5ev~mi*vXnEomaB@l1_OdD96x_?%@jvyxW}{HhH{l9di#H& z%>aqR6xcWEgu7+1Z-zHH%uh#|E{;+1#bMrBZl_;n9Hxf zl|VJ9P#DW8M}r)85CTma^&aWNQWQG0mz3Q``8i4XT6n#nEqPQWdA}&CEd!cx?Lq&= zknXkzA%ncH3?A@2!pN#6%h~Fmp$+k#T6*w>LH|8(@afkv!~o2(k1=^2A$mi+4biEH za;{(a%jnXiUy><9#UWJ&4{eTNb_oyrx30HXnJ?z+?GpXY?{k@bM;t{{#s|-x%XkQy ziRpa+r+$OcRX+V?7XhUC)MR4sMgQFm$ou>li=i~{q0_&x+6e@?=t?MT4`Kg}F)j*G zhJ_UK$wm7-qGPN27L(h^*ht%q!)kLiC_wN-ctAP!35eeYoNsvHm#=x>1qFVu^CYBa znm{w_&ton}-`lT*XF_6PZbkQee^}2GboEhIhb<vDeKyzTu3Dwj|8dSc4*^NZ+IA6OUI9H0j`xYo2Y!CuL|17OE>H9|i!ntQ>RAaR#s_ZNF73g_Tvdje%H0IhqiCIs%Hc(ZwjtmB1F~#!Hc*TVZF!beJOHiq zw>yMa*0&pWWdPxq_#=eANwj}-O3SLUj??p z*9JlBfZP#rl@Tp@eR$5yI>fM{u*V^v+`BC2>;`6;^t#~rSEcHp2F;w~viIeMo~u=x zWQLkERCo|8%ARIMpHksQiGpB>aRyZ6oD0Q)n87_CS<0%WQ(mv3+*_lZDX9JCF54Di zOZFk=ked76>`lCG_0vza$v-m1Aq4s{PZq!-K zI&bwe*80g;4xnSwbHKR0DR;^}WU;^~85OgIdRGIg$HhLBQhrAyQ&GEzR=D}_64m%S zMpb{-P0lf}O1`2FXgbE_p6PQ>e}|bEKBIb|opl~mOA=tl`83v_o9(vJ8T@^t_j}_H z5@lKv)u(irA4(OmV~OsdgVNo&|Hdu`$Qjnt^B+Q-dq z0V=N6_Sw^_;h*uXg~5w^m5ccAn%SGyQ!V*NHQU#`Ej6N|hh*=LHVm&CbT1cz7=53P z4usSQBCfFIE?&`?20811o5w^{dmk{1Q(>QuVa|8nt?xN1EfQ1h69XDxb0p%B1&grPB; zwzfUW^F9rEyg-0(Q{%2BMs^c~6%cTF5uGMe!p>VHU*;1kc#r7T=YMnD0r1a51k_A~ zX3<@oG$2`ggRw9|9Op}XUJsQW;9pb$fEa@U*dsU*PeG6aAg6juaL)3xtGjnB18lymU5LNA{yG(ya zoYOCWYA8KkX`l2yp*Hn(dqkaRu9+yJ%r=#lPW24cdFl$CcZHgPol)OQSlTfpbK^H? z3IWtNSra+l+)hf_!H{UD*Oi6uY-vPWKE9nOLG0+h1N+}J92P9DigO(MzSM5>W3qqM zuyYT6{(jWOWNJON`Rzm#;0ise8UN$Rjc{{TOtAa%*WgA_kY#z#c}><=schp&*s0SL z%xgTB+>36r*`tB-@)zZ4jboX{hr6m1#v(DpC*y?LiAN)@r_Qy+MqsrK_zdst>-n@_b>pqL6hljIFFa?DCGSo@Z`ODeP4ZWw@i=S-~*>bJeHAxq8o0J8dhb(1%M2 zITg;2%o85be5#k=9x#I%e!2TF3Lv$hn`7kqLA}_mWWL7wx0`#h`wW|MMwdl>Smy{u z|Q@PS)akJCq6_Z%=e_tV^d5}i+ixo8kuBI6V^6$ zrRKdHE`7N7RWsILu!=%Bhac46CsKR`G+sW|l~k^V>hU3c@ogh4@zEs)`bZpA_U8H9 z1=uF0u@L{nLQ5%KiwaIuee=bu3Ci=jV3nko!s#-|uhO?vgJPe9r~STkFVuPX>e0d7 zZC8O#?nG2Mm^{)2wx56+ac$a$>UGVdhDgY#DYsflUC*uz3Pr}L_{e!>hKcHTiLNzX z!(W_ht@<$imLl5&5$)?D{Aj;Yi^aU9`nd-UBV!KtzHooR7JR@>`fPIn){-pO7?V{u z`0ebvj$+g_o3z4_;vM!l87k@6+Pr#LC+E;~+X3tUd{(2DMFPQ=^T%`W&-v4xyS8NB z#gC}eq%Hyf0$aoUbj3ED#4*|>pSHn*vEj0&<3!^)_0{eV`6V;Y2m_&GOBj`m_@d#U zJpsOxko?5I^CU3%SnpAMzV7jI(eaH#k;(TZr&7x`A_y~wQhSloIN*)=Nr{9!Bz!?V z1x}iXw$1K5qZ&Q?`-!@LmrHq`D{AEo0M5&<&tfoAA_}LGt=Kdi#M|YKn*+DQ_m)S> zf7`zPr5gR)aQ(MS;-dQ}HaBNOCElpVuy!-XWK*_}jZ%&gskb z-`#P-ooTP1BU)ccw!O;~DN}4BzG?+!qqZNNUp!>ST+#m#`4xk2&W|&Ot_yblc~k3^x_n>`uT)v zRV52W{JkEGq3(8F6ecsaAwv&G3PycNGw@iIz&}u9!>6AvumdN%qz$o$wolkD(RiGVu1H3u1&Nuy~lj$a*oW7o!WFPp9 zFoX4*vt?@}&FTmzyk6LCJ;N~j4xI(pXo+gRT&@V7Fawn%tOs3IoYH}7wNGNV(@Tve zL3p|QKB}qbtwPc+3D#r(-V2(0H~C{n*LNaX6F##{XCv(ro0pw@CnR+|$!!fDgnqetXjQFNijU<@S)3qabQ`x0C zzs!j1^%XLWT@pHeup*6+XW3^~QnDHn1K8#sG&jwqu(ibr%4jmd9Q%0WCxoeoWbX!V z@4j!sNxor3j<@bBu)dPnV(|pvtV~H_7QFZV)bN1YU0Th*O8goA$SaVe9sV%iuXQn6 z#nb(~JezA|ag5ocrtoP4OJyJ5*GM(q--?lFP4?u+6m)->#K@l5UE?0Zc}5hr^T_yY(l@c7dpN=bm6^xLN|w=13w zXnT<|8H1T)-(tvHpMDL`;_+78L{bp~q6ct@CI>jRmq~^+RR+lbvS=s}r&Y8|bo|P@ znV*~%^O5|Kl7H-vdnD%*`3`Lcaf~Fh2>DrOJ^H4ybdUvfQlHozgq67xVb3?!yD?-8 zEKv{LDIFHEGmoBD6|_vCVLo8G4Pd2+fP#po*^ng-5b%(sPO3lu89 zTQR0vK(aI_L>p&L5@LZzn%Q~57$RyxtR*oGfTbe>whxg?Kovj`K~uAEJDl1DK7{Yg zgF|BJQKtY2w;0gn-oQ{E$r-AluMo}+ItcX+5zDYCNYWvHXd*1+5)JxJn z_ea>fz`EPZ9V8C<6=fBZPK*sKPeeu>{Jcjj6~RY{Atu_-r-{h;Hw6r@~pai}{| z0x%{5T-yrKcJD!7T1xaV*C6yApa8_6GW-I7ETc)-;g3%(DUfgyNnuieXAYZ5lG1&w zfP#+;n3EUdPhzh|DW#w?Zg=icGE+ZhF04*q;)3MwxC_B=M7klBPeVyvnFu*+FrL=* z5U@)r!E^~4`2f-b7E@9J`U=SSgsu1Dv0!SHBnYK1iNw-EQ3Tk>mxNuS1R9bzsx*;~ zGTkDSR3wbXb;M+Zrr?nGvfg)JCb%+bsSkk#%A6m0SfE2BT!oUA=K)d@9!V(|WS9eK z_#Hx0#$A*RoGu4V?s&9@1~Y54xDSc_x)p_{_k*+EVu6_yNHJJ_k8sJP09-VB>9-d; z(Pf2I+c`wn4Rb)9uu2nb5!5B}SA+QBpF&DEoH?=s{?X8aMexvfR++3Q0Y(PW0Gh-2 z0VKH(fVs7cEV)(M54lGMqOLr}zm&yQaGVm|AiP{Nm<&&H#f345x(y1T_F-tWJ+c_7 zARW9<9%?L2HRl?oLZBfh7FgI+a2hIj6~YygOqkNx2$Nh#M21qnO(tSh{j=$yCwS(? z6hqM1VCJWRYxG;FkTYR6#Uz z$B4Bm%1>Ql`VVE?t&a>$yYddTv?M+ zC7YH&NQhX;1Bd>KC}5$#_6_Hsb4#6O$4&m#p{~t;vcnW{Y9(MOTb_c7?5tI$l8lVT zUAe{BHov})Ij^1N8Y%YFD}IP%qH4Qjc{YrTb^dKC-*))qcaSBC%E6>iHE6fuI@mSz z)6V2A`?4Q*Hy0+<-LQ4hdo|z%o|RPIp&s2&CUmG=BE8I0%@CAD>~lzhvxFRd*Qn;r zzUrN23er=l=k(B=hjXh3wfjkX0BMLTAz*kb`Y!YHl#0w%MxOo8Mr2dz^6S5J5NGla z%Pih?ob_(%zB`|os_?4nP1rK%6q)|;5dPM&9r>lh@B2L}$GbX}h!MgrEwE;%(*Rh9 zwnb*1QtDQylg0h#Kb7{sOGT^S2&c{|=!=26Gxx)m_hO!1ps#GG^n_T%^D$rUF{GTd z-DjXm#>lM8!u*t6uc!*I#kvH)`hAsV{#|4Xl2m!;7iu^Er%4y5xF_8O(nkLz z>Lm8;0*80WEJZ+yyT}^4$oue3>s^$~UC=*Wu;COqK{tY>o63{CmACtbb~lYxH?3#) z&G7D9Y2CMT&;TUzc3(Gr6=R zmvrrr>Q9E$v3?Tg4LD~*)HNoFv#-YwCq+mqjk@vp5orhia7!4H`kMC)#%Be2NFj|6 z8i@Rn;@R$b94^h<*TbV7Eo9uA4e8sJh6vn%hwk-;uTzO%^oY$#iM2_KZcEFvB+JkB zO7uxbq5A6Ud4!yjl(qYgGo%%&q_x_l^_0Wy3WyC)5qv61JmxP1hkJn#*#}nCT=dcG z7kxb4vg|qiCuOoJd`X5?GE!F3rptZzW#nY&scq7Ft=jrca(XQJ;bJ**Xs$kM7P!7x z-)^>?WJA9^7u?!Y_L*@nrnuiGe87}mMiM0LK_M?U+;8VOXcpM7RxIyZJm8fhABL94 z&{KO#gOx3_U97UbJYE*H^n`KAg)1vCpVfI|VzntE@gUN*5gMW20Dg^A2v~T*6GED! z(HXd|ka4PTxc=mDK_OZDR^Wo%tUjNmv0_ffM}6(Vm;8`TZ2ufmF`-J)U{3MX+)$pj zVv!Yf&T{*A-;c>{AJaVrbDchwu#j1QOMIoGnA8U@4e!tI8!V_AEaFmpqdizz{IT5X z;|r@7m4Rv1{K{!JJ~bLkm-Uh6Q7ETafvc?)+qjg=(>^7!M5mo91z-|70zZc)D+`W7 zrE4M$fJnNHNYCj=XV({=3Q=MFQSR*E&&4W1uT?@oFGg7CP~9p))FZ>jEne#?9$1Ci z@?l(?$~Y)yYceUqY-@H;UDmN!7NCN4CP%cK?icVZY4MkBoDv>Jh|zyAgfp zIr1ldWa`GyS(^Gc3iTzYk%>0-8J4W=aP_Nj)x*G%8Ev&c{Hm8MUt3SrmbJIsU2t{W1TVM|5bn5Luxqo1(>ad&!6*aIOYYmFH@G3L>;;RdBzO%f zu6Pu27PiR|jYpsWAe`}1Qwj+}vTEI3(PXC43K7;qUWQ4)$LQg>q5bAPNf_40fiMH5?79;V~N8DpdJL8(H+WcNxYL{d50%P0>-*^)yG;(#=iJx*b zj;T(JF<6foIFGBekIT|%X||7RH9i$%oe)mYHPrcrb{=P4d1@`7BUU{oSN%|MWKud; zTlR=Z;xx=EE;3do#oCSp(;Q(0Cou;iy-P;v67-A;M&o4Cy&FgUN~Yo(h|M7+HgE`C zdxZI|NTV`5VLBb&t`LHr_Gupqd!m2sMU3@P)xQ(2A0IRw=R6(LuOBL)AM2%W)HQ8B zr1#=(WJtAM01ZiCwVsvV%=6r-w27&^l~Zx?Q|Xk`cZu}lok*S&>)YI##wZwso9JV1 z>BmkqgsAGrG)6>DG{iXT)0r5?(nQCm879k4r?JkYJkd|_(u-yNey6e8ykI8i(tu8u zHe2<+|HxE;vq2`Ye$%C1ZuN}+lj(5P@72W9(e1<))zf#{^s89s-pCro|CtUWo~a?m zrl{%{tr(_NYreFe8Td0Do@)eT7-Zz?W##I9sh-7o8RZjC-=+SZ9WfgxWB6Lf&<0~z z5%j$)!LW)L=q{P79MQi+5$Qwu{rYFXluxxnoIv#A-T5j3(;ivVrMuC~PfX{%On+6U zF6d0Jo0#@k&u_JxZbZy4bI-4jm?8^JcV*{y`b~d3&#xU(Zta-v<<2hRtTFg)JJLu@y{h>zVHQDgB|SYb-%xDLG)pb7iT% zx-4m9C6jI`FK+pG)k<63O7Wqw&U0(oNh@hKYvp4rG{Xv-)>4XgMg94*7KzQ{NK0PY zRhh(P3*8U-*3pSN5bIJw8#Rcn%c|;gLHk4-2RVpilYrfq)o~Mui#WvDrsx0XVA=M7 z_x51q_E7rv$I|Ujc%*D#dw6ntWOe(?@%C4e9USe>DBI4M;Lf<*&Ntni37efs@13d0 zo$2(QnbMu__}#yOow>=KAFDfs^T#_sNp=@#cNf`qmjriz$?Y!d?ylJEu6pmTMeeSr z?{1XtZZ_?14eV}D?(Y152$tj&HX{>PlRm)_CIW5{v);b^k4ll zA?Kw&#R4?`?3-%t4{4z^0AiF=Y2H}u4ZDF*YqP@@$w%i1J5Zd}vdE<%m9whs5WnPJ zvYPc6KR$dt9M7jN;;C52CY38;Fdt6pxz?2jHB;lNc=1L)jLW>kbCYlVX`zB6Z@=Nh zFWg%Ut4+Tmf5m7D=6%tQ;Wv)z_YM9dS;{`N)jEI;tMaj{&YUUaxA+`6@UGXi{etPs|-i_E8X~ZgO$3zg((L)a4u~ve(g00AU!>tF!GNJ-oV(oSWKr ziknE`l&?NFKVRDld+(#4`+RGwW%26C@0xv^DTa-vJH8z=-X?+LJbIZPnUYaB_roVc z7<(!b`Jd04tnA38x;!EAk#`7dhIwJu(@ar}k&vg6thMXOaSYwl6VWg)1xtO%kLaRA z^L<}tfH#!gGNB6|gG+uC8NHmsC3E!-dsyi(~ zf#!%x5(2FL=~8Hia3o1mNV2{!iuTSj50s4gYZCG8&lNZFvMLv4~; z)jeb{L{`F|hxW5?UnT#36nljfO))a!9@B%5qT;-%FZzmEA7p-1`m&drcY$OVRs5vt zaPT6B-+}B_+lmp#s)t^U=U>Q_NmA3{{Gi_oi6hn}?^Jw^ z(&aC@nOi1H(5e}slva4Rgk7FTL@Ocn+w0rJ8;Y{AW2qJ2icvx3DmRtJlP38~guLw4 zjAAuRZ*2XuW;E(kg$IWnxQA~R2Xohu#RIN1aJV@;0z*wbUpk@SC0;m=3P^!TJ7MWlf;Hx zMi^oU0cIX{_iN-bWD>v<@S|ecyJX6aEpUhi5UHS z^z+ZF^H-WkUj?Eo$)uX~u6BIh6Sy%O_S-+4u8IgP2scip_q8I0goIfBJ^Kj_IPKN> z=tA0nKmLgBW|rI|rBx!7B-*wl02IJd8o&!DqznL&1OVp0DTI4nOspEaCXy=4%wfWe zZ)G8oJQP^%;Zp#X2}l{D7o(iI5P&`wuPai%BgS-F;FAjPxDIC;>oLKmy>`Ij*9|9(3eT43@sWbLR_K09erX z$KAX62)_W)+D3nMjNXCarO>Ed%GNm!m|==h>z%wc>^z9&p&RK_;@-Op!fngec}Z%FH+4$&Bk_%G zM;`+i7Is{RB!-|seV7vc5*nh97)!(jUmevXwQt-0q;VR*I&S{jzWX4_pxQCF&S-FS z)ki%rYxaqzD;~aNa`E{oBysvV=?eF5{!EJ1?0h=dMFNLNbS;yipWlnT7S#F;_jDp+ zTAhj%oJ9Bm%danCq}Pvo5YJs@Iz9o|!=w7I*WIzN|E@1k76}>mEWnQz;JmBwk8kwF zyP>p_Mwd53?y^Z@j^WdAV)PzdYC%7g))FOYt};nRwE*8rhBXKVQe}iXvO>2Pu+Tyb zlnD&wAz`cq(UJggl!*}lDC{BVyKJCLgt^4P(tmqQ}egP;S9Cmcuz0$s~uvxIlg5n z2v5c=uqTL3CJ2}(u0j%}y#lw_pW|-Qemx2NeM@_HD6s<^D9oGGelzLllym(wc67*Z zS)XQ3AqaGqMAni_p%{3Gj)~-j<*(qoO7*E?l1=s#C|gpxw4f`=(CoDo$f)%i5O2<8 ziMQfD7sS%fq-HVu#G=^~l4*zsh>W~prPr>Ic!_6FWG@%eq(Fm=4h!fi9J-ByO#`skcHYtU z8L1nb+sMQh1O9TtnGX$u6k<5f(B4dvF?6Kbugf!GH#2)JULK#qOKr1YCtk;0L5tX| zwjxurv!^Mi@RE(J=E$rB3?u;uc?yQ)==$3ZW|Nm^^}Cx4#^ijl=N#?I`AX{Xp55yl zo;!ZqLr>2uEHih$oCDw9ID7pd{-;4+8CBk|ncUTuy!_PcRb)zrfydA0Y^&Rm+h?we zF>r3-^noY?{h3U@!n~6+^W9Sj^=+SJQjZBe7+5$BrD>3ZgHbEy6Orlbz4CG;1;QTW zeAB1VkuSW^@ltr4hmoZGq>w?gX}rEid3>K0t4s6H&T#_+U2}zQzIkq_MFF_NOwx;R zUVfNb558B>-2zA~l2n0%RGh=r=s{YXyWiERneqlg$KYi)6_YXWO3()6eWtRo7 z#DrkUldla^q1aM<&Ez_qJHyL2>rIbEJ|raWI{=m0gq~xe(*@8qoCgJa`ISz%&P_j2 zFrjoZtaKZu$5oM*6f!m{1Zn8dpT8-*k?M#CRm*lj{JfwIP*70hr1GYWb?N zJGAoYf-aOGR!ZLcvungDn3`^nSiF#kR)c7wqN;tY$Y2jHjV6S26GLi=(5@h3-!R_$ zG5K_~I5JwrNcfMn>UOGf=LI-D=B=WhvC+WWuZBb%`;n+_vK-%p6o+?RQkHxqdIAX0 zuFgBu8UcU<*=SPFFTy8?si`V!dPB*0=w92A07y(EznzWWccJvlN`_m#`@2$YFkuXvt_ro>#@d{!A32mq-d`kwz+Na~8z%x{ev}3(G zP1L=UOkbtvPqu<|1{zs;pt&WcX%3Cj{rTG(@phbbkEgO2vkG7#O`Xk6Hln#8=zPwHX*PP@X$}=_4mWC!bmT<)H@9WNnB!b$HQwcQLG@?632l9zo+C2Z{Wl|A zu9IPlxPa9)xQl#CtP!VmO9eh~n2dW-u?6orhdnT#!=>ULE>>Q7*nD=X?-At zkm@b!idjfLw$gajG^55*n2=QRX=_MH-czQPQ3CYcod-<|uH_Su z_fk^{g`7Py6QK_>DcR>duQ8-tb3IFtUV)qzu4t1 zN71K2^CBq}9KQ$YK7)wPJUBt6SY&a$KIM#0ZdT!9&2lYDCA9y6vo0TakRZajf`g5A z6*d!A!Y}&6se0oMnsS$PG&ea`Tw$N#RAefg?kAA7lR@`wYP?@*5Pz@wTD}NMP!wa4 zP@YT{rNU`M4h%2!H>VCnaItz0b5;RlFWNq8o{)Y-7Ivk2S*=+`we?jMKUn67a zEZ->3V{?CTgZ*pQEEr@>-#2#j#!!$Z9kWvNU^g8C!nN8f;?tXzv zPJ|Uf0e~XmWWscW9kYYbr35-rPKl|LMkem0%9Cn$@{1414GPCF<_SaFeoMurzFVPP z7~0)AY&aKdrv_ET-6_SWm)ps(uppo30aNiiekq$UPs*l})ajRZ13Z7sTnT_nw7iy# zyneb4=(vq!_jEHb6=fN7{KTbkDvhCPq5VTWymnx3WLPvaS)&G--yXbs2ks5$xUlz+ zKQCHRerIdqufy7D_5NE1)ijlA`7!o;wpJ!&zsT0<4fpjX;)l<3>y2V1N5qH;&DhRs zK60SjWDZhT%sUNkyMz~Uvx1GO;<`RCF3u-dB%A|wA2G4h6{fqDRF`PV9~z7Wp?yFB zu?Q|?>Q-=W=*uN`V~oh>t%V8mAqu(KfLKxDn*iVo0R8O{*gioS5iq?;&H2!pFPT7z z3<$y?&fAxa;lC0sf>Ej|{Ql5j{~GunVebhTVnQ{lLCi)5H1LhQw17r$!iQW3GEuK# zwUrg}56UQQchRu|ZYJLfVlUB>OY6iMm9Ypx>L1`KA~IqQCL)fINH)A^iR`vu^mYV1MB}H2N?yWRv2~C|)XUnfh%msFkWkbTmJ(7FT3H~zG;T^| zFXyFB2{`4!Vs;U1iEwHBY7Y|uE7FE#3w~$8hLI=Q?Jd=!(l|}U_ESu(EPj!iU`<%d zuDXKijw@y5E}U-<5u(BF{pN>GiZLsKC^dXbd;y=aU9IJ%%sViUOoxGf!}lf@PzdmK z0lw$c7qe)?Yq!aq1iyu@x4sU@TrCGh)maoksf`!HHI1nDH{sGXV44r?Ww!naH^(@b z*1Hnn%}@aCx?9|Hh|dl4pv^VmyXh9*SZ_j09Lx+y*iT7Biz2y?ZDe&Ld}&SSj9n5! zQR5ff$e$exxe~E15ZiR-dBA`1>r?SDknlmN@g*k~1>1~^Bo~+Pi;ABB`V`WAnq%x` zJGIR^O2#)zv0VVZf|DejB5p);Okof~8Ep)b#7m~4(*>|;I89m-JTIA&-;C;e4e3dZ zALkW318qagL`H8$#Y_7Fr(8<;3{muCPQdN7ZwH=Wdx64tk(g3fZWcD&jc>e!Z#W~0 ze{);_)TUj_;n!nc8Fq1Ls|g!zmaBmHAVE%i;5HWi6 zT4u*|vF9*nDT02c_*b|qtJy$~L0wsxJRq!;@vZo=2N+@W;UxLbmnb@cM-(^JthZv} z*N&o9s>$9xKbp8VNuFmjwR&x7pUkrC9J#NK#C)&qB~VkP1?=qX743I5+?MFHEL=2J z?g!PvydTX!G2cJ@@uL#l#lUp#wfDH=#EuaV4tkX)3Pzy`4CQyy?1XsIgAg8(?tqr{{BM3W*eGQ5i526j*_b+xmgtZ?Bcxp3OGZ&F zHCn2WsRS3*2}XUI%|^W>&&KF!(fvR71!u&qn+$C8BLofY-;^{NI=<@{G;)5w(q#0k zlUT^uZIJc7vBy_gArr4D>-Q!;KO=-p{nkp}n+E*u7cvVvS$S_3eErXwQMP7G7)(ys zJmRKJvw0MwZgjGZp*^uh+#^AuD(T{u6e8}S`oZPH?*Y+g?I)`ro^@W6h`Dxy z@3*=3!sNx=`fu8{xeYQ#iMiv+nl|^(j|Rm&MugVdJibbRpLmYS-*5LESC@a{HKAvV z-=#K-dg47}`=;G{_SxVQpC3MJ?LI$)!Q#G)QTIE1enjP?eJU6j}rIac=M*i zf9u_#c)-s4e;lHAf+g^h&i&57!>{rZK}S=zok1r*qa>c6t-a}d{`dDFo-#OD>kPiW z24etXVKgBv4hxpS5YjZGNd$2ruy72BRalZt7Z-Z74?`l*ED80-6@@W^%ptPEQdH@< z@cT06WID}Kv`x5(N8#oa*22ajF9B=w)yseBS-9)pTVAE*Avv5oL z6=8Xi$M$Hw{=8Y_9S5X zQ?9blgF2B+k%=Fl-~axi77DB%DE}*0_lGj%3OVO0a(n~SyYSU`5TuuKym&aDV{9nUX48mW<&X&im-H)gF*xZBd zdZD7W3__&9)xtQN+X}EZBx(Jnd@V2Vcw;ReOTw`pLkx9TFN|i3r9uJ za3BO7t(x`NL_9*xkI0+xIo*Z>BYpvz?R6;~yYNh#ao0g=hr|tRGCm6a3%0;5<*t@}TV$P`B~f@%YQX9JqyXW61~io?-<$VvmVS8N zKg-b`eq_lE{G|HB+7Z+qGx7wqLW(lWR~T3C1phuF1^!0z+4p);HvASj(fSuI4-Z>K zIaRYT=Vz*Yq=_lep{Hy|Sy2Q@5@10<0g8x5G8!KQFTt-V^~=GV>V4Uq2$uPGxA&87 zalNJ(V{iu%e$<#@&~6-O+#!f%b{{g2x+|M$37urnfuJdMkW^9h9)YUfdS;Kbh$$Zr zF_E&RPKSUQfW4oW-n#CX&qPqOq4`DAHIK`J>`)je># zI=q+lFW)GNtcJQ3;;-`V2bp=;PNEvZ&iif`lG_i3!%|E4GB}rBwI6QW9FMZw&q7Zy#M{P>p#tW zPKofdc_7+Rt$h(}PQ0b_GfzWOl6$&2?plaF3K_-oYw&Y45f%&%y&C(Rug-|>I6pny z`uVl96Au)UurFXiw0O)8!dAB6Ccr&yBn*{fH@7^i;#-WkWmC2oN$>q%p}GIf%v**2 zQ?pcJc$^XO*$&8m5w_@|7P`|QtpV*;{K)z;%nv|QXJhSGwbuGhW*@`zX7nPqYksZf zcuv}{<>E0rTixr6`ZuPr><4QmD-^AI5|_6s@R*(8=KAYoIgX9uG+l>{k_?-QjnW+N zO+1nLAJE*2&5Ej~%?j(4_G={_#<-z#?ORP2a#C-VpWwTZfgBBK8gyG}H=Hh&uOG0UZKq1KJJu)17(NetMT!3@3^TjTU0PUfz#OPND;8gVSMeCL%&)zePD zWO$^6)He;88|Y|Wa4#iwLsT=v2Np21somaJ1pf6*C~e5zXSYt>i1F1DcZ?PYoC)eC zq4A_=t2N0Fuhv?rN^+Sc^IX@ ztcKRM93JLn3nzM+-d#ZP(WB;wYtpZeF569|r z{zIYu58ZA5+XH1wpjd`GkgMxiwGOeJ=c{;y`fEq~-;=#x_<`!|xcvK%f%-jug!^19gi0=WQ*4H;V>;TMGww`94m633H$DyJ_qz1oE2%17aaDsT!@| zFCrfr$DyvL;g;5E#@-t%uP~7hN<+_<`Brsj?Rp^hZ2fiA9y_}Td=)#Hqs9+ZY_wWl zVBLUPzHW8Bn(*S>VYC~Flx)4IL_mu4zZ{f*fvF0cs0GTMreJQb1jU}1H+njV1_HNWe;RscmHugH^&tdHMdbnoBN(M6@xcT?# zzqmh=!t>xu)#C;hh4fo-#~0-u`0w{8X5wCSo)4a;s);f?KM=6dRWnj=;yRzG{8XX* zA-(vVZ)c?3c9w9be0)u}(!-J=f`j(m_Z;=h4gsU73d6$NdJjlyV$*+_wo`q{Qt_h& zhLWi{@@UR@Z9dX4JyXjtIOO#N~YPusCpGs|?! zS^l-G4m-v&R07=3*OYLdgk6l z$FCLxua8J>qgV)EBy+QW*RqItP%&f?_b|^cE}k@n{a!5R7zCR@vuL*@!#xS1i02_h zv&hQt3bVwEvH4lXN>RC5mRFXk>?=uXp$4m|+_8!) zFWAX8R^ptC9^cDgo_Ji6^TfM+HP?pMel5e5@RLnOSjU-dj#6HX^-FH&menl3^K#oF z7hXfVbT1dB()6hF_3}3^OV*p^Wu^aeAK0v{8Mx-ys`?L9^8bkJ&^m6{4zX2k*A4&c zv)}&>XzO8JZ=Way-*DgOVVUFkY>oDVF~>(8hnwU;=h;=ZMh7*5zNQ;Mw!Ld3|4NQ( zCzalQ*9Qh0yLDcWZSQr_`iRwbk(q7R4!}Hy_Xb(xa(Mb5+>CeYWe=-580Lyn}6Z)Rrs*VV^o@voByLyQkxr2ZIFI{OkMr108Y1a_|J&8vh%?NS#W?d=eOik zI5MF4a**+P110*qL;a4tl6e%P#j{pEc7 zog>4Cjn?tRfX()`FK4^2V7~+Qy6!x>V89;*DmJHhGPnN$+ZQQHjr(X_9syRJPmaff ze+HfA=)=U1Ry=+Oov%55y*gdbhIRfucxNVYb~5-*{Oa%4&yLgMEyha_1bub+JBUCG zb45~yCS=B84>=32nNPb&*^)!a(~v|w>s=JOu3OyykG$9h~7EiJ|je`zPf z&YKde*|0<%F(mVVO*2k4hxt~!Z$D2cBF;qY_3f7C{<}6Q2{PgLZqKgwp`L3dI`rM6 zAC2yPJTRJIKlh7{Kyi?ROe-n;!t(Crki2L*BE^fM=pnW{+O2#kwIVu#%`ye9mAsUi zy^Qy+NI$81AH2xqUt!n0{po4C){D0)tXz6$N}8!!=}lH89M5Ky43~J*+m}}!dOcP) zr+typQpJjjDpxTh!AEw)Z1@r~hs{J@WKI^_@K>G<+e;m0jSa5~HIk~iSkz}P{V5e0 z|ET8KdYH3Eu_oFZBQ3>$&-lYMv8)x-bzJzeNB$+KOX7Zydhq58{Pvxl6d4CD>>+<4 zlo*hv;n0jG{8n(&*-q|($Y`{;=WB*WcBy|vcGA;cGY7FN>Nsen7kQS@L~O{b(`jXv z@|SY=Zzy|+Jbg8p_C{!@TrIeDyolWK$=9 zlzX>4RIja>=1~tBwl-0x((WIT9i?i9<7EaCH{#0JQA!gUBH%4H!W3^v#&(7NGqO|I zKT%nV-*h;i#CgELF#t_*TNrV-Ex${#$ z_A$o+EFdG4`BDKQ4!DNTTx%7-Wh4MdfQ6)1jxNOCvX3l=2eEoAR_WQQZ{1%7Jlr*q zy{n?2z*2_;39$5ls}BZbN(r!pP8e#{f@s={6!;^c3pTj`@_VwE6hlu4H~?5bYAxbe zAcS-e9r67B=eeu%lg?Rp7xkfRIHe51BTE1vxDiMct6cz)7<>veT8a$?ubs49>0=BQj%Avwu=YQ^o;8{Ic43WxxHWHZg}FoGJK9zc&|#1ja> zv1C{{91W+gm6HG3Rygf6>>l4|EX}kRPbg(ySH8akXhCIQSCLobE-6ztp5eN;J)} zU#t7QG)jR>(j=W-h%29O+y@;1;zkerMf#DIwo27c9)Kn

    R|9k28#Ys233;*w=reS`+*NIY7 zsbz^HT7}f0nLhT(w-?RLH;~`;3BPeaAOzX5#yY>c%YQcY!){%qr5?XsWg7{8EAy`O z;+NdpUyw%7wZ9o7t#alz6XBzku#esMjswC+O-&0ikb^_vk68FxTsTVW@i7Lzh=EM3 zQ1xRS&K%*irxC9~c93QGG6sPIVCw;)0N#5K6e)TdDaI5f(I%WF6?H8zN@hlwBsXeh z3buzqC^ALg00W9(A=aU&wsd=~YVRd!q5hU=gWN~zTG1*p(MC)$W@cg2)6w<4F6O5( z>;CW!u`q?@2mlX7Iz`T6W0!Eyjd067EL4gFw$lJT$VTW7xmbZ?ALlylh=uXUAcY;m z0cj*Zzh!uKtO#cuWEnk&Ba6%k zLDid$*tCZ40)VDgLW7g-j%N%6c@MI$A~Nnq#B^UUkXUt-5UafM9Ei>?QUF0lr%Zty za{>&AzioCq=*UKy-#~gx_1XhXCDB5hU@wM1NUgJwJx4#(b^H9q5jyU5;lFKn={Ggtp>Sw2=I>D1Djq zZ{Cnpf^|lH8FUvNm-8xiP7Jn;fX!i{v*GC}W|>Jc(R@Ma>a&^Nr<;|rSoA3fcyK)%KtwEnvaM$$ZZ2n81__$Bi#R#QdT1l3tFnJ~XIDvh zS~|f4XLI}n%-orC>BV#FC33A2a+fu7UF>s{AnpkQmQR8N6Kir)+f6K(bHgE?z6pX0 zt$BGtc?u*CGWhc=1>Bzo<$tz?bIuB`Y9co=7RL>VrRKB_HTi9M#*1UnjqZr)?)XVO zdIGnOm~+~hMNR)aAB{ah#RuI^*x%NB;Za0Hv7&bB5gb`I*kW#3T))U4#R1I_4vP9^!c-Vv|EJM3Y zIN#W^Iv(OxAfi)ttGeW?L;--eaN#XC>o315_^5tM^f1r33=C|DdA*e`%XuI2*VBcs z5YrKL(SW-cmx@~ycWGL$IOi+N{*`WJVnc}@EhYbo8^NX2wZ>WW@s4wqCOlAzp31(~ zry~jFo73vSWSD@PDX+@QG^)z7+whL6pv(zkc!ETtr z{9Ve60tysmkr=_6HqC0K8CXjGqo~=?lpw*P?MI2Vc|}{`8j8Gv;9x12*lR47#dtW9 z>DkM{NBG>38OIPyaB<<54cCl07cxI2p~iIM8J9Br2wzxp8!A;@*Em>}8IRrZjOX%- z6d{2{VW9pp848W1H9GD@L6+MlbQb&Kxvd3BYZce^TH1Y3Dh`~2DWVgH^cf>NUKi0f z76Ci;cg*}^UKjoKWnnUgP~bwx=l26^Nq9VXRqn=+!-HYpO)-86tVlw1P`K##^?bAfVP`Cm=;OQ=td8f+ap`wee<@`LkDp z7D)7Pz_CH*Loo1thPIgrrtrQrFQJicxg~_!>=^r;Uc4RB16#I^%l=(W6l6Vp!pJk! zQaD)JR0gfe7Ic_zH+z+LZjkcKEM!gkF1G>sIW7ju>qIC1MuanYHz1fhob&}4AWSt$ zjVEx~bhH%Q-3X}og>B|qPU1hMSkFQ%5r{_XT*QnFSYaH_yB+v!kRDQ+s)@In73jQl z9Z7U#5vy1aFu|uf$zYvVzYJ37knMEKsg)`oZH&xU$2w@!oFV(<5HB)TqVu7Fj0r)R ztAS)6lZO~OE`~pV^t30%wcK~Ar1z@WQwk$SC*NyW(hJ-_WFUt$l1ihUlrUjZByCM6 z$tJ)9u`w%gG#RZj1&t+A$@R&+Sb?EMr_*GcNh8U9ob63cn&KHdc80p96Vk0yH^91^ zmc*4FNhRP(*0kOO5I2%_=CDG<51@|^0eZKCngx?8;o&pZFy2SOk7mfr@FXHO2?~uA z%7qAVv3IGIz#|z1aNnIQ|AOH1j@-2@pKsQ~bP;{D%ef{vIC7{pdHSWXKxW$l>S)lC zT?g4OkJQ}_NW2-grx86YjB=Iz_>3P_juxvZyj!4Mx0?g!H^ZLcqO7#Te%H1(IfgmLg9vEBuUZ>FEtw*xN(T7SD1i!4_Yvs4Qwuac`e z)3;wQ2ZWq<1aaw((upK+%C?w9M6kU1xal}R-+7nGjb3f1O z0y`!me)rPzwpRrIkgN*$uycCHI=ra1aRu+#cV@eXA5~Z$=XfsKRO5gFDlx!cdzA?% zbaTk^VQ#~%MHI%<&uS}v{yiA8IT^SQt};OO2>4#$#;SV39l;Y$6tC%fN+H*f^ajui z42-O`;3ns%YGHQ@Q_oAUOX)~v0ME#1=o@j!1A#iI`^ePrQ}>j6xu;{1G zeurTGm?pV^Z=qDuZE@q4(4&y0?LEQ8Kf;v?B6M$HskL8r_5#hH3k7+CZ*_w8Lxf}T zNj_&H`9-1-%dZm$kQ%%Y=1uGq5#gc*k-ti+hPSxh`1ATZLDr{5T%+{&V@BP(O5l`T^0 za?d6ey=0<>s_nJtv}S17`pS7BAK#PA}b8+z{s<+q%2n z{&>_yaotW-^n+65=10+Xv`~GWh|i_u=iVV(;V-WUwT7f%Lu#-QqLC%PKZMMfO%YU9 zYtq-NZ5#cW*P7B_Hb%aDG_#NxT4%XAJF2r)xU^M#v2`-mh*{cjyezDGSELdHZbm^k ze+zyT6q0{TCG?Z zq+hb_F1TB`q*ZN}X7S_h^_U)XPh9Rojmkj{7YCi!4)xc#&|h#)xM#{7zK0Nb@PTnj z=*q6|)&W6JMDoYuyP=02r29&Q`)y9b{(#7&>ELACboENw;L8z)8}K$`k+JjG9CyKu zaHz$Nqe`wGKn!H9FO)k*B^>v}zuTEs9Q1LeWb@;P`faEz4A`hDrf-Dp@ieQRjSQ`1 zDVkMmm{znT3Hy8)TLme4GarR3593ra>CP^j=2_ z%V!YeeOe@?TsULK*RwY(B?JJbi=|JM zqUweGr~%_K^IE;rUi}P6kDqFA?sgFw_6n+Ph{7tBf(W;}0e}r*3{=KJ#%_HEcy2>D zAtL(}D{s$e#n1n+!vZ??7BsDp0NE{vuD}`8gc8M!fqC3|1b|Fn1paT)R&V5H3yGMG z0ke#2wqS%M6&ZaObMF7!?h0aRCfz;y+xEIzjxh z+5C3@x|e!?j9NZ1vQr68BXOF#^Ea~d+{)g?5f0F}(1n^cmTPFy^V6u1P;`^^(%;pi z>#!N4Ql>T5;j@CM*O_EEtZ;ksDTuGGR39`UT=4c-S)zykQ zDw9}bKaO$$$TkzWJ65M0=68*i99eFi5T!|Qx&w4aVhdyDK6_EJ-#ztQ=}*3ym2t+_ zbDgG?wS%_|N5KYRV-h#3z%9loag!L_7K4Xx+?j0@(t>F5G6wmERbe0+T@3+#k)mI&jx`N7MbXhDQAZ=hRbrVFXO_`m-FP$&P(g-k z=YqZO>H55TSxXJrJuO4Cz{&>s2<{z%f~)~+jhfL^-0_#9*4nUW#P`)bw5TpW1qHhf z4Oi(kMgD54w%dU9Ram967A0_CcC(`v-xG)RPf@7_#azRqq@&fy(3IpMuESSRz-EKy z5rEfyotw??^dug2aDWvD0v!mYpMMq5hF{(i9LEYAYz+)V)|Fm0x+T4SB%=#d12=(K zPv0m3us4EJNfi-`rTh32gWad;<idNYcirL$epT6{sp$LjNu1ef*`7A#bH4{F

    ;DdDM~}+89GBW;jG}Y2ugQk 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

    @Nh@4F`lG4;%Vub&fmrotS>mW+%%j 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 literal 0 HcmV?d00001 From bc4c631030d287a064460c1faa9af7ae09f48e4b Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Wed, 20 Jan 2021 14:33:58 +0300 Subject: [PATCH 120/309] Update POST.md --- .../POST.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md index 1fb438adce..075c5ac898 100644 --- a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md +++ b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md @@ -4,7 +4,7 @@ In this article, we will use components of the [PrimeNG](https://www.primefaces.org/primeng/) that is a popular UI component library for Angular with the ABP Framework Angular UI that will be generated via [ABP CLI](https://docs.abp.io/en/abp/latest/CLI). -We will create an organization units page and use PrimeNG's [OrganizationChart](https://primefaces.org/primeng/showcase/#/organizationchart), [Table](https://primefaces.org/primeng/showcase/#/table) components on the page. +We will create an organization units page and use PrimeNG's [OrganizationChart](https://primefaces.org/primeng/showcase/#/organizationchart) and [Table](https://primefaces.org/primeng/showcase/#/table) components on the page. TODO: Gif @@ -340,4 +340,4 @@ After adding the table, the final UI looks like this: ## Conclusion -TODO \ No newline at end of file +TODO From e61f3fabf480c49e719fccaea6582749bd293e06 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Jan 2021 17:16:06 +0300 Subject: [PATCH 121/309] NpmPackagesUpdater: RemoveWarningsFromVersionShowOutput resolves https://github.com/abpframework/abp/issues/7345 --- .../ProjectModification/NpmPackagesUpdater.cs | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index d8571843fe..7694e9acfb 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -345,11 +345,37 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual List GetPackageVersionList(JProperty package) { - var versionListAsJson = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} versions"); + var output = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} versions --json"); + + var versionListAsJson = RemoveWarningsFromVersionShowOutput(output); + return JsonConvert.DeserializeObject(versionListAsJson) .OrderByDescending(SemanticVersion.Parse, new VersionComparer()).ToList(); } + protected virtual string RemoveWarningsFromVersionShowOutput(string output) + { + var lines = output.Replace(Environment.NewLine, "\n").Replace("\n", Environment.NewLine).SplitToLines(); + var resultLines = new List(); + + var warningSectionEnded = false; + + foreach (var line in lines) + { + if (line.TrimEnd() == "[") + { + warningSectionEnded = true; + } + + if (warningSectionEnded) + { + resultLines.Add(line); + } + } + + return string.Join(Environment.NewLine, resultLines); + } + protected virtual bool SpecifiedVersionExists(string version, JProperty package) { var versionList = GetPackageVersionList(package); From 9fb4ad6e6c962d189f2ca568f00e5aaa5b0659db Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 20 Jan 2021 23:10:16 +0800 Subject: [PATCH 122/309] Allows to customize the English localized text of Identity errors. Resolve #7280 --- .../Identity/AbpIdentityResultExtensions.cs | 43 ++++++++----------- .../Volo.Abp.Identity.Domain.Tests.csproj | 6 +++ .../Identity/AbpIdentityDomainTestModule.cs | 15 +++++++ .../AbpIdentityResultException_Tests.cs | 10 ++++- .../Identity/LocalizationExtensions/en.json | 7 +++ 5 files changed, 54 insertions(+), 27 deletions(-) create mode 100644 modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/en.json diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs index f71f8f76e9..aa76241ca6 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs @@ -1,17 +1,18 @@ using System; -using System.Collections; using System.Linq; using System.Collections.Generic; -using System.Globalization; +using System.Resources; using Microsoft.Extensions.Localization; using Volo.Abp.Identity; -using Volo.Abp.Localization; using Volo.Abp.Text.Formatting; namespace Microsoft.AspNetCore.Identity { public static class AbpIdentityResultExtensions { + //TODO: cache? + private static readonly ResourceManager IdentityResourceManager = new ResourceManager("Microsoft.Extensions.Identity.Core.Resources", typeof(UserManager<>).Assembly); + public static void CheckErrors(this IdentityResult identityResult) { if (identityResult.Succeeded) @@ -41,25 +42,19 @@ namespace Microsoft.AspNetCore.Identity } var error = identityResult.Errors.First(); - var key = $"Volo.Abp.Identity:{error.Code}"; + var englishString = IdentityResourceManager.GetString(error.Code); - using (CultureHelper.Use(CultureInfo.GetCultureInfo("en"))) + if (englishString == null) { - var englishLocalizedString = localizer[key]; - - if (englishLocalizedString.ResourceNotFound) - { - return Array.Empty(); - } - - if (FormattedStringValueExtracter.IsMatch(error.Description, englishLocalizedString.Value, - out var values)) - { - return values; - } - return Array.Empty(); } + + if (FormattedStringValueExtracter.IsMatch(error.Description, englishString, out var values)) + { + return values; + } + + return Array.Empty(); } public static string LocalizeErrors(this IdentityResult identityResult, IStringLocalizer localizer) @@ -85,16 +80,12 @@ namespace Microsoft.AspNetCore.Identity if (!localizedString.ResourceNotFound) { - using (CultureHelper.Use(CultureInfo.GetCultureInfo("en"))) + var englishString = IdentityResourceManager.GetString(error.Code); + if (englishString != null) { - var englishLocalizedString = localizer[key]; - if (!englishLocalizedString.ResourceNotFound) + if (FormattedStringValueExtracter.IsMatch(error.Description, englishString, out var values)) { - if (FormattedStringValueExtracter.IsMatch(error.Description, englishLocalizedString.Value, - out var values)) - { - return string.Format(localizedString.Value, values.Cast().ToArray()); - } + return string.Format(localizedString.Value, values.Cast().ToArray()); } } } diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj index 1771b68a5c..3413ff430c 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj @@ -19,6 +19,12 @@ + + + + + + diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs index ccfbb85359..a6228a7cd6 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs @@ -2,9 +2,12 @@ using Volo.Abp.Authorization.Permissions; using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.Identity.Localization; +using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.Identity; using Volo.Abp.Threading; +using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.Identity { @@ -21,6 +24,18 @@ namespace Volo.Abp.Identity { options.AutoEventSelectors.Add(); }); + + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + options.Resources + .Get() + .AddVirtualJson("/Volo/Abp/Identity/LocalizationExtensions"); + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityResultException_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityResultException_Tests.cs index cc349fd3f3..306ea16c91 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityResultException_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityResultException_Tests.cs @@ -28,10 +28,18 @@ namespace Volo.Abp.Identity using (CultureHelper.Use("tr")) { var localizeMessage = exception.LocalizeMessage(new LocalizationContext(ServiceProvider)); - + localizeMessage.ShouldContain("Şifre en az 6 karakter uzunluğunda olmalı."); localizeMessage.ShouldContain("Şifre en az bir sayı ya da harf olmayan karakter içermeli."); } + + using (CultureHelper.Use("en")) + { + var localizeMessage = exception.LocalizeMessage(new LocalizationContext(ServiceProvider)); + + localizeMessage.ShouldContain("Password length must be greater than 6 characters."); + localizeMessage.ShouldContain("Password must contain at least one non-alphanumeric character."); + } } } } diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/en.json b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/en.json new file mode 100644 index 0000000000..e8f68fb950 --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/en.json @@ -0,0 +1,7 @@ +{ + "culture": "en", + "texts": { + "Volo.Abp.Identity:PasswordTooShort": "Password length must be greater than {0} characters.", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Password must contain at least one non-alphanumeric character." + } +} From 84fd1ea15896173ac60c3a7bddefa93034467b2e Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Wed, 20 Jan 2021 18:11:02 +0300 Subject: [PATCH 123/309] Update docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md Co-authored-by: Bunyamin Coskuner --- .../POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md index 075c5ac898..40a62836f8 100644 --- a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md +++ b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md @@ -8,7 +8,7 @@ We will create an organization units page and use PrimeNG's [OrganizationChart]( TODO: Gif -The UI shown above contains many PrimeNG components. You can reach the source code of this rich UI. Take a look the source code section below. +The UI shown above contains many PrimeNG components. You can reach the source code of this rich UI. Take a look at the source code section below. > This article does not cover any backend code. I used mock data to provide data source to the components. From cbc4356e6580d2c50af5e153e1783934268ab46e Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Wed, 20 Jan 2021 18:56:57 +0300 Subject: [PATCH 124/309] add createTreeNodeFilterCreator util fn --- .../core/src/lib/tests/tree-utils.spec.ts | 75 ++++++++++++++++++- .../packages/core/src/lib/utils/tree-utils.ts | 21 ++++++ 2 files changed, 93 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/tests/tree-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/tree-utils.spec.ts index 6115114872..b4f8721f47 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/tree-utils.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/tree-utils.spec.ts @@ -1,4 +1,9 @@ -import { BaseTreeNode, createTreeFromList, TreeNode } from '../utils/tree-utils'; +import { + BaseTreeNode, + createTreeFromList, + createTreeNodeFilterCreator, + TreeNode, +} from '../utils/tree-utils'; const LIST_1 = [ { id: 1, pid: null }, @@ -38,6 +43,42 @@ const TREE_3 = [ ], }, ]; +const SOURCE_TREE: TreeNode[] = [ + { + id: 1, + pid: null, + isLeaf: false, + name: 'foo', + children: [ + { + id: 2, + pid: 1, + name: 'bar', + isLeaf: false, + children: [{ id: 3, pid: 2, name: 'qux', isLeaf: true, children: [] }], + }, + { id: 4, pid: 1, name: 'baz', isLeaf: true, children: [] }, + { id: 5, pid: 1, name: 'quux', isLeaf: true, children: [] }, + ], + }, +]; +const RESULT_TREE_1 = [ + { id: 3, pid: 2, name: 'qux', isLeaf: true, children: [] }, + { id: 5, pid: 1, name: 'quux', isLeaf: true, children: [] }, +]; +const RESULT_TREE_2 = [{ id: 5, pid: 1, name: 'quux', isLeaf: true, children: [] }]; +const RESULT_TREE_3 = [ + { + id: 2, + pid: 1, + name: 'bar', + isLeaf: false, + children: [{ id: 3, pid: 2, name: 'qux', isLeaf: true, children: [] }], + }, + { id: 4, pid: 1, name: 'baz', isLeaf: true, children: [] }, +]; +const RESULT_TREE_4 = [{ id: 4, pid: 1, name: 'baz', isLeaf: true, children: [] }]; + describe('Tree Utils', () => { describe('createTreeFromList', () => { test.each` @@ -56,6 +97,23 @@ describe('Tree Utils', () => { expect(removeParents(tree)).toEqual(expected); }); }); + + describe('createTreeNodeFilterCreator', () => { + test.each` + search | expected + ${'qu'} | ${RESULT_TREE_1} + ${'quu'} | ${RESULT_TREE_2} + ${'ba'} | ${RESULT_TREE_3} + ${'baz'} | ${RESULT_TREE_4} + `( + 'should return $expected when $search is searched', + ({ search, expected }: TestCreateTreeNodeFilter) => { + const filter = createTreeNodeFilterCreator('name', String)(search); + + expect(filter(SOURCE_TREE)).toEqual(expected); + }, + ); + }); }); function removeParents(tree: TreeNode[]) { @@ -72,6 +130,17 @@ interface TestCreateTreeFromList { } interface Model { - id: 1; - pid: null; + id: number; + pid?: number; +} + +interface TestCreateTreeNodeFilter { + search: string; + expected: TreeNode[]; +} + +interface SearchModel { + id: number; + pid?: number; + name: string; } diff --git a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts index ba6e3a5b90..8339929718 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts @@ -54,6 +54,27 @@ export function createMapFromList( return map; } +export function createTreeNodeFilterCreator( + key: keyof T, + mapperFn: (value: any) => string, +) { + return (search: string) => { + const regex = new RegExp('.*' + search + '.*', 'i'); + + return function collectNodes(nodes: TreeNode[], matches = []) { + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + + if (regex.test(mapperFn(node[key]))) matches.push(node); + + if (node.children.length) collectNodes(node.children, matches); + } + + return matches; + }; + }; +} + export type TreeNode = { [K in keyof T]: T[K]; } & { From 5fc956ec1edbfe30e7b7cd0f37e5b12a227e7074 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Wed, 20 Jan 2021 18:59:39 +0300 Subject: [PATCH 125/309] use for..of instead of for loop --- npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts index 8339929718..235820abd6 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts @@ -62,9 +62,7 @@ export function createTreeNodeFilterCreator( const regex = new RegExp('.*' + search + '.*', 'i'); return function collectNodes(nodes: TreeNode[], matches = []) { - for (let i = 0; i < nodes.length; i++) { - const node = nodes[i]; - + for (const node of nodes) { if (regex.test(mapperFn(node[key]))) matches.push(node); if (node.children.length) collectNodes(node.children, matches); From 2cfc47ef0a9aee93d2680244f23b775409d1e6c3 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 20 Jan 2021 21:43:26 +0300 Subject: [PATCH 126/309] add introduction gif --- .../POST.md | 2 +- .../intro.gif | Bin 0 -> 1058635 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/intro.gif diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md index 40a62836f8..1e676bd39e 100644 --- a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md +++ b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md @@ -6,7 +6,7 @@ In this article, we will use components of the [PrimeNG](https://www.primefaces. We will create an organization units page and use PrimeNG's [OrganizationChart](https://primefaces.org/primeng/showcase/#/organizationchart) and [Table](https://primefaces.org/primeng/showcase/#/table) components on the page. -TODO: Gif +![Introduction](intro.gif) The UI shown above contains many PrimeNG components. You can reach the source code of this rich UI. Take a look at the source code section below. diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/intro.gif b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/intro.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f96a65422e1887f077ec851f343133b344c65ce GIT binary patch literal 1058635 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%0AGDPcn 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

    &9{B)_97%=`w3UIqOOu6rq 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%0A069UmI}N)~r77HC%!Fk45Fn1+M45 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 z zrJGNr2n`D!rwd#f$k(d-YVlgo6Ck4TOJwr1>IvmF5}oC~neNX``F#+SL`?PL3b=Y^ zc*iR>zfN_x6!dJ3iW?9BJQ;E?&iKI12vtK|IF!KSQ8G#v$Mk*)4W$sQr>?wGBL<+?ec4K$+{XZ zKt=4)aQ>)hTe1jn(`Pm9Md3b&LOj@S^)vet+`n`ggM>`dFB4NK zV{;D1bq>Z~X&+J|7?rX^O3osuO|bI;#7rakOl`V|CdpvAGEMem=uXd4-$*7NU+4KS z#XnxgS}o|CBj^-E_y88fW5^xf5Io-c8B~?xzH-2N0CbGZ0Ene?T&_9Evq+pwBS5+_ z=d8eNsvrE+$=OuWsluJC7;6AXST9W^%lqEkBRu6JOr*m7GSGySf-lRMpB1)rJnafk zv1S6l&{1)6A|4bFwe<+uJv!MGU&I%y^P&Rx>NJd~PmY{-vf^jNQ@>SbXHuum&87R9 z{dWk^TdwjQoaAgu#iN` zN>R*hzaXsMz_rMa!w1t-E|D@+DZ(e;2<}s+1=DYi9>{2qr=7oZ_+2FwvxB_{$MLMRPv%Uxe*GDH&>S_91E2Pb_aA8Bx9DN$;OH zNbahq|Gs(#Gkody_M=?&Shdk|qmYjEpOdH#kNS(>gTHH{561F;&pY2ed-Kr$!KBsu z<1}XO`aTFAy&I=#@qaGqF-QH61|eaYx+-z%J`c%zxs*R2r9N~db=inb{TKE2gM=65%!UW|9h@F)6&iYULYD9{|AS8rK3;T=lOTT34pLs#p*=?W0)d6KWfa-Snr@ zR7avd%}$q``b||irn!KcmI(jJErx|wC8u%>uREwXYTE;M3QTKiltXo^@Um~!KP%a| zBxp{&zU8Si`d#ASi^i>D_nnmxglC|}%(RzBv`lS9Y|OHZUqHt;?BGb*i4nqtjehR2 zGvseYEUnMy-K(tl{}#tB<1Dk?16&5vIhMIcv%_x3DNVcG7WGglz*pQ=J$1EIIqg(U z-qE9Xs>`mtS+&fMX{)O$XufvOFaOHWJ;!{lQ|f+MLv5dK)n`xARYr}ELUp=FyvR)= z4vK3n4<8TRYS6QIqj4~&86j);{$03+6Eip)R{N*EXXWwNv29PUpM>sQg1`qA)n|sL zAekF{0q5EqX>0NQzMsy`nIDEw&4^)JJy@qJsI*Lk2NMUP)xSATuS&-_ z;cK;;h7FV6p6#gQYn1CvssDGQY54cAZ=Pd;A#-O(z1$L8I5IiA(azd?r5T*ngW#A! z>d8@WuQzvZXqJ)RLuv+Mzbl=70puSmSjf?T*Sc7sf7y-2mp}S+`Rd_@;^GnW>5s=I zTQZ-nR2K)ft+*K4n%&`(fj zQ~*3dYB~tSE4A#3;}g<8ieW26>q<9R8wo{k1HP4~SPUT@FV0>M{OWwT8@WKpH0|L@ zoP5!=A~2~TD6Ne9Ng1$K z)+@|j!r*e`vz_tWTIrWh zCWe`PnZAASpY9cYa>WUk-ROcdDf$%)sQo5;QPS8d{Tr+P`_0~d8av;mU%6GW-(v05 zc*27I&EIqT4}R_}KWycBo%YOr=iIF)cFG1UZ~)#~ag~#4Wl$w`18=JtK9Lh_P^~bJ zw>Mk$NIqwK{U1u*!6|&QxTr-F6rk#KY<2Q#m-pq@HtH@Bj#DJ4CoAI{-YsEu>ZX8U zot2V?M^5;3^{PR#K%T1QedJWFmEm2_yjAC`ZKI{GhWC!nYaE^tb-LGAcs)Q#^T=@c z%Pu8oJ-K)F$lKMIPr4qt0849J*0McIO${3^&TAg;|83VU@S{QSM8t9Nh}Yd3MQPzO zAzq`Iulucxnj?1ktHCaK-@#y`hvlC!Cp687W>H2hRZ5?CO%(^&Raek?`wm1LTRW;? za!a%B#{EOlj;~)W7(Hoqxpz`LKCk7IQES(}s546w$E2mU(WC(F*z0R^AFcjto4j$_ zelt3cfj*zSwbEx;7oGPt<-cbON;(&YBi?t_1;{Bh6 z|6cr_*Gc-iHXqfph^CHcvndf=K^5apa3CR7ah)q-ZQLbQNl4d>u=XT{MT(V7E`HzV=eNd*`mq##drEQ|EzyJBxuS>K^w5dqgJd{OeeAf4XPDC zuh?6gP8L-f+|rEt

    5$RsPPPb`L@7mTEd(g*Lq76t(JAZ8~!|(D2@|&#Q;KOMJ$M}3K{Hk)4!{IC7(=P&2G&E9QQ{`Y(>>TANH+56w` z&eN+`z9tEpa|JNQo#LnI8>uShJn(VjZpAMfnbzhDQa4){enoBOgqSZXyf^N@lgBGa zHD6N3m<&3d-YTv(U)GSj(0|O8TiR{@LGPx?XvFDn*B2{3XumfZPx$ifrl7@&6~=TT z=k#{9ip8hbw~eQ+f7!0JwpjJNX*zT7^!Iy;iRf=^(^u_ZzCTE{SP#aS&9WNe?u!Tk za63XEFaQA1G6!4%pafn30it{WP!vUK+%p+Or8WEq8d=?$a23Z2Qd3oLj{E^Bby3yo z{sOFZHp-#7X0RCVb=QBenJfvg4T6-+Hs2n-ZXCNhH~6r2JlFLySjn-aZlao0e79Z= zUes{nZi@O1$47T(?)g15Ez#iQy?hYVovq~ba_NfO-J!by!;kO3z1JpmJHUt`uLU>- zY`if1D2jQO8aj0E0rfvin_9ge#q&HZRwkX0HP_YWk&Uwv}|WfN7uf zq>j$Lz|poxqslrrpQ(1KPzv(^^Z{WBV%FMwcB=T*Ul&?87YB+pkB>cj`t2j9+Uch2 z^S1A6uOCLdAA8>Z^DDPIhmUdVc((Ix1^L5iyyN+wpBszAH{D)z{QdLm+uHl_7ccmH zfH0n$EF??e(nQtjxG4~$6>cir4$n(N_)>W3@?mwn4Ai+5UM4mJzd%>LLRrYd->zH8 z)_T0MkVELhFXkG&q%7tcf2do`H~+D+STNWre4R){%t{`!)!->IoS`i}g^4@dmr}h* z?-Rwdy=>$a|Bmls0OKA&sCtLfeTgOeW_pK`$N=Qd07ZR{4FoZ%IDjH)`tyle)Iwe42WgSk+O`@AWsonBrpREdot@j@%UuUYrXVj{>91l_mi&(T)xwV07~c6#So6N)1?T} zozrEc3g6jEypi+SYO-zF*;@LuowIfH;kfgSoFwP-&4T>0^R1Hlo%3%MU3?eYH51Mk z-y7D;E_Obg>|Fe4!M%04yFo2D#C8b%1e3rN00A5TdG_Vu$7K-WXk1^GsR!$owGXM(EjG}F65Vttv!&rt0Q=exmh!Yt@@uxbZ0&9DSSDvOj-l;}Jj55M-? zQs$)Ddut5tV0crK!=}U3aepH}0;rIO-uGryCl0_{pYa!%9Yz|vw942z;Q(kNdqo!m z3V*LiinXudYu5_nJOI7o@$OVRT@ov+VO4mF(Lk6%=^-7>U0hai2a?#tz-;yeRdsCEK4rr$s-BDjjg(~~pu{~- ztiMqESRd9Gs z&qN!|aYcw$i6v$4WT(V&B{H(annPo%$Mm==xxd6lw0BA}*Prh5eHs7e= zW_X3a;(Ln1eHke)GjzAIY<=npIkqE1`K#Pdm}Tk4Q!E+)0uzYZV2`M473XA7%-bmi zBQo zuW6L+aMO88`QEC?`?H;Xm#FIWb_}f$Fy>ed{t8XMDI<@TgmA~W(oG!xxR0D5l@I2v zI?nvGxTIF_ne*|6f!eZX{ofv3oKLh6*Hr{-ZClb_Oro^ws*?J*Z6q(IhN9|f^0mG@ z+`E{b9H^_S@Bi-n{9hBnH9-5|-!MQC(G2Z#1v;8-?;bMxtE5aypFfFgPX zApg%J02gUDs`8&k0G>$@JemsRQIf7!{a+)1{!;W?xc}cq09YxWCV2!E?|s#5^*=@c zoJ{-|0ky>wzea%7jU0o*O1sftBY+*hZv_CQr6Sxi0i36|=FlU+!@zrY>=LGOD#!p) z90~iX&z)bpkSrR?G|SzCH~HhiFRF45V*7Q%YF-F7)@+UzXkjwV`PalU$|l+2WaOx5 zBmpw{^ZoDZe*{#&CScV5@V^)V28|feBfx0!!~dU008S7~6!^UGT=wK@mnC z5Mgc))(bseE>I=)p38|3!uA8h0$_e%mJiq5^0*~!5<_5s)givH;LbXWePK|-2Dqb* z`({bUT2XPCqQKOf>eeVW$C56?UY_b3P=V$%z5xk-ncJBsB?Va4^K4YXNE71f%cUv;>HK7Ic08}0qXYlApJGc}e(S#aF>E5OU zAtFB0J=+#g)eV%gz0a5=H6(kLQ}R@ny7ZY1z2sm(>SX(15RS`x zIHXAV_;6U2qZG{zEVc{ho-Q0jkLt{XLT*=Hy6MRLGLx55r27F3 zm;GpIf$X_l*;7`smbpYt^e}J=zIHpo&2t$&nm5qCAHfop4kNsM4SjGby$p`)#fv*s zs9l!W0l{UCCl$2#-XCU*uj&6hIKI7%96%p>zYuEJ`nMxM2j!E?Jrqaz<$j;&kIRE0 zm0MSbV@6M|jwWr(ua0M*{kS?=2)_06bS3G@&$EsE@}KA1^*?@I>~`I{zC4`xJpz

    MF8^02(ar%)t7-IifSeH*+q{4nc%;T z0Gyhc_(sXu?n5B)@8%Zbui}U(*mLL>fX_@Jabc{JyJ9_1<>l*Fs&Dk6!(M&6;kN?x zBV=Y3eUX)zLGzVJU0{JhNv#WgiIw(2gB2xXqnSW}FZ7wQA~{}+idqE~5%&OyxsVpM zfgg+S2JN5)31lOBT*ZL}g-E={bZM+C;@a7EDfIDC>wP_xuPzBd%CoGnKdj>WVVNQF z#j>1bkQ&fe0TZxVxzP_+jV%B%hGDfxF{h~b62>sCW>~V$WD;v(W+aw(K*Yg!P;SCi zG2cThzY;FT0vOVup=py#5l$^@QOm8eo86}j;lW8M{}3~)+&&v z>=_D@ILw4b7ASJ44~Lo7DE1XBDqZ_^MIJw5XzX}9b_ve32_SzC3CK}7YQrPEzvPpS zLKpF4AdJBlxsH38YOY}vDfn27=M`8wBzAbRtX9f)lk{9ROcL9iAf`&7MJySg;vl5$ zhC+mc=&PO{yxhY_9pNi9^@b(9YX!INgBX{TXFdH`x@7AA0kyG zXDlauKajCR^4j_qC=bY6k}w3g2Q!508-`!&k^&VUdjxQpqkIbzc}-cd0PS<67&97_ z_T&A++7M-c&q4XrB>>L6I4b0mONlp?|A6Kh7Tu9&9x%E3C=&oA3|8J-R(7zO;sg4V zR@FJ!0J)t+B(*p*e!qb8lTHC*#|nQ>HKJ(dC2j#<|ftPJ@cyV}k852@EzJ~h`= zYFQRUc{Le#N!a81>JYBL>itnl|7`@|zIWDR{B~ptt4%QRkvPja|C`Nb9#S_&{|M_f z)gEOZb3zbs-EZHCx`m$=S=}kle7m_?Y1a=ph+1)~V|j7?zaIg@?p-cX4K{R&4(vrezg&hv8c{0R z`>|=4E1Y^djXg#K`-$%_SNWqG`)sujQfDsL#0DD&o(&wly|`S5Lz;$ywGXpsuQpV5 znnsca4)Y|hHg%($#`3j~itb%)84os%*Uuk#Pu>}SaN+|8{+u$TfRDf|2LJyoGz459 z-k<%aDT8-sCaEg7H;Lb>=hu{><;!zXNz$;AH~8-Nlrgr}^XhVP7SIg{8O_(tCgu8@ z&=5O&0s+$4mBQ@kHR?*Hs%@??7PdU>^=n*~d){a~%Q4N7Oaf9&e+v!kTch=)fK0At z0w-QyL*;T8+++y^)NwsTB?~#uf2gc5^0gEXXV7Y@X=%lrOGXO~w^wq@ta{%*uEYC2 z)8K|1Sc;x9zOp|S!d|cj@1lhU*%e-7;6OFOKnmA5&@*Jy3OjSHwj-AXKlw<0c{!#6 zTn2w~;v0TAB+5q0fxm?Y#9a^~gjHUYI)rolFqr;z4q9ly#YVrO{QoF4z|q&16bACuD>|>azm?RCJA5l`SS$Kg_ThNzTX_r4 z&FzW~3dikA6npV@RiDVW?dl=ro8N233?0AMPG$-B*Ufr<`(8hz9``umsZgq{m*H0Bu+2e)mW~_{8J?iidgnK zpd1&`Y#3rAcUy5lg||8}Hkbyb>B&NMWMGsoJ+d5$ge%rjNPb_g4~Wr(Ub&uj4ZbLA zgw`jq>kS>r5%M?EY@8xrjG6dOeptqv*a~WzE_iU1tje5$C1P!u&uxI*b0V!Jz*wDmi`7J1ZISNOe6OJ*LOJlOV)h!#z@Mxg}dE`hbTu%);P}P)x(F zD=|XgGtA(HQYQIW-*;e0Ay#4|IrvtUtE5+Qz-yqu_zC$2G$R)RfO*0tp_tKShmOy3 zV;;&gOhO6qtr_BmVe-2IayaZdjAR|bcuLHb5cVOK75)&ZS&OLoh9|I{dlm#3E(*Yl z??JNYUG*AkshJ5M%aZgP6NqV?m^C)Y5|28Iu(i`J zR&JA2m8~t(NMnXf6ar5e$!wH087M;$`o;#v0KI+Jn>-@#kZ2Zu~MvLK-ua$*fR-N<&jBUC@%B^1xstPPsyt4uC1U36|=b9-GC z6X5HnQQ>SO#XJj?`QTctpvxrw?FH(TL4U}!R!;UgR8?(V5Fe<>q6F;)iH137m)Nz# znETd*x2iPqY!0k7gx81$2zaATP@ zCOrUXtjesQ4}mK6LQf#gp@KBtR3RLtH%SVz+UfikgJrafks2?oVjEd*DGiv;9KG$V zI#}N3^SSvo^wN@X@+FG(zIeo58F5M(M(5ot->-okMzD6&eIe-VL%(E4#$*K)E63DF z3&rdm(R4G@Kf_0quN9YG_~qY70RPRRmg*U`k%n31Z;7HZi_!#Z9ui# zmnq8#0-AKT!7%C`mohiG$<`-%fR55zbH{)5cVh4~LVzFLS9K<+DmT*rwsf}e zYNxKmYcy0?6#YfiS7pEy?)at-jHw2b_$taPpjZ3qZxa==GErLZ z(YKWw+`j$Z@qfwu|GeWrKMDW0GXMY0j_>vEB|8)fb9Sc+QLm|Ea?=QzOo62F3Z%*1 zdK;ok7}0IF41Wh86bSjnTH7Nz65A+|96x`F_E7IEZbz;{i`zwBn27t@hW5GsN@9s4 z5F^jc)g<#EuC-+AMEkWAyS&1+RHwSlwKSJbuJv^Har^Z*UTcNxZ(kg5uD?UzaBpM; zP&jO4hOifHWJQQrxi@p-4IMUflmEYZeZQ^9T&P~$s2wv6ACmq3`Yr_B+-X?( z34+(JCl>ECZTqF&Z@_Czdn0i)=0+^OzEb?7`SSSNk52&ZcDck=ox)%%m?OPH3X?$d z$;YEU0)zy)k>;M=d-znzGL0Aj4x~zh(ZpLy<4W^jf#8$*+a9#{_0R3Xk0cEkqZbUmny6yAq&f z{%D2BdI7@>0b+@zKAzhv!@3GuJ!3A#It8J(=Ec?v@}q>uzJ!cw2_>74U~}a-#i5-5 zGVMs&;QGf+TP^v-9wN#QEkCo0*N}WB=r^Ok9J@XwM#yA8+Zr5Fk}dx@=g`ig&dM8* z1(7*DWx|)3eyIQPhs%>6KW7Jw+QS();^Xi+t6gH%#Wz)Cp+|3@&a7+O3ft55Be0!l zFd+rPg}l(mgl2E1T%HLRc(Bl%0fBV8B=~yfZP3n19BjROnN8m4Acx55N0{H@O9@<;+$|Bc%Vzu@ij{_dfm1U@)7l+muj7;cAvqnr&`B9t#^_j<-FpQ5kf>GK5L z3^^6&HiSApZ@))AgalCwvoO43&6LqRHEiR#cT6#+)xnBJZmz(51)Yi1jGfIFtJm0sywu9f43vWzeHn25FNOp0zgd z3e-OOGgGL}KAiLN#|phm!*#=GIFp6c%teVfYazsjp9$BDN|{*I1Oyf z2@ow}8v2w#6sr8*^mc%QTyZPUOVHvRUUp$yc4#&>^9=>cL=t>H-9;!TOo{$Z49KVt z1QaG?lhL&XsMRcx3l`u|@-K!J_aMlFCm)V9352Vfv1CM{W^{f~L^9cE#m!7ke?ibR zD*YTZOXr?jPjwJ>LB-?UWWyH2a3P=uVEFYw3)h0LpFzbK3CBhop0=x>gQ9P#U^2E? z;R1mlvlg9)hZT>Hcx(RkChrsHn&}B*{6JpBlDdy}JP|B=`VJE#! zGGw=kz`ZWhBl22#OuKV*ScWkJjnMh{y%NF?TfaPVsfO5LsXjYz zvw|L)*1qk7{Y52u2)+7e|!)R>|a$Anp(yjy_E8x^*q-k!zDSd{5w1u;n zPIcW~9raH_4yBeViDU;&d^K)XE(@0mYq`<1Z^0M=zwyGS06@P5$CWtFMeq1cU-%+w zOM3UVOpATStLkdYT(unU&!kR#JU%M6l8(~(ygZ4L5s{1Kg<7{OOcAKnRcDq$?Kx-} zw(UY{m-n{4_^oHUc0}a(*rT<5pHD4x*435r?mT&NZ*C{i^L_CfXNT~uSx{kpJ%&q^ z$Kl1-Zz$3CnM5uKg7mqmwfaw#^FRC_q9@RY4ej}lf0zh7XQm8R?PRHP4HlDJoW}qA zj-P+cU0)~|^fbS~zm50TjvvKgahiE^5;-pUG=>N;i|6ixt2})rf_zcauCa5v1=qY! zlFO1qNBI(0e)0dAK8_gW<+Gn|pP%PY zC(4Ej2r`l~xy-Y8pGv6)F`Y+eERsG>w%)uYD52Nq$DJ@?D3kM{_{BEMap3U5*0aHj z`HPLBHuc}VkAvmEcpo?aoA*KT7wAN+KE z_vJaXBl_jf8+PU%*Q}?5zW;CWhp3Qw_}L2DjFtS!x$@$IM6nmCdW@^^FI9&QmDd)? z+zzwd?xF_b+)jDh!Ubh~qcN`;xFk5|UYVl@To?B>aSjgvg9^7*)5mYkL!~e<0^m}x z3uD|-2J**XSUeZzTV~d#H&*Ic>%3mp3^`>PTW{|@AgTFyZ$5*?$yE2lAyM&<7A!~c zC#~QaMfMgv(e2%Ks0zhh@uAMKRCEI7V50NQ*7XlH&5Z)h@emB9l z^c@3hsB^nHIz&gP6*r@6`y=I7CYjHwx^Rj{*3qW^tUtYv@CWX{ybqaEd9H&0@;>Un zB8Sg}t-?6Twnqph&$jiUn>X(T179kme5iI2V9g9nN>mGu#I7$iA_EH|hV&><;H1py zk$}n*I~YXcq%Q=IVyViLHW4!Z_C8Q;zww8NOhQ}Lb}CGS=U6KfU}_6_I_XdIejyO8 z@VH8+zWEWNs+mQa6e6?dYU?=(Q;D(5d&h0M7iQd-MNyCX%;&QgezEuU8L7Jvf9hU@ zon|&o^@db-$uCvHif+b>T>KaQ(6I#1Q&oApg2o>LtQhC)l!viNWq*pT(4TNB2W_{9 zezbo(SOm^cUs7PKe$R@SH0sv&c^bDhv%(>82D!7v!We3hL&LF;^38BYGGh^wv@O_xHRbbzm>&QB1n9TfBSON-Fg86%9>s;d%>#w0eZ z%S#x!QtM0oHE>J$`p{Qod~4U{Ez$x_=I<#`=tx1t2VQ{P64++W2GP zK|E9-pxXQ!50+ynWlbh_qn)oz1AyO3)t*BqpRoJf!*k2u*}b^IMDb1(^g(96 zUxX{Z{iyL-(nQsA=ZcqVW+b z`lHWGLs0xaVz2Osc$65aCEg=27Ez4Y6I0qMCF~;|xlfl}GNd)u*uDlYweoUfGVf{F zAp9bL4P~w;5mvq~hOn_fFlUZ{btqOrQbNfZ=a*Rxk@CjtxQ#tdDQAn1f|5q767<3{2PQ+pi~E!p9QJhIa7RQ6Yx2G(TWPBJjAn>r zCmk$r>evo!o-< zsUvbs8uQ)ST4---737v2$V>X%_!s`*Sr=XS-D<#};Sc=5*~KbtX7v~T!0Y@NjX#Xz zAfyXQN%Lctf8!6`dQmTDX3+S9SMvq$ANa#3(U1BgQ9+U)7O}h=;4lVA2!xekj~~@8 zI!_$zGP_80CWfM9ei{nFTB5&x=%uE}uon%=Si){?=+qcMMvSI2vFS9*KXrCZC=XcW zxNhj@n0JYYrUS$|B)YII-7-M*o1(8J24B8HE5jXIkX8xB8iuE3`d8o3HFc9++Q(IC zSKC1|LGXD!XdQtf{c18Uz|I7vKgOoB6U9rp;dc_)r?B(NRb}S6V9!?54@6+Y+7+9v0kZI$gkim?e<@@gR#90A46=zlFBavc7!}zF2@(vBweUk3v*mO6krpa6}{0NPasnjfYV0YtSPp@FF;pBkXJ|u zitPJ>@D&G19HORAoYWPXff7X58f7+6?!$2aB(?_? z?&slW-nzk`*J+#0A*DuPbzb2O$>B{6;U6Z$n@_`As3O|LB07vCI=v!L$q_vb5q*;p z0|jK!YqX(?!7pk;OLcfD|>d9=J-(D`Ka&(mmt8i^^6#4?fWaV3LfkpA1P!4r@$~m`aX1OGZ+s#EPfHo1`RqrzEGOq&B9cPo=y) zOUa;4%@R+|F-gtyPAy1DEow|HnMy4?ORbWpv4j2zHUIJ&??*-aNi>nI_5DdS;k{-?tDS|vyha%>=pRtCLw|w$A4C(; zvbh{J-)V|9@6HQ`gCgJo9ka zu%)jt5yZgZ5Vr+#qpDBg{d`k0?Tx}aVddfC!;T7VZSuM#9hl05@*SMTVQ?q%0Fd0E z$W3FiJDfL>#9~ga3S__}5=nzKtR7JJae@Wx9kYi|>8jp&{dM zxgHbd!Mw+l0sWe2uaR+TP!_ZpTX)~SWB2%epS;w`+{9-1A5inNNM7gv@1O zwQYN}_+zHb!ueI9RL*Pn`76-Zq3jA;N}s@(`DfRziRIe|;hK2QtC(EWPwUww_Cj?d zvdHsQKmXHIZ%&v^)uq}g_{UTq)rSKl;dMA&E#US8FoN4l9gkcUr{Jl2(7ca1)(#yk z3>YnSz9odfuCNXCYT zmbkrT%fwN%8NZHxxKzz@vwc8#s=eKkq^5RYTs|`iR~|;3(rXr zDo533^N=#y++(E-UQ;O$Amh9~RnfJj_`+9p2j-+;tB_|AYj4IvGYS+Nw@VO}`y>>I zJ95iRyFy+Ag3LM|YG#$mhGmUMG#t=QS-(2{z_Ht<&TJ|e`23L{k8d-*?oYYb%H#`R zp|3}IeY3!eolIX;pu+*T0H=uPMr}{W&?6O@JQ8ePupCXJU6(FLZ(Tvtcn;@p2v3=SAHOqc>dgzekDU$AO{0qHyuklJVv^7qqMjl9K>n1T_qepvnA|8D3~0a;(yP)qnnbf)3}2!kegBgW(WX8!fnDfE?L(f?MW&M zVdA%a2~A*4r6`%O%LGyuR%%Rpf0iuGlC#8mA#<5Oyhc&$Px1H5y-o=1RqmaSBoEZ& ziS}=5KR+MMSQ`}<|GutKtU&(*Xi4FC8f~yU%(p|ODn2H+*b>j8n$Lh>x}q^ ziC(JulNBOtA8Wr^7lJ6vl6MQp_@h`5tA%aODsD%wIT?bRyH4Si6%c5XeAPqTA4^}G&L;+c9>2f7+Kv8nxvq14K6Cx^ zbnw&9lfl=-*{t;IEp8o|!Y_R9VR=E-mS4BII{aAhAZc~of%>lM5|f-lIXMtUmBd^8 zj`M&2?L_BDQ3`xxwkOL& z+OlBENq(pvl+r90B6D5$5_8xQ(?Wj|0cl2J<1Qj-Sdgc%}^z#J+79duFkgf>?= z;mU3U?*xB`7AEsgeK`L%<7zjvCT`7I9KHB8d`pb{od2 zh7%iJ4-p-DQ5a2v_r07&MW9g&VZ`FlWCYaAT)G(!Efa$lJ_8TgSz=kl-V}%&T6|oe zM8Zr#IX>Z7NI@XLMbU3g_+pjd7!ix9=ZNlf%?XBBCWhfu5@hK@A0P zP8T4Z3mS6*FAp%x4;F~eGVc9!fzYx;4`C$TonAzGQ39?yUWxQ6!HfpftQMPgqp;+w zlYceUiwmYs-j@54Dxyc2)-C9D2tle*QU<%8!BXhm(q0M>*5Cn#;)2P-(2qj|-mNN0 z)Ixk##5WHJd=|l&t!biUchAj<1yJ}s-jt$7gdQkClIz4b=TLv31s@diru2xSZz^3N zE^XM3_p2Y^u2i_6tIVukmTzFF&B_|>71c;H` zm1807Yq{%U_@EEV#bePsk%EYuGYv+Q#VnDF z@)=P+WykF09iHgllx#oenJs4ec&FQL2Ow6!&sHsB{oX>XR;0v-vfl>Wzwc&-brNsu zLe{2oOq+7ergI;h=bF>xSxV$to95Z5li&Gl@7S)LmM3JQ=DDtP7jl$0fo)&3Vs~*{ zr5m0DwEh=g%Dw!@SJ1?rBDXx+zt}!jH^C@mfEpBQm{xDtK zd|uo_gH8vObeNWO`jntjOM040`ld?;&P#@9N=GD0$4pDdeM%=&OQ)MkXQxZ&&r26* z%9bR`R!qy*e9AUb%VO_9PCCl|x~M4vI2f}STmK155psA@pu-5fzBqnNr*_8z75hi} z^w*-McMjUUmDe9~^>qGs`Vr%zGHSJS-5NX~rCr+6G$Id@DPE-;|87Uy{A^eM(2aEmAC?1&gRAjCpb zfG)0zJQ-u1@2qcFqM^{O$9X!>F#G+Wuhw(+=eUSTJJh74&RB9}uP=qrP$)ynXux{w z#!6i0_XJw2K0@JM)&nsPC})P)lDQWq9ta_Ub+>RtMh)M@I#rdzB*$EwYz zS?|a!;{|+`-PktdewK+JKPVHFcfGlWhC)r_vXpM)ZWS3IIcVzQxhH*H;@v$6A zm&XZcK8lClE7zuJMPoEGI6VAH48H2RTD1#zdbtTEMt0e2;XJM#wa|8#b|RsY%67_! z>6PtNqI8-lh9^$@T^#ulf_z^A{!}EWi^oll>C1~$ImM%+{(-N_?FXXc0R7<*{MyNV zNcqAkYD8MJ|8PX+gzjim+34}n7sF+%-99s1Ga=PxdMq~?rJd11S=*b%j5Xzv1iUfT zYvd=*U&bFls}*9JIGPulxpq2`f2YjOIy21PaU9djAR)FGA*wC*6-lst@-+sXJ`Ilx zeu-vI@{_##-vsmdxCWX^qSL1Yc?06b^{)mbwn|vuZ*PsgJ^$W-8#K7{ejS}Yeb6t= zy8Ex9Cjx_tS4YENBd(4I2zsT}=3oEI=*jD?p1ywORI8jJQs8XjI|yc)YdaivZ9N75 z7pgRs@L*0j#w|%DQl``76*!d|)X;F9zQdH^Hr9UTQ?C_%b235coxRpWLz1S zf}Yj|7g(2B$iouK3eTE$n1n%>P^plXuc|)%=UKWNly@|p_^{}KkS=kok+xogIHti_ zb_!pP_a03LZ+0W{rPkF3eWnlIp7!O-oOE9gzB)g62M`tfWAsFqM9>OJ6qq5(d=B?= zip;_+VNt$;>Wie=eaP_VqUP(nv6?5>AsJ&yaW(W{-AS03mIya=BUH%}pR~(2y~+*o zL04B{LeCEsFUZ?JCu8P4I6{~psPc$gJzxDxk?B#9aet9veb1LNpQB=PqGIDN_3^6I zqY^uTx$-YOhLQoo8dGDNwKWA=r4B~D)8kFYwH1-2PPQ5|(|yy&bq)Qc z&d+*h=FgAoTZqbBf;G&R(@PsrT4hg@dS}-pP8x?I%iQz-H|f)+laITRPxhZ;AUIL= z5^)VrT=|&7vbIh>^(%DU1~eBiX-`|g+7*73eG52}r>)SaiU1DHMf`iGZBzplL85(& z#LrLLVZ@aoDtbWw>6 z&TeFS$cn-x1plc-ssNZ6a~Ny?`GNbbM81Yyd;hgw;m_2=pY;lVq#kMt^rFrc*T_Q3 ze=CuH%T^lit=`-EQSdukdDW-`lYME0&Q{WnKQscCyv|ZGy%pv@F_3Gl zmF8&S>4GTgN{A`meLQqD!gdO$B^}R|xnHKyjI^5za1lhZd_V(N98sKipqwJLp@#kt zy_oi=lW zkxqM8{(Z46L=BsjsH_#k@OJ*LXlr0wkN}9J>(J(l320N}!M<-f$QRQG3Z!U@R~lj^ zvTz$>25MZPe!FeqnH33`>y}lgYvCjn=de7T>M&`^A(8ih3yVAGzC4jcCVR-fs>Q5czQY9R|EQSYDozv!F zU)6n+XTyzr(7W90t|kD@3GeW_+;$Q^R1bYW_TU2@bhvf|JLh^@A-_f7hfkwWG}YcAD+KuYB{H_K=TER zf=-oiN1h>9GlIEO_6Dy0!ZOcOJ;J9pMkQ0Z1OD#`EVdO@<);@Fw8=G@s@BMx1Kgu* z@86sy@Lr3_E&Mn23VVO>1*ndHr9^HBySeU#FMq=iYf)8R@UHyL7fhf!MVkJ5>cNgg zThl)p;ocvO`49C9$`boA$cP+P4z+G|)BV`wz8rSZZZu!8AD2Ox%c-K)b0>8_zCbgV z+o-z-wzNz~EtDh8Kdv6z;2${$0HW-E(V=)9NjN595+bA!t;}%y(jnX#_U=Iap^8NC zqCC?hpx+@chk6{HdI*f=WXZ~8p3q&93XlskPz5m_>?#!nkQEKju~>fQR~C4ojI``q z)L8Y6?xV^*JDBa_4D4hyL}`oQHUJT5(X3CL4Gi0Ma2l&V2$A+ksTJyfoW zBYG0w;oqhIZilO<^o%&T;|_g=lY@LJjRwHukq4p9GbnG;8fL5gw-4OE%vMT&<6q0X z8JUG07)Z3OLwX_F$xXo#^^%7+lBro5yb_I;L4VaN4EWSNGBZ`>`^*t3C!t3EekfRl z16Ar^rp8;?Mn1u*0oA+CP;j>`i83~Fj9;%n*0+GlZtHc7Rsco~@BY^h+_T{Gnh=BX zdtbQPmJ=~ees~8q^qozgG@tgDzdGqP;S+27ba})iwdHLXCG(VF2i3)UWwG$^Eiu4= zzx$(s`(HkAnoFcgH?_1@2e%5PF zT%Fvdxh9x))@P?(ojTFChOSp&`8V|n2;v&ALOp&tBUad7(t_OpHpV>+hyU^2lzVxO zvo`bBw4mB+YTjS9M8Drn!C7>Jfb8oF&0l#1Tb`3WmHBchk<6f5TnN z{iWEj+H$U__U1(S-L(A~To~KPF9%OaUH@V2-M6}*-`uR{n|tqhurya(f9va~SD+sr zN<7)kuWTl`e>r&auP&PxG0lsq5jOo>@c-&uXKdAjC?V0Utny!h)b_2STKq-M(IN0Gv=lW3QGCHpy(YZNzW-^g~C4T&U z{FBCYIUhszZJqYBBeD>ZMs!;6=FY_l(G9>2IIU#dK;Qn}(%AIBFGCrFO)vL7!2{-j zFJlDtgfPUD_yCvH^KjwM`RH0AVr%`E#mR1&0cV#igksnHhYwAlkA&ykc~fuDza}IN zm=~q+MAs7iz&Of$$;=%90WwtEmles^ywGXEyujh;VgM2S3cPqQ$dzL@Vy&=l;=k4MHHC_JVghlJQOcZ|tqxihH?{hYPWPExmw z&&-Sv!EcGaV5*5u@W*!p14%BJ0J}2jBRow!A28sv#!8cyUEn-5|JE)F4Ce#PuDOSh z88vdS7|cESq5KxY_|J-Mx|#iQk-F_)Wl=vt4?RhRWZ z6_1l+K^p|&Ou9i10djyAyv7^%<8%dy_y}M?c+te8ccW`J*NVO>p7m$rd>6dgG>Z0D zfG9vpFB8A}=99P6-JzV8#9NL6!QS`=Uu)Ipn%>Evn%tsg7|4XJ<;-BJg8GjZpAE}# zyxXquz?{mVOHdP}+xjf^gbHoWKUO5uI@|UqQ_%=jB$N3`PKbC9!i|LZo>>czWYLxi zuZ+)onsB#E2h)FzyW)Qqu1V=22~D7=B+}>nYK>Jl>CTvMmx&5+#Q`jKuZddbeNK2A z;Qo}_4PQebJN1iULd~bkQ7Qu`)Gt9hC+xXvLeJ*Xh4KpG4<_&Qve!8Y`fL_F!9;B3 zL^q#*D`_9_*(%O=mfUPeBEI-u+!ZAWl;M^)?PiTW2`CYFDK7nMySh+&yQA$if^z>B4r(D$>R&oLD&X0 zS2OS6RBNC7El>(qVv}eCj>7se@hfP=f{7|I8oF-n4>CaoIF}D2JgfYB-5UD8#-S1w@LyztFz5e6-Ft>L-L6^Re@Y-EAqfZ~ zJv0G93<}aAbP$kG1u24{A~rx&6i_;dlpsw7G(ePMqxTX@=q2twAvJQ45U;Koz^1edHt&Ll!VDhKe*tNsi#BDTfw3BbbEMzXZ%a?#--F~Kp6^SEk#BFQKWUff&D4v)vVlcFLNehOL0)MfVlsIjmpnL4Spsz8D$*Mr{&IF73sS zteslLY%M~F>g#i%y)i5{q!WM>b?`lA9UK;CFD6!LZcFzY-+s;VnuU0@cd<#bS$$JI z0iVx6btxCUvs-8?bSNN6We0uS%%iVOs5cg+H$lg(W!#cv%3uhhFokRT>Ds|QC~Jo)$>C;M zwCj}TLe71tn199(5BidP?_{Ua$jYb9MZ}4Uc*VD2nSbKec=MZ9c9x3xHFv+2cRKHW zui30qefN29Abyd+^8;=C#V*uTvCDrTc74dts$01~{!p#*e0ui&ukqAbGnK{WP`LVh zl6kH2Y|KFS&hot`_4S#G6Fs{>91yj;Tc1BZI@mjxs71fCUT7SOn33eu+$!}3Lv2U2E_9uN>^8y~W=T@YcK8A~eId(nyf^I|?Of*C&Ay3*h zA3gfF1HOoXk>LhFH){STp60a9BjmoyUwE3o2fTM?UEH5MO?TagTRYDk+xsbR&Y!rp zdW}Bd3tuQ}UuL4pzEBRK`9MgyKVH@2%TVt{pWVu}irCSFSgWuEDdvGzH9kR5p4K75 z%;T2rrSBR8cb*Ep1G#)PEq2`8FSh-ek9pTr*D#-tIDQgHL&|+hyZu=+)br3x(;2_T zN%^-gx!u*CU3bge!P)3XnVbm1r-mQQw?A7md}yY-V9IwSQzhN3G@k|UyKFV~g!jT! zS8ox~zW9|+(av4Un^Ou+VC#nll}qS4$kOR{0nCxP1}3pn3%jV3*FWX!UwzBsq8@Y; zXg&;>SZ3xnfG35&nM+f`GJLUT|!_hkzJ=A1*hON z_czvU&b`X>6|p!l`k4@Jac3m?9QgiE?#EIuD?}o=qjRyEd3TuIyg>7}k7)m`p2Wk* zMgNn5{^>IV+n~R}oT>rztk(a9Bap`+>OVLFwg1);SUmS{j=(If_}}?w`W?{om*aJXUJ{8*}PvMVOPH4(Hp>0{!oE1pdF!N9aP+ zpY)MG^Uo>QU zt3#VHoAF75nuaV{3>=HbLQ1b&KqMHM$nwB7jKBaAAmAQLUIlaMupW!*vZ`endfR{z z9E1T~a_jD^n6;1sEUOsh9Un*1O3f)itSznB*w92=XTZep_|HM>-$Ik!mG?h~9q)br z`KKfBPx{Eej5$5D#16a_U-8o)RDX%pda7H}tGVq?e|Lk@ig8-0S6-UW?{3YSYtmqv zT}nxkzB^iVdMAx3u`=$ez!ts_2BZ@X$`{y@>w2{kyhOW0AI+}C{$PFnp;zl*P825* za!QMS&4dvUz@}qX9OW&508TM?(}U5ytv-(_Z?DzYVv3D!YwmPOYVLeFP>)AwCf|C6 zpjG&P{(Ms#*-_f#Z3k}R3kf?C!p9UO#pt!B&x) z-+#^qar|bS{a5?MpP19X|L%I9ttT6(yc0p*7dT7DPP9U6r}f(zW_ebPSk;CtD*XY9 z_JRj1Fx=206Y)Og?mxqv{y)6Cf9wK}QP%Jy7wN~EM!ST6ojU#h2ZQ$i=s2dspz4g9Id4a!LiAQz_ug1G`=e@A%s)f{Px%QbYpmlg${>#Zzpo)#y&#`lX8Nq`Zr;K!aBsl85`^#ic(rOP$=Sv71V5s#B{YFXyNpB zd%nUbBk?RwI-*wmq<2)`mIzQI(!iBZwl4#S$3AQ!9&NdyE)255Xz~Vuxdl%EOg3MA zMTsE7S-e9^OA< z#F(8NdvnVo=6=bU1Lnqf!(V-TkJ3|=nSI!RBqrc;n5!*kTl^!cg+m?Y(lOg3haaLj zIc=H`Yo2BX+`xLtcCPbUMHLXErKhQd&2u)e`=qms`1p~hEP&tFIO7`K7~(QSOH>+p z&HdWpO0O_6oys#zE!2cKg*Rn48G`P+uglmo2PsvSJ}E}I!AQPGp^}WWGd|8xo$$F! zb}y%U1L?@gZ*N@{vw~whWU(^6b`Hd>5e4BLLe`Sq1|G%O8e+*bK z`Mg7yMXaM`=(5P?gPqO#qdVV}SfCWgujNE=oQ3Mav3RB@NkywstN>p+GQN5`fI+|ax4#)>@JpJwd9FiN?94I*Xk z0DBW}H-&*f+TK@g0l$Lj#wa!!%^GF-+15Cw-F2C*5A%Nnk*+IT&q5Zd{p`ff1z^wSJp^<`AY2{?F#0wn#)X9~+tc#x6~nu>`5wV#W;QtaTQiKaga}ThMf~9{hZ6`YsXCk zS7qy!N=UK{u4?IU^9tq%BXNb-m3-}1?bejZ31BCVj$QiLlD1L>EBz+d07$+=SJ-n{ zn<-jpJDMpWtoG0V=LOg*hFgoCMq<1HJK1`~Dn{O5SZ`oh>9`ynFYsw~Xv8^4B5AT4 zw7+exWv}^m{M90R$w-fq-rrJj25S^e$YQ%H3-8K?cti4aS3wS_jOzoL~LGMa|Y6ONz#$*%Q2PQF8m zIZlSmV;zH8q`)MZMcG%Gvt*&y3WY*!(FUX=c^FRjE!dq3_yGjS_HhKMTtTf4%)wsvq`gh-3l ziavEiz1NG{X6EetQP~tz(tPpwTctSbou{`5TM|pMB7Z&inMY)Hje^J_-TxGN__u4v z?VBSG(JqW*r|X^co>Vj}{D={uaV!M1DX{X2UxJCgbr<=j)$=?Dvu7a_GJ0EzCM6yd zHm~$r9%7Au+!J|3(ddhUr|>I=Ufrkj1Y0Z{9kQW|;x;Q`K6IQ~QG)MO zi8cMK+h5TJ^W1uSW}h>QWO#p3s4RH)!iw)ZXwR{$TllV9JDe};z|7hA`g5=w!Tr}< zY~RR z-Go}^D|P|)*IY)=;CiLL7yPhTw%!+&t(T1~jJJw7A?gh_<-+A2Aoa!d7=oP0?Lt!y ztWrgHWQjFg_Ws7KlClkKH)uf6p>C>)UU@LQ4kvmTBNmSKP#npW>O6se`rLkkDKBz` zMVOFln9>0Oyohcm3Y9^+iJ*LcTw_4XD9CwUKK7BLu26pzv-K;_7xu2cC#L3`rNclP z5l2re(+XH61+ER{p4`yl$aw23Fe6}*9?BC4gnNl5uv+Xb@TC(CPd#0Y_xBRzY}qoD zla+sL74YUr)*>q*s{@9eY!XiO(!1#<&x(B(aVVCYV9DFcjBRt_?Aw~vKAI3_E6%`$ zN0R6WM4qdYOu~*xqf^Wm<0l_{p*uTUwPHk=ElL<5zmNv1)C5>Vb8yM#5!O@B7=mus zNO0yT8+NBxC*F6@rZvvw7O2n2#(Mij35^`-4l2DJFXqyu3ma@zJCH|QrrSU}sH`ea z8*=PRb-}FS`r!ZbWFLfR$I4j*BQ^c+kHX zp*gM{uRNPAG)9ipxZ8&aNK!KKuWWg@(Fe1<#byqEd`wy(6Cp*=ffk}j0v9=+(3Yo} z#-&(z4>;IVqCy}vFFoyBu zwsfH7)Cd_&;an)V1!8j4P)?Zvbc`Z0>Exkzl8lZ$jdSJPeAYxVmuCa?W=@bWq0Tb^ z#Kg3T(}NbJEALDWcO(;$2~pwbTp-*EEdXI6_pL< z9%0-iWSB`a1A8uee4c>lJ7b(A&s`pn)E+AO+TJXeca)wSKm>W(HIN;n^u@t6VXSP( zjBX+edIlBilPb1krQIY)h5=8{Ra^>LcQ|>GBmDAK7VntL7j%sFmtgcUC#0S&D zt*|18jg1P?9vFxxt`Sn{r!7Mz!cOkB9&tx0N*;B6YzLn1zq9~t#DQo;dK8AG1`BUQ zvf*7220Rwm-yGT^vlLRGu@tb50n>XND3Jnw@5N3z>|&NGxP<|I$bmbe;f;Xb66l`9 zf{O*l)!dND5yPTD4@Z*0c)Z^Y3L*gm>BfT#F)WPQkQ;ae9?ACOC99)>DA7tt>=*4hAEbca4&#v;Gnt{(7Xa3Cjg?k&5(tM zWziEx5iD=Mux3&a1PUvFgScbibbOr;-sznU&leou9y2O0o({!RVPSHad-96uesi6~?&Ia4-cVn=P7k8{_Tm!p12HaUw(F zkT_lWsMMAAntZhaTIxbfTUa=l%hb`(O0?t1S2YEgQ>c_`p(dp{O5CYYUfRbQ2 z!nR2xf)a5co)pL`?rtP1sSppY^P+z}5bxSSPsl#XhD?RnH1eug?<&@U#0L4rcpk}C zLu9k{q6cVG~EQ;fYWS0OIHc`9K6^ zx_~AV5gu$jU-0O50B9n^2tjOlSTFBq=V&MxfdW17Vjo9e`c=T*$bDQrnw`-b5@8U9 zzK^ITLx#$p?NZOw6d=AAKnGnsy8$>~3S`%deU^eCxggGixcae(O%(f`yB;|>=q?$y z7KCWQ32~D6Gc917EI9xLdj0`~f`M0(poInOSp|>YqhRDy@Hf8*6SRWtmI6c#n!O(d z2f4#G0Z8YtcOw}xQNSL-0^osLFS9(}Q)Bxv@GT-NdIynz=5mV{q}%J+0RYdzxqdtk z`&fd4FDLG2Z2jVkNU)79 zdzvJNACm74=FB0RHXD1j^BBe3vX6(H4@*S;;Ip%yv9qRGzVVhXqBNSH94}^{D}1wR zKD}z*)^GP>QoV-%3H5gyQaaWdRiLGhH3C|_Z)>^u3A zvqRQcn-YBo+lV2)oCa$VZhq&VzBeVTPjTH-?lpZxS~Y_wSE!xWE6>6?`6 z`tv0;naiuD4nO5cEVRp(cMCdHV$q2lTCy(iw(&}{P&E-}>l3JBCMwD{N5Cn%90ty+R|nwW zUrpfE&4;G_;R_D+7Dwxr9ZVK*b*$nVYt(uGMr7n5GRqRZ8|uOGbqi?tEcFbNYu)B9 zasI6iYhk@4*CoUxe6^rq6?tivUx#J2cJ&*_*SGK`T-`h#zJiC-Q>!xR+ABou`3d-v z7yPKY_MBG}B)zWxHeAzD=ayw%|9b6fH_d&uhM9>vndZhr&F&CA#HL!^QT4j7)QT-s zUExN>Ci#q`K*M(v6EPUa-0h2N$hx1`5Wg@8Yg70Jx(TA^DdYp+pw=^~BeB;Jn`jeX zbs`IlCw#5mSiNBy+S)VS02zc|4M0$7CZzt*h5|kMr=YNghBFJ)@xOzwx*)z}Ypi0L zw!Ss3q3YHONEX-Y^wc>PfYx7l4g05!49^ii@QrdcJO`L-xux2Hg^d8UK3~1~TLJu` zH-gn2QN2gX4Ml7K8f!tVOJ3Jl#bw|5Bfeqa{RQwiG<&u!Vu=iI6S%a5x>}Tj@O%d^ zz3ZBQgKgn83}O&3Oc5KHp7Bt`8qiFK!(_)ev~k|pMdn0O^3VY@-C=VbeCPqt!R*;0tG-5A8|+m;$fywFzt+V!RBz~w zOv4nAw+`Ix7-EF@xDp5N#yJE_vM&(fYZ$l*FPjqz=7eG2B*R7n;3GuXCIxCuhHcUC zZz5UXUAPXueXcql&?b@oL#6%`4n9kH5Lb|-K!k1vz1>10`f*TiB-FoveIfac!QIh* z7eoiqVe;_pbPUUPGRW#A`|tzyEeyO#5PD}AHiAa15n-b-`C;Ykn+5Fe0r+GN``P`$ z!`dtfc-BM;6bk?fXvZ8h!-ZDj4hrIkgO=wY($Ng>aqR0iKoA!Ce~hrjKzQ0_9+pG# zF7!}-OB|YEWB*L$dlir`8_O8T2@OrhfE;lkYYfYr3phiX{XT}}q!%QC%20^$!(v#l zLGW~JXh#r&iU+COn9K8$@+U)*Dz1BIK5j%o6fhtGX~;I2rG-WTdlazVm*rT)fUGG` zB&h?Bd00n~pz|(lsbq*ps+7V4cozqsL1*2+&USqy1B;2X_F`62uw+OzhRGJg z(pB5~FaV)|gCzvbyvKl_zi|pny_yPq@#R3Ie#UWw=kVOG&Hzv{_`GXb&=XadpIqDha(jtZhPrWwIX&p% zdtB-b9Lyf)kcf>^D1d(Og6Q{vhP)vD6o^Fu!a9~E3lH|dgR{u6MKB}+1;NJ84yv%} z6kMpoL9Bz=;*gLXd;n#b^@eKLTYZE-^^Ow?Vy+CgN5Qs(eq<~Ua`ttN55wm$pikH! zUn(LJ|0Eqh8;OG15k4vquxmM?EYIlC{)7&Wyc@u;?~j=!xTTyus(9Cn-^SLRP9F!Nn%UU%q;fX$blsMP zb2YLs`^B7Z`?QjxMYpdVg7j)#h&}m5x5+qD!g*_u0pPP<#Ny}1qeMdutO*8L2MH>r zku?WFhFC)>HNC^CjeCJH&vjt7Z}^*}Uz&YXL?T8ao#&kEc> z00}(vPy=$RnpKktHsV*)tMrN%ZdvkUNdfi@q;Tuh03uiS(v10_h+LK)Y3+8$5uUy{ zw706>u}*?X3e5v(Gi2ccu&Iv8*Ak(``WS!A4Q5I&*|)~Uwt`@0J~rq+TQ z*NuD3214Swo`d_guLJKkDq0Lp$0&JYn}=l4Wh(9rL3c0y|$QT(YDRYZ(?O`tLiayCqPp3_wz zQ`_7n$+O|9)r`f0syAB`nZrrNI3nz{z++O8`na9pt49Du>Zw%GnEo?aQ40eW?7NCN z;Xt6GHQKl>DvU=2^H?<5Dhnls2)Mf%9&PeP`bwv<(w7Ricr6xtomzk>$!$rN|MJ4y z>kx~8x85{K=t57X(noo(Mps5YzwwNLlzMHkay!ZD&DcV^qmgt(y5m{nOX-0+ z-QhHT@AGWoF@eZaEW&PjtKovMrke(Q-qEgCYA>&FTo$B($$p&T#-;ST7a1gZEy5}#4%t3$$mdo*4XlC|eH?Fi{V{B0-2HY+*dcG~^P_@Z0nZJR9H&w) z3%TY_j~!V&$7=ZODlwBM{dR!#<*TFt-c(1}cjL$;+m(c)DRxHB4VScc=}V57OPjY1CE? z>L%j&cU_l&?N$Y4S42t)TA0=r8A0a;`CH2is+AZL=7Qq|5152EQ0F!8DmMl$iwVx5 zFY;I^>+lqX379hnX{>3-`IEDKQf6K5&T;5IAT$Y!o5U$I>Z6af6bdfTo#1N;@cVmx zLK{ZY!u*x-cVo!HcxgAVBg8Rh4&kJlR*e`t65lwJ@Ifxu;Y@Iy zxA&sJK9yC&QTl{``mDfKMXL(I4RNpSn-C>SWbUqCyw5vb)g@x2=GtnU&m>xSp61s| z{4yOEGp{QM*J%Za05=znb=F1f4W*6exNnd@1LI^pb9xPDz5i`(>56#Y1=0jRYkFr8Ot= zdLNaE5qKm_wLVFIV1FI@s&VhK%E>ozcK{c`b>N!D6hqS2=1@ZabdEBr#O9UU-bKyKSclq7f%lkX$>LR#w_-?amSf-sHVhmSZ33#KmzkR5N<+abaw5Kv@ z?A+9^;qrQRSyk8bl}%@VWxh$qxhGdoey&?D;~STC$z4D114=3B2Ep7zb)3N4_l%>BJS_#`JG(smhn4EIpWkx(t~R4KQ{KFzk>{Hu z^MQ7Gv~rW(L;dmtYur-F+v#MiYV-qVp3Tu#tuIv9V0CxVkM{&&cfAslX*KRgmB!l5 zzr5ATRKIlW?Y(-N7N3;TnoDx`#yT&s+E7(oj$LA zMRjDX=U&V0mp^N+Xl{=6K4S63gETyJc*e<*2EJL`wTtlNzP^|UUxGxSis8Acn8X&} zH;Ng8CiiywSa_dbkaNmR2tPlV!qSmzR@-31FFy3~?wt!~j(+w$GgPAWCKg54px8Ah05Gi0v`_e68i8y=~Ud0)b;c^xkn`*)@#>Y-v&rg;SXAF#8FdZoEG_L z@0;3df27~?AJ;sg+&ZSQ9*`K|W)ol0o-wr^won?QNK+iIo$}TU)tJ8-=|4FSzjNW6 z<1+Uv|FP{eziKu={h0bf{tWtfyI4zb0x29Y!~Mwbed2@F5c3nW!dlz;k22Q07Ai{` zZh9c^POZOU4P4aMdeEP$xzVmt`&COzWT;%|=X<33|F(-^-SxN&AO(q4LzHn{!QAx&4yvkMoG=a zgyu6P%_hxy8tU)N=JZ553mBM4ST2%3j*v zp_$}3NOGDZIm7gUT-HO&&934t7ZqCE^jh4lTQ0e`T=s3b64v68)N+;3;#tyit-0m; zV9SlUmMdH>H1zs7&JUz zqjh(q^$~Mh5La8Ucw2~q(KX+~Q0umE_qGV%w#YD}@VyrL#O4`$!+tUZzGv?Y~ZnVE* z?!a?(WDXi%6z|B^>mXQnyms$+w6kh@ujdiycY?$M;~F+%rvN%ur^_vB!AV}P0eX!mF49vX$KXIi{xMxm!;!xT{N znRoB`;@h(j*0UJaHP_s^RMPXUxo3H>hcIX|pVae%xtGe-yDHw>zudj1*Slfe`_sL5 zjag>&dhb?J?>3=#$FzH{q<3$ycYm(;K%i@CvIpQMGf0pbNu4Vjz05Xb&?Pcey_Y4N z3{EDqy*Jw zt8{6<>`=c5ssH%T{uA%}iLkA~D*1SyV&UBZUgj7AJ$3)XCS?urLolRKHKoI=gH=YugB7A%~DBY8G&ch=Eq(+nY{vyXL6fG z)mkP?j1wfzX4s6sA(>^~8PA=^5|YRBk6Y%Kj=#HPc6xs3!_V=LAP2l2_PxY}@r}L$ z{fQEriBhxn!s8R=HfFiu6P4_yZ(dJS$C_p*JJi%VRL@V;-|4CaO_pD>IxINZ6lhwn zKS|o}Ew(Xk37>4@icXH1><~1~1pf`$1E44Q>=-ToMQcw0N;hP~=-)Gj-SWAlE&tk@ z{yWKcVwC}ThAa24)}E`qS^61&C3_Tm{smpt6#ZwP>FI0+?AybCCJOeqZ+-ZKF?^}w z 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⁢R-F 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°)%NOt4_wvMtJblv)-u_Va+cM*Bdcq&!x&VppX{&2EZZI?X;4soQL^gWhi@0( z$r@eQlDXn|3oSfZCjopTv{a%edSwu7VWUqDPm3I=Zbu@36HKI|J1zpvvbup25y;AFH zFYk7}*3C;@{`#HT>!I>kd@VLv-aWn6JzM@pLG6t)d5<@>E>kovG=MR!5|4@6TXXWB zE47{*@?LwjUSxUiJMyX;xBijm_z$=|Qzr_SM;Vp)P(iU|{(HRCu zL6J_xEbP_8e?9nI^*H%+OQ!Z8p5u3>81{Xtft43vw|e6Go9FnQDWp6`93L*csT zmqdy+3bTG^ia&{S8Q%lY#k;Jr6zZ-5R&NeAzS)>ltKZiVSbCPHvMfepKh#w37yn+H zYM(uxCCnnVMO5#&sc~;(@a+k?5gayF6MC(cBAq;wnW{0|o*Bj8=iS@g-~MvpkRxoO zrs10~DGbPlC56*{zN5>*@Qex&iBO{Bi=zK~rdW#4d{DXvfPn!{<0x+~JTD8KaK|y@ z!=|#Z+TUCrb}>=mbKzo=%I@mlxjgr!6#X+rOAn0X*OpQ-x}wWz7MAYI53SsamLJ&! z{EJL+?b_!|?=I05jfx(Hm8WdYbQ&`2Bh(-kecddaq zrG zS->JGl^b0|kcKrveWVRPQ9mphBB{D1+}4I=CKBhsMdo)Wse50IswZ%-j(dunHzd|* z6*-%ztz<1Gt25miA}Tec3@t8c3-~ALv`OR-eYc=W7B_4&xqQy>Ey5ZKV9xs*tkd-% z^=Nxcd1+9o)v`=gyVGmqc#njaJlUskc_+VC3(8IozP{NwIo#})Bpgqj7~P^GIb$g2h|mRTQdhprH?FyE`=WZvC(phAn5`Kk+7S+ z`5G~;pQVTqEcGmapTdj`5y&%#flnc(fvwP&*Q3tv*u%Xz+KU2-XO2nT@nn_N)>rzQ zG5XWbuN|edz|1hQ@=Yj^oI+>nBqsXo^gQ@QhUTEdt1z>#B(~=7ReG=cmMtuaT~BpO^C24UAmW zyfaDF%Tnx22G%c`;SmRKX7|ykm zLwBiAi@lGCQ`&isOf1x9JwOE8&|LL$@0KkcN%XLZ0NyP;18Eqbn(hxd5*-Q zKV06YotFx~xxBv7XR~Q}-^#(&tD1*K{^s&_D+r0jF2aV^jZCbi>4U|;xxAr!yA&?31gmHGo6D;%q;Ppx z`agYW*sUo~EV+5zaOxA;(-KuXSmJr7e`@w%_e~3|)EjR&J<ZWx*?kb4yR& zH17|V-QVk<8=igh4gfC?14C!`nD$%fjLRcp59db2yfH;`n-RiB^N?#CHL&J#+=T(h zeYeTCo3Dyv^o$mmGWR<~j4R@<3@or^@3)^ysz|t=V9Rls-lZ^9kyOt;f9i0*TjP64 zqVm~!6!)(lefe*M*sP^9%D;NwbZ$O)ZnP|RC$P`7w(`*%6=!je5B)aqs*F7bw_G;G z23NNqiQPt5xwG$*3$sGvv+icP9s1S}y+8LYG+Fuj$im0Ed%9BDRly(CGZm|F&wlvB z25odVK8#dER};2v7J1QE-{0I7e`$O8*+}{BXeFqofWG9qX)=Y&(=979zchEb>Y&N} zyX-^TdyZf%{<&2K)Lhtn;v3k?(JKKoW3&TQ)Llr3KJ3Yf5-`8l*# z=vuOIzdLj81is&}b#60a_!EgP^g;{s(55?c(>!uwt4+Yz$HJtE!sYF>%M5Kn?3)%* zWk0&m#=g{z`%5C^|Kjo_arFb&jkllt;qva<>Dm2ww!OF5)+sZ5S=pb8{pq~MUj6$! zJWfxQkJm8C4P)C%x1R{x4vwiEyaxyWED3trZkxT6-fBB7?P2@Xo?X)U_0Vo@hBKHGf#dtX16YfzB@v5lYdRA5A6-BSN3;R3~244*UGKRD4V-d7x-F79o0>cX`{r(XHL{V&Frhm^SKJQe6 z?P=hP-`x_ZyeVWrv59?O^goiak4T`+;R3h-^k<7jkt^Lv|78=Wis`&EnR^#{3{W`+ z=h%>yJ(B z+)n{qD6Cwa->R_F1*ZQ>ZgM_B&wfvm!XIPu!mg?Onhk;Q+f z*uP9}l zwxk}ZG6DQppkcPIIHsc4#fLS;^8B`meLJ9>E^@zZVz?~gQ4;`w0Ce5Fx)!xAs9j+1 zO@&!6U`*=6C_lHHyy5#Qmn`<*0WKb2D|*hn{yX6E$0k0^Q}>onyQMRAmBH~1L-@7) zy4gp6w~71i3^r~yPkH)`=|383>a1}_{M9A~i*L37*>C;Ic9O?)?aO6n>*kB*u=Y&F6p;+KVl318=JWLJy?J+7mQ~62XYYw;G%j@ zQK$fPB1s#|g~ZFSFOoCZC*V zX{e$YRR3pbrhm%`^hoHl`ycMc+20=`+bhI8!@uE19&?ntp>un-J)3+EOnSP%?Ucxg z9==~(>ANvjPczr7_Q7#?+w1AZ(1se|$Lbx%KaIFD0F_~?MlB!1C`SWY&C%X7>R~+1 zW;~{g`-i(>r+Zp!=V74}T9nd~Dt;6dxf*}=Kl~7Rapmx6f{@M{Ucc<+Bw=xea6PH$ z^OKu@`w+?U|KPszH1KoL%Cr9iPN4mNbT|GNx4UlXzwX9AxZQ@2RH^4Z$}azNJ^uI4 zoU^P;KR}y12C5+k5HfkGT~8@#1PRk;U-kcb=6-+tn#3NTu(EtA<3;DG{~zVR{;e}d zvErTkyLxW^H}&{mpE=6MFRA?s`KEC5(N%xI^kaLk+6?L4&0*>7mqWJ4`}>W}!^3lD zRSqM5(E#oqTMG_rtZ?{~!a3*7Ns%13GRSbGuB=HkPiOeNHumN})Z+!Wb-^@JthiD& zKl)pK&(nmLZzmW2!;jyj<>W9}xOGZ~EnM%j)^*5Zx5xjN&Ya`_l`}`N;;|zFgy#Jl ztp8N$=qZ)%-`Y^%<6MLNXU2``xmw7%zgIfF&;2W2ylo+BAt#4#BzeQqmHqyP(1ARe zg^9vip(lX-Lp_tpcfpoF%cX1wkv<GU#r*L-|Pd2*Q>e)oGr0j&rMJq`#nlIx+f$O&gSEkcOw5%+V5 zqUTp2MRRC9v{n!P+5X(0^RHdNLafNk|FjGEU!PoF#3zLOGvoF@SGv+7yRNId51N zcfd8~l}rA9_HSK4cF?6Z)AtvNRZszg;SOfKzilY^|EmiK-sAnYHx~w$*e6A?d+yKw zZK;dGr(HUhUyJgfe^`X{A3Rf5ILU{Pyo%-#trYA{J!770Q)DJsN%)_)dKli=%r*}> zJ~)mPyM1FU6!6H&^|vDYN2qM{u~&;e1bn@wEH!6c>HW8@9yDd)%o)SkTJKJdja;*zZEgFZxnGJPV~fQ#u6ht)<%D2mkJzOXg|9qL6>@ zoVjs6x*R-zzcY8vnIon9n}A_)^1ZUD3FAZ&^LV)h4(3ZDyQ|LO$KGI#%haG>i~k>= zDgVdrK*V`K{6F66ky?xXQsVHtZ?D_!vpB!=OHADSPv71Re_gEeQ=H{%C6N|{sNDGF zdba2X)IUk{qgy6pH0D(vTm=ASJ{LRz^*@){Yp0O>+NY<8!VP8|qPSKbDJCoIe*WU6 zv;E<4qlJ0U10yI69fP()*#*BVFT9frefZyQ_4rHYEPK^s?N0TpKE>so5X0g91{_RezeO=L=!2Mt^WD9!m{s z3#iQumJdE1W%{6-xnvG17#=O^pRHbMeLVZfA(!fBv%`k^LzLQyGQ;dNlXCeb6PbPU zXO^TZEj5=wVaD+ez{5M)AVpVS+f)ZKX`;FK<_rJli_sDrtE>2u zsUb9rpDD|s%K__*aChhw&BEeFr_aZVs%`SlD1avF77@N-ZK9sxi@z3D(`*R*(V9N} zqThWGm<&emCS)f)bD&yj$tJF_SMTiV^M+7DE=N{N7sMW`Un*+CkyIYVu}uXLZYXyb z^?#xv!J!#Uh+r-V>{i!)4*k-)86T-=&$q?i$G9-$`@5VuYtm^xsbsuill&vtC(hGm zA)}cH7UpM6EE3r`ogSlo{zNm;K%p(ZXcaA1$Qi32IC9@P76S0&qsQ*#vJ(l~68jZO zFT=L^`g--Go7rKqR`X2f6hJI6VKQt<6aje@17tb)-04Qpp=9cpCcxRY z4_2u4F})YV!mD-(Z=O33E9LW*IjO_5R%@zI6got`h_31hUst>v`jok--i54%q!O_* z4q23rAa)aBEXc=dUDu&L&G$aINr3y6k%$5i4S)6teR>K2;N)kFHzdsSVmEb2{`ZnY ziHkfFBE{-a7tIT%BYF1gzzUm=h~flqJ^)KJ@Tw1-FN>cczX!w`z!#NeDbFTBinyTV z1K}i4GrM?evrAmH(j$|oSlGT%izv*;xM}dQVz9cW70$*^?0vWnc?ZfQ@3sPy#y*0G3&nLbfN2^!7{7 z8Bzl6&l54KhB=Om3prZs4~TJ21S(ibj}CWrdAy4YAAJ^OxxIcxOnkG9K#~Aj0N`V) zM|h4HL6!??S1?E?u)U#dl9!{*kBLo2ve;_0%f5Kc^{T!a*4xsq?nE_brI5>!NQ@A$ zG@=zrL&I%zTE)x5X{G6Y@LC1ibDM?Jp0jgi?<}Wg)#ihVc=JJ4QD`q*iv6tc#fI6#iP2F zu_Q)^J0J@bM44>CO5sMM7#S3&3m875&@zoAivmnIH<=hALPSAK6C$~K_raWIR3FV( z9YcKSA1LmmzzxbHSl?2}#)XOohC6~~)b-tRn?C)~O3NzSm;hs-{T%qG*wI%9_@q{Pt81pmbwCJ(>wnm3i=Hy1`Y3?|RML2_ z65BpWOWa=qZ$Ws@?Q~mPK!FOhzZ+S0D<+yXj&U&f9u4FG`9)Bi&%>xoi}w+!L%mJ| za_*>|>82hf5)f#(+^NaIObhTSB!FH)_#nG={GtaVP}zaQjDuAz(I!8y6)q{($@+1_3{u6 zw>#Bf1>au!P(6&Dixg=L|L^TXPj_72rZFR5ATt$vY}>!jdf z@%%Y62{cj?_u|+I^XI7g-X5)}lL0!d?3hiEe6e?&NdA?@ROF?kO`j=QF!!B16m}*b z1u4kkdF_ne(+p)&2xqYhXUmZNP;=Ra02R6ep;~r(eFkzB<$mBzpHHM+Zed8FfQbZ1 zu9VKj6&5pgs{<6Q0(GPE5d`nxTjW5u5Aeq!>GKJYER=o<0TQJFF_oehy-l5ugxTa! z9(3u>V0Ex0y4QqacX{=!7?mlGBY=0HBo?Id-eqM|Esl z?5vG!h~hiO#hVPP4)AT-@btj&lXBRs6QW<2;{}#&SIXo)jy8h?^KUoN{i$Xlg?H@) zr6WQ608jymu7Vg4#OmFy14`GR*_MaOBI%Q)7;IbU?_;3SB(O^hz1nBGq#U}_Zgft< zVAPc;i=5M26LC8$3K$HcjQ}hl0CSL*w{j4zlXR6Y5^reJR!D)*+`0cL15&~q{+WY7 zeK#qT78Hd99kzh(5r7vbAR#UE77muUmk6y%(2P`cMGGi}Vm%`12a%v8B5l<}h$$c? zAK-kK1n%0r;_D6Z1t6~Y$E2emjXx13C~zYg6O}}?Z6<Th3p^t-3ykS2a z5P+Px0XD*~-xwmaJqKD^&TyMqN9T=vXBfP36jI~>JwZX6Q81xS=yo}*AjiGa0bW6X z^yTnuN--1>AQTKS7X#gQfHo2!6gjZw7h=^L(n8W{CP22zVSaTC(c>BQcX&Em^bf8; z3rGyp1n7YV{JjIbfLzWniGt1KAi9W8E#%-YSr{5=31ghuF9Hq3b`cXAkR~bEU=FNB z6iVTaW{@7EL|7L9vD^YZC}+qgz_w9Vi!EWtiwrp^D{_wawiM#33v`hP-N(QiwIN$M zuoqqQzEX}GGSFOw%p#Q4djgD%gkf@^A5m6a8jvLt;>j6UIuT;~@zjIXxTJc7u?&o~ zi5LJtnn)~R>E>@!EuM5yFi74~4aml#Lf?FZ)olcNKeqzOP=JCTpdk4e>v+-Z`?0Ex zIK;b6k9WHaWJ++_;bl^69JS_SjjM5n^QyC>&?k={&k8_CiRm7WT>k#1jQJ{B>nyQ1 zR3ph;7vtj8jM0YI{0k#ZU%Fl7s5Z4a7o{art%Dp>w-6}Ey%8%dh)!-OO5s8?xx7kZ zE}|FYkdD%Nd68R72?qOcfiX?PxSie$sArs7IHo}tkGhk>Si~Ijx|^}6;^1}j#n-V7 z880ge<3DM2DZQe3j9R0Jl;tIBIr1Maa`{65eU^^{Kgli;w4>1qZ?8bxTAshDV|#Qp zYn`vm(~-?>E>M%f_@6{V?V3=Cyd462a+vVF0#Bd!YQ*$T$~vUgmslF*g!A8Nr2Riec>47T&w z$W~>;XfAH{&ImSWzX}KtR6|MOJ;ij)rcD<^Gc<6l(NYha96Z~ud_Uz z9IIYqjm=bz-C<4Q#|jqxa)z_DJlCp%!L>JnC?;V|0mtLiyRZ;PL;q`(@fkGxIP5(@ zXWm&i?#7!i?z#x&x~OY)xS+b2%(}S7x`e5^q{F&ck4o2Ta;Dd+2toB3ne|T^>%$mI zyYRdd;Eny?5~lRuXp>BG2YNXp%0n%YkO`vob z7Ja!pLI{49HbI-Ve~UhBYTs23KbdOc%|a|`z*oHgfj;EvG*kI!`f$3_?x@p&r|U2D zp%YIB^JJ?pLrWdI;cV`OP=3TWsqW|3!fOo?fby<@uk345-S>~W!~RYm2KU5d^~8~z zdJ?94l8$-^JiULV4}*I%vU<~k;cLW_n+ZW)@!h9Y!YjtQp9KG=4_`I)6;Jn-9`%*; z^jC`aJe`K$K5D&@(A5>hX7y%G!-sD+eadVenC{0JwSBZ1`W!s8nl-dO-BT0Xua(uGZBuoK8VVC{ z+aST0rQl0a@MZ5SFPnw{r-;<5MBul+r{V}^!*COZp&I4k$YAm1mV)C)+G85Q=`(VqXpzFxL(4@*DN^Q zsbM+8ciKEdk>apbr4fTP=%gI{N7$%*V#gK|u}&IW-|Sw==`m;;{6-wJDuI&|MrywH zP2C)qJ=N=QsXwY|a3Ny+QVHDP=|Dmjd}Z^4?WGUwGvf+Rduxt9ER)8TG4NHXZh6&i z^HYeRM7Z(s2h$n20kkLf+lM7$x54zJ=kbS0am15*2>zoU@XVm!`Z@I(;*PlV4*>k$ ztHX;Nnd#Fr@H2zsA>`?PpOR0>4}S}@ts%49 zlz)%r@T}=x{8RXX@5qO95;pC#H&rKI7Q>gyDITr_u4Kx;WF~Q-_p&*h8;DrXxhQZG zu?={gPp>x))A&x9TEOWS4x>D$#ByQS4&+L4vkhJB<6Jdlv<95J@iGM9h{?wA#YcQE-Y~xb6*S{SMo3 zFyGjOe<4CUI_bl?=tbfXp8<#w0&KMMVgZ5ek};%lbNW?c9{`2OcUVZ3f*DSYZHFN) zt09(&Q+veWA5!BBVkE9xqdDd5-&&?avfvBkCx`+RWIGt~QXGM3fbEqtcnN373+axL z-~&i{CSOFBca+G zfWUp{Ha~u!bo3!h3f_dt{fzm7M?$vwVUIN6wyzK*Z+bkzynslH*MLOyGNhAWqRyl~ zZ+f;{^hqe_36g>0BrcXCax~~l!Vq2J68tJU^J0xf(ZTPJpv%YFdDGeOW;s> zsF^l~6MSrZ zx?Un^cmHfbA;W1m%W8}!T3}p=Jxk#>pWk2#D_`!(Q}kntHM5tOo<1|WBf%gOJWV9@ zk7I4pMH01rZm>o72?noFRst`?a}^j4Hux(>$7+j+S(xeE5Q>6u0-}_z-q6*JFSI(x zA6~gC_rA#7ws5Hus6$t1Wl)^s{-K+LOFDHnMc{&-c$I$EixQP|i5c^hr4vOaP|M|a z=zOx&FM8HXbE49IzQ+RQ;*hG4KGF29ai%YyIN>;7a=7)~)jM@(R#X_`PHbJt*5@C=$73?|qhs~qTS8z{ z9HUUIg$t>K^Q`}NbOQEdeo4X1S6>KXBw^6WE@2@EO0+8dxQsL&3a91?8q*vuy7!EA#uSuJz{#5CXa{;V&#ko7hMyBd-#zvEw zJ2dL?aZcae@jQIRs|z6GBf?^*^%7C|0VZuNf<^kor-FfB;3FE2DXaq~8tYt&j<-HQ zo_RRL!`FGv%xIjSRUOB_46+Lt)ylR=Fj!{cqZQLTb$!BmrO5B(u>f1}fnqehm$-Xm z9yV$xlHJUUUMNogs{S%k55AViDKRkLmgz5fUN2iB;n&J3G40mwI6RnCd%2eT^x>jglTS+ir_b5`h1l!tD&kbjyg?fCz+}slHK+8Tp658ojgwy&;p&8d z=uxyW{Z|&YDQ%jc`kz)K)6C<>x>GPeL?#$9@W()y@fic5%uhVOz=;+ggapt$6qM-aKG??jP^n1D#b>Y#q3v(lhmi=D>K?Tv~sR;4}{~c#k4Z|?(?!6`@|SWFBrL4F^Uo$bA!Cs!b`%b zA0}x)_`D-%P2Yo0IaS2pPSN7U4n#_FRZy}inx{_(JM(`*!?{S$8S5u0Z!<)klZGRs zOF2;ZDkEs;&Dc^)mwBn@o9*iQDR>K` zHq5LPJBvhklLsN3B_4HI>@x{+)@T9QHw9up(4dSSE>P&#&C^Ol^SbVDX<3f3;jA4v zdNBoRSi6-Fv&Kj+*1;*(sSeN6fx@FL+F6TwG!IUmBmC0ZA@A!tz{b4{BE@l1mixW( z6fQJMw9;_hKo1l|RbhYAIg-u!(hUV%+c5#7v4?uxt6i5vt60d%WY)!C&??9cZ|7Ld zzz1*tZC9J+ISI3=W51iCIu=rvtHCuf4sKAYffl2R0cTftlsE z@r)y}nkZKU?H!n$%VE9f8^r+Sn(MU8)HwFrO^{g7>HamADF+ z@7IV^uYIr%Pb;6;WJR#_0>F-O;RwetEv``!U9y^!W}JIi8&j%6v{Z)=!kr`X^>YGF zEl^YEN}ViM8);2JfwCN1dx5tC87*tPo)lyg0e{_zS9_wFfn`B+eMff5CY(n&>Mxo$ z(dkGdmtk%(lpQ^j(bRe2h|TC^xi!pLt|7*Fm%H*e#xwNPcIIsrk7#%c=%N)i84+d# zC!T%ehScZt2>&!Rz8Rxe^6H|EaX$a)!x)eVWwT18oJDzY_^RY=dz^j8V(!^B^9seo2p@g5&la8r?)pp(ej!%|9SmgcQf>*@`I|TPE@*Kpx68;vBxJ}AC z&C{sIo$@u=f11WqM$P-l;~%}D)9BOWO+9Nf7er8k1n)6MPuyuFuIJ^;p>>6r#Gfe$ zjm7qU-_mdVJH&(_?UmElbmP<>FfuqQd^vqMU8%a1l6>yYW9KhKJ@w7j_5ho!o!Mh} zRX}DzP&GA=w|tpW7BtK^jiz(I2P8w+lpNYYb86e$S0yWYAwbGs@E2iA^JHW>vU-sx zd-}nX;i@Fx4m5YmK1e3)Ic%J8*_rzbhu+>+Hq~QHzOX=%LFu-mvp1GQw3DbXU9p~$ z!74i6_{RF_x39NeE%M}~RHS_=*&qja_s;!-^ERjCJ_%u96CFy5v*z^VJ**a3V6z`= zfAMzf!Q?eLrZ<5%I8MB{_VNaotOC2tX?$X?9PxPB`ShGi@*SU!9OX~n@3>w1BLQ!- zeAZ-A?Q8gtTR$>0-9oDSV8)x>B~nWV%?j_<2De`JM4sB}>AuJLiYtIcB~Oh0PBc1T zp8DybGq-N6a;0NJdVM3uph&k;SgCMaK_riP!M)j^&3j*TUo5N`+`Y*0-LGleRxr{8 z(g_>h3oLi$xox7?RXUZF7{~1*)KUIX^^s?)LOjnX7AKwdd=#s|uod(waGw3$y$^5H zJkKiU>%%#NCMITg*Xs`K&r19%C?>!B;gpW=p-XdQ%snO4ED2V;agHB8HT!EAe}CtN z`tb$bNvDa8gS(aj$>n*3D1I9EUWFUMh5pxG&c3{VF#hiT?wh&YN%gl;t)6!o5cb>j z3r*A7`RJX-IWigC0$|ZlGkyC)AND=(T?MzAPrv$$oVQd_Ep%xu^uU&VZt>1FH5O_l zRmHn4b3O>L70J@dD5&{SpgHA}hTnDzlS?a`e=B>G+V@8FBlDKZDizwtZ+XUAPc5~c z-f86pwxL+s_ypVdW!nU_+XOAzgk0Lr__qm1wTYy)i6*oKl!GDL%`DJ&oJL4r4!jQ% zFUit=Ua(zSwp~WMUDl#q&ZV6!@85nQs$C(iT`|91sk&Xcqg`dJU3IBltpn|=py@xV z#m#a7%}|Bb?$EaA&~fR|_3zM&>d;T?Fv#z?SlwaR(P1>!acQZ;c&Ebz*ok4$!Bndp z7q)6>zwsGGtU7dB`gdB2cUq-&TIY9Ot?sEx6^44>~i?3Be9cF(XZmD z-Q{A@&O_umJWJ=63f=0Yu+>=41KHkG?cOvC18Z4btu&q0 zRs4OV!FB}xS6mWJO3%Zw-lt2w&vts<{q@rmbgmqM0|~TDnFLRbnp;P`Fa7&YdU~^h z`_f%57G?E$9jUPv>!gn2Yn(6C1~u}wYuO8SrS9M>EIMCncOk_LYyA6@p>pUicxC6V zjXeCh>dw_w9L$FgoAUnN#5ECB*QUe$RAMah?&-r+b>qz;cJ9dncbIyvol)XMdqh;c%cvR(7?g!BYFu z_<#~5b#S`x9Qg`#s8#$Dn&J7Zpk78oZ$LuQeJh=pP~GGP!{=!_nDu@)x(e*3;T%Q( z$H?1#83^t{Y>gox%0tMjMuh3EfDSET^IE9jFwKb3HI$b3>|>P z5Z~^{QJot+ZvdBu9|NTsZV&fsoBAXeq{@K3GH~`%(e74wFO-2J^x{@#X9`Pcz#>5( zNn?a9auUIhEy;x>E?p=aj?lfV-8*zbc*CWlbG9jcWr%B<*V=weGK!|0a`##>fC-U|U9cS+- z1Mfs<>f{iLtBCm!iYXbT*IQ12I}oB`*FjhU&=G0!SX-AtS@-G=I7lBycbD(HLxg!x zcx?-(t81sp0#KwUT4Wz$x{CMcq1}FfH*LeQjFcGCg!zeByf}}y-NfA^(E1_e$gWmk zrc(^Y$VZUD^D^#H5*VY*L-0)kIE0jOzZ@U(sVF3_lZ7ul;ul_o7!e8xQ#y6Z4T%e# z#A($4O($g)zNDAY!KE|U+=)2(RJ`ps+H)97ACWP!Mp`83l9!4hmlVrc{l}WF(h6T_ zS?O8%0wrE4&;?C`6zihVE%@=#F`IXFwHD9aumJtXd13Nr?ftcn8r z`9`rkHVfu43Js$c*$2C!!u3&LF=PRSWBe!tl_f^lAfrXfBXq;6bg3u{;ebpI&{ln% z0g*Z}CK`c^wk%JujNv?oie$dp6P{&c{tL`UkuyouO&X4Ro0pd`jQ0FAlx1CpJ=9{G zk&Xl^=^Sc5%oB;tXv3WF#2#vqa-h8x&~cIm0|1dtV}SN8tfsxx98A<^F+jU=YUwcQ zyCk4=54H6%zK0m0pFu%6qjh4aRW?l`mTF*Uk|nS>;`<2O$y{AhQ~*mdM#0iiBNDA2 zeHRt!sgblgS+F*rflSu-2@d#;0xrLa=vdnhPH;?!95Ya4l+WXk^JXRV~Dg|`{2vr5to=AI`x3iQaF`; zFo};Q1WD(ZL1zy-<(No&`PUig7CMR5SaXpKd2B+UK1jvtTnK?iDGv11do=j#KoB-k zoCLz4XtL{oM0e0xeTqXH1%O+0?1RZ7L|QvTTCu=zO9lKVMjVJ5q?#ixO>zG?!0HCH z(pXTWciO=8^3tgR!5A75qF|#>xOq#01c#7ed4zrrm19gPh2|6^3Mp=aM2KbrT~TPv zDYI3a$UYvk4>xO}aa@hCv0~)S9kW`c#!S+v--xuxu(nCTSxlx!5|%#4GMOw;JD%f= z7_*S(I3*H@U*@>3hkboJcglrGEkSWVkzhqEtq}*EL=P3Gcac5`xU3MxOacW{P*r4v z8lqFS_G%Ik5>zPul5;ur7|KMki@46HQPTU zsyUxAm>;^j{we%}As|_vBGQJHWIg=^bd=saL!(N#Zlf7vj*6P71U4iB^`tqy? zV8;?0JB@iQYaqHeIw&SG02PT@#|O1UnsXpzQC@LhAKUaqSoMI!P?vqAR<}?OpdOePeRXuns5=L11ENFy6}^_fPZB1Ith} zdHZC&Uq}3tNWa<&DAv5p|p8yn?DaY4r)jE|KCy0z@p9HA_fFc@^P72`$VG$C$k?0K2?)OOfoCq=+ zz-nI(RBQ%oiO?#RM@eKvnO}(t*I4@$3p6Boa25JGcmwT)Y39#>m{ujp(}>pUCQb7c z`EqL092}x2(m({~!a*^EXfU2TPiv{AC2`^!{x}hjkk8<@$qcx3PRHY>Ve-hbN7w|r5@Z@`nYH(+KabbZgE(+Q|e`RS)@MBGA7!+!rWOOY>$n$$Y66M&P!z$ z%WvXsVnD&qX-$zItOvl(Ens&f7@%;}APf$b!kw?j1t>(@WZ*nvvdAv_cpD-<04o`g zGv?#~Hk$-_i`cx|1G|x;?@v|*Bf+k&xPZEW*t8JA_}3n&=#R;u=WaL`BCYEsMrVa+ zCxv{=&1kn6u&X}Eu@i3*_R1|#&J-1`J4s{qK2l$u&W!`<2%z)M4-WUx9paVo9Xz?D zES#7o<=n?+d0~FW$ej{U5!S?fZ{EwP8-mf5$V&HCY^ z!hYB4LkF~%5AX>4A-`OwUo5nJi|=d;HhW$4#|1wWUwxDG^^M8gh2VEqKb<<)+0_CM zc6@GS-p*73?0mQFUm5<^QzQS7ll$`-OYLOE44(+hieGe#n5El(1a{W z>Auv<+wNUPHS5lRTrT@Zu@~~+_2yr=(lvec$BhYLLyr$ehqB+N1w^y+Z;p-hb?yIn z7+`yw*L5!Elfu<~ldLiqRAQ#vr5PWWnX4gsYGR|F>kA#~p(pxTGOG*ir;^hLtd);S zJW>{Ay1w3Tn&(^T?q2ueRs~S7DBI1F%SqA^u+LY{cZxW}ofvcX?9}$dIyiBM7TD*} zT;FA;@18#Wa~3aPXEl#I2v2*WzOQ1L8!d8!-5Gc0eT-8K=c9}#_XU_%=9Bf@3!OuC zZj3u7p!)n-Qq>n?@^E@HLQ6sA_25tV#akJ9sf*#OLO8N0m%)QHQ8WF8*dkkw7XR2U`|@cQv`1=&5t_MpA5$L_;XN zNW5sR;c(Sw<4llv4)v$hTPZP*&q~@YRrW}>42U(lw}3LMi(BchU)~7&$n?s#29mi{ z_Jrx$&6So^yMeNo+(8LEHoHpV;!eDOp%06H)R6t%8>I)%_p8VZ%HhRV`{lm;rVkIH z*yuC0Na(H}!6waWgFdxl*UtuBk?6ZBvgUyff zdDBn@(x+;zXI5oKH<}e!o(7#Lu0D@fQ(AkGd0%P0=ykKwm!i3CrLPtJYRcbgrtT|$ zum94lyz%z%M0vAy1^2ezN`R8kgGP!68{4KvVbB1GsKi!Gxk_ zE^IkG|JCmJ8VV>N()xsI{qjyGidLpjGxaj^F82|N4!v3mx5Gr8QQ?D}TSidFeGL;0 z=7TyuZx39Rza_G253%lehD-u0}1$Y)kx)tA7Bn324UbPCl zRew|@-#-#S(TMhFGWin56uMut74+yxSEeKd3knK|_8OQ~K6sRnsmdgpZs=Q?`s_$h z1TETU`oK43hYks#rUvl+0)ij_06-iCV5Is<)%b6v3Ry_$o$Fulp=uQL!}A zg?Tje>CM-R?yeTE1G}EAGg?PnmNBqH&A%$~z4}$htfudhvZoE-T6>A6Q)%XWJ-EW` zks?6*Y*{2~JkC>d3%R%6>|OGTp!j(}>7n#an4f7AF!{sx3kz&%QWmULMV`7F>pQ6q z{SX>}GIuhokKx3Sj+y#?HMFHgIOwL`BhGH|szHU7;_V@oy|3HD8vkvAly^KSTO!48 zMsdX^>sT`iPV9T)7E1T3o6=vb$!b9`iTx*h#U{$UidQOuc@ZkL0&l*TTp1`nL zopgKnQeM14xRXxDDwFgL$#Vn9kF0O#IQlrXMf#}2fIk;?A(}?fjgAjny?gY24OAqD zLGw{ygB~reAA}gAe17)c9$lp$DTIW4L17BlarMW8jDh?!7kYb*@BK*40j8=>v-M38 zD%0N3)BRV80#HKkR@6pR|4xuMuRED3?{YlO=>MVXJ-m{P|G$3(0RdXVf*VI_Wrb#`O-*xUg_~@lR$4YFHEr8gEBW#HeLv?u_qp$L z{{fuCxenLG`+B{ekLM%S7GUgU0E$eBwcDrnzwoxy_cEw*@BO3y0DmW;f>-_xcgi0c|>iweqjf9WhvqD3Hq6kt82GD%Tiq*U2|xY7wq7jA0Pks5p`vE-txD3r$q$g zwhWF@+^}4Ol??8Cth47{_m>x=d_$kpzL}q=vYAj8Sn~MlLiU>cf<)!r?aW(tm zFQ;D(ANw!lp1j5>VEnzS*m&uXrc+4i)a}rk+LCpfeRJA#M{H*w+Dp4_l%1E; zzCW~EM#cDMuhz#XVR~rlC)_R+G`;>0$XicNkV7h(j6L6b$EXDbDm1+Hqq@kj+Mfq8 zsbp^|#x!(Pj2V{?sTH_1x~CLcrPvPMF)harz)eyda}0n3fRF}Kp|8tgX(;9f8U}`x<#dMMZ9J2$60`9r>45gG|Kq&(SEHoe;bXU?d0Ak~qPG;&<0;_N*1N5Ccc*FNN&Mj61e| z?}0G$@Aqu8YQEl2eA{=--TfV_>>*M5*9JfW?fyPa{V(L6=C_xfJVFfEmQ(%+K-Go- z0#Ywuf4q%r@n6Wj`ax&G`g?*mt*v4=^bza_t9JjkA) z!21?Eg8UWa=F#K5%0_KN`5^~Z=41OWODWIw|fp>{(cvGS^fL*DCB=V zq6Q!M{=XZAeoP&d{##zSDqZ{g`-=>)R1yH7R3T7niJ{OD?xZFnD%XPmpJ@X5n}JGk zzDvwkQTYy!UaP1?FR}QV5R!QY|B!5*^$w#?7LiI*&Bglg?5LnvJU^`#slO2Unjrs; ztaWshjq}x~NZC}RUZiuBUwC zwr8)))~U?td~1%DIrPwTjpN1k=$ONc$%u8&{B`(`=5!+#$y3OoqFsGlS~yLlcVwcH zY}BAmcsE3ewk|aN5p79|cF$}aw7Vt$hBKj$$g5Q=C*Hf~5@gCx#Y1#2{XG|HpsAIx zM$!2tQgW$kb|!3&*&y)GS5R(HS$APjr-?e^^!BStcAdd`=4Pn#XW8^m0Meme8?uBM zNs;LSiuSVqDB%%q#N9f%oaXG|@JO!g5VJvJ6~lFUlHiqTkf7Es^dh{J`_CFtu!J!I zJZUR^I(>FydAFyNqqmA5&rtAFiAI>LFa5&@>i+D8ZhcWdo&uomxy8e5yDP^yTot3U z?lHzI$`O$c0O))dbFGMZWru*mmQMnx>s&u6J58+po49X8R!Dtq!*>H>kXP8LF(tp) zv#fdgUY!GuDt>qaP3iQo0g;3-ENpPNPxY)QOo8Qne4}I0$F(*{w#;2j&>iNnjfHUq zs!6lEWF{P3ep?;JJ*Ez9y4MM?CBMPeaHEtL;NV(V8lQHyWx18Ci`QodN@Z@$%l%$i z@AJqk^0?_Hb1&4|WbyvL6qTmwe6PFXO3A{r=v6UU*OCOvC}e3a5&718-jgdHc9{6PF@cMVq-KMiV+8&*K}JC&+Y zUds=6kNO;z;{+4yHLAsAqYh#zhGzip(DHITQ4ZeDAfs!Dtka*z!G3(QhV=oQ`X*VU za0gR_Deu1DnLNSk;~=H=IS*A002}g z9AK?5yC+EmQE!$gWV<)OlSLz{Ia&Uv(E%mFi;%jr$gs__F5^K4bAycXI9$boe^|Y0 z+kphT31`*9^*}a%o2hri6m*dQqSGMe?5F3!t*61J0wjl=g;L(hmos6j?)9$%DF^1u zh?!(XuR5Ue1m0cUpACr;^lPNnrr=5=!Dav=q;HXR&h$|}P4DD7Ic=|v%>qumSPmAu z=&57=BHsuft-JdXPw~!I#CGuojT?N*A^A$B1LgV~lBPMXms;U_cp^2HDnxycv4Jyy zxKTn&i5dkmV*T~6#!@|-=924fpEghtNU0Fp8WS(TJz4uCzFlF4f@D6M)%hVFG;P*X z*)Ebpam8M!Cyiy!3?^+i5A0es4)OABcvvZ`Hf{hE9!(3V30*kv$19k&TsDBc!Fy~} zktQ9`yRRP0K>?^J@mB^t4R90|zSLe+0qB zZ&5$!$}(zZr!Yb)fyYV|S_FvpHws%xd3%}=4Sc9(MtG?>LLf+6knC=2BTf?)ssXHH z=?YJgaIPLK=rMSF3DF>i@~jnOBb8RgkR&3cMX1;!4CPNjZuW!2YLx*?a_{-D)x(GU zMc@huAdRn`6d6)3hRkwz*3mJ`LdAUkPVWh&y<`N9q5MP7oAy}c8yyxVj+m3EEFRNw zIF|cFIso2pkU0_wHlBuMPAL6xhaK_X1K@*uTDNVU4sIYOery1*^5H20#8XN7N1%!n zkT2Ea-C3txiv$PjLC+W?hxL>{?+AWD1Q!9o&lr%TNbuePML=X`>=MH88={Q^DW%Kb z!ovOetTAzHN~F?ny`8t_*O?kA0g%O?#gG&t7$AW*(GffKU~1D4QgqU8WXY{o_{|OA zrwmA?1bPFo^)f`0U90lgljh$F7r%v-0AP#p;9D~KM!erbsMsI`CyAlAh~PT9!Yl(4 z4NPkjD@jI~JAS1GL@FNYD)vVz+fG1s>Oqe(=zT)4^LC{ip;7=+F{l+DER`rY6hOuR zuu6f-PP%e=sg7VvW=Rp9hMwb1wL(aFV$gkgACxQPHD>VqxZpna} zR`>(}V4NQhkifqfDJu+E{2EaDG)nVi`~PY+8W0pV@L^y0aHS{Ze`?{cjFj7jiUNM* z7a@G50WnU5wfL+2)6l$K1rH|fX&`cL5mm+`l_msApM@4}NYY7fTUqjWR+v#Qfh&_U za|+O#x08-*!k-Gw29V0n-@xz1Ded=y&GVI!*N@#t?pcvy^>gEuWSq|uRKlVr6YxS;F667SF!Vhb0y40+uVk;KN$5g`f0PW?Q4`TFU_bbyE_VT|914=%Gl4 zUE%M3sR)qaLydg+3SUPS-d#i@M1ujzM#$MJrFt*`KBpzNMX+#)-$)X)-dC5SzReg_ zbv)bob&!;Z@UlYzu9vu0B9ecqWYuqxVi7vm)v1m-A=innp_=a)2mw9tr{wI4MCFHO zFyN=k8r?(mTI&xn_`P7`Z)C{lR(Kmx`HP+j_?yiK0V2i`^_!0fX;cYFx0FUU&D5gI zVg3(QLmuGIAA$J~&jo2FQx-a!R>2YPrF6eZRe$&KW~$s)d1I9ejfk_4)pv0;V~r7S zhZ;hLNmoedZ&>s$uuIyb6gbJ(WG*QG1d{gSLP+`!i!{m$h4t`9yLz5&vuX@>n!9j& zGsP0+i8-<{z>yl9=6Un|#gY>j^WR^%ALO@>vmsgYVu_Zg$&ZU1Bjif!rKit)L#}%Q z=Ywwd`t-?D9oU|jAY^o`J2lATS?^{44$52iEAO?gTsz|I`$);a*6;9Bm;GtYv24$s z3&;;J^1-Nv3I`QqPOA!B^S!tg;nbEw3PNSIX`F1+y3vN7Y18@Brnm8$fzvgkUDq~c zUBjHbw)w_2^OY*Qv~Ln3ZNY&n8< z7dbqkSvS7UYTbFZY8Q0|r#XoQzFr>_r}1#E)AJ(YkJ|Ya0iu}V@+p#J@WTa2@`ChZ zqJ4D!EZJn~ce&eWM8P``!n+^nYn&hNh~KqtkB==Fr$NP`{tRfc{$Q&>Hnj4MwSP3u z@9%Nfzj5^>^6_i5dma`uyM9>KnWws8n~z3J9y*$|A+fwGWkxe185ysNo%~A8(7z$C zk83LGV2`67D4?H{ddP6X0W+6R(g4yGJ!B~zUYyk(&1VW4Ya&>^@xRj1) z5=8KAZV1OwlSJ6C9_$|hNkajnnq1niF{1Jr3Q5%=sgz{csXqq6d>P*M+Ug zQ)lA=bj1LMVop!HzV*mHX6@C-xLZQK8M?<~Ifc&aD*pc4?+Z3QO+y^1QkMoOm55=< z{F_dR{W_{WQX<4cDn@-Ls<>V^VCpNIpV<9|h+0|Foe_g)`LHZKqzvX$>boxWkF8_u ziERyF;*|Yn`+E0OkE|}lHQ%^o}1Nboy zk;#B?83>vLULC1;S)yS71iX_7Av2WQ#9;lyX)+6WsiZ0vYxd;4jOf)UrOVjQ`_pfV zFaNoB^xsWzp5`Y>#tSj{ky?gxC%p~^*!pB(VkvomuO$#G0Q_nG48+X}&Nvb*B^u^n;lmQBEUKSoA!Mw{JTYP= zGBzE#kb5mkDa?QO{iS4)$L5^?SZXVLSPU8Yhj^n7e|3seDK_pZ4;IDenEHT8Ep?P9~UFkneCcI}AIa{vzO`a(l&L1x?sqZdu(@oS>D{f{j=aBUTv`y5*uEBE%n? zIhA5$@f@;>y;Uk!(!6)94G9}*EpEdqj`8KM@G<+PpL;7wsJSJVdwls@e5jPJcnSzR zxTr8LIUpdKwQ(WQr(x_A#S*%LVS~=y#n|1|^;J5GBUt4cBBYT3#Z4&OHqp4z3jJ*W zEhHjt%xEU9y>=)@y6Yo!4=a~8DV@(4A0Orlh{`*c_67(nRx@9>h#}0^n}(6kD~~>? z+ov?Z=j694kNh+;$#J=lRkWrn92GoMl#?Ag3@e3)R`ozf1@{|;;D7dthjL)6Se4V~ zV&pa8CISQ*02_}iFBQHn6g)rrNwxNMa_>0g>J`NFHMliW`Kt!F+*N7V-zXRWJIY7w z7*VnnGHN8yVKKtnRWs@c;^te0WPc^0RQ(I~xO^QzA-nXIw$k1@>?DoPfj@wg8W6gp z)!*h7-nAL@5D&#G8kQgxQ^X2kVx{s{WiN)%QlOK1q4Ns-Bj^(Hv8tl**QUY9H~!WW z)n+iq^Wa4>xSH{5a!IZTtN8JG^7|V3DFEy%6*3Dr8r}+*@j?Q6<Dufl^Jj%CCW+ceU5OSkkL#QpyZh z8E=hvDp782K#a*iDS^^zq*5a>Tp`?QUJusSiufn)Ii`Akj$vrIsy887Z4|=aFn0OW zC^vi9-ryVbyn^7q=}tvj4NF@QQ&^Q1!I|H5<%(Q{biY+k>*ShX(*#3BC^KI3wMQg{ z2D3j8obF&J!vdVQBOhA;lJ}i)%l`fC-;6N~4M=N<{x`G1Y{$jqwa>5rjG9+r0a97O z{r9#Ln5eZiMbNOSa7(qt?ptilz_-39?2=v%9S>aaJM9wU3EE;4F`DZkH|La*Ht&`r z1$^|maM0MbA?O%T*!@j#`|O{-qu`BC_TF#wKj*qT;hXVPuJ_EL=U$H%#ck=IMv89) zU3^)cIPUmKwEm3Mo`r8GoWpGo1Y8H4_?Gkz6*H3^WfAdf_0hHXRvR-XkIg^zB*G-` z58!Z=X>j#Q_vd+7dduS**QH6XMo#T=cn~$X?+vK5!}`%!kQw5q7uq5yd-UCgFTGl+ z3$pI@hTZShzjD18G^@7o()shRvnz~UUI%Ty{OZ1X-{ETbn&}S7+|~!DB3zxn&c1x; zwxDwHP5#&=;g|C#OV2%E1F!Uc?LD%uSyBoswfwp>aH;oW>{&Axgqu9hUDeB|&3)ar z9|_lA+`6Dhg0{_?+o1L~ws~$mIE0gtJab<+X5b1>F`Te&VjGX+xX%}joR;N-?p{cYBv?zzSUtj`TJJFLSwt1(|FN$ zKbPNg?J~2QysbY8YTV&ZL3r3o13c8@Is&|OIkwxqP0n>}_puu8u*|fdw+-Cp2DS?d z@G`z06u8a9ZpV(0xa&JYA~<%zVSCSA58icf*e+!E;rVpWbg`V?>4;hHrt_)6`%Io5 zdQ$*>nl?dbLZ^vUJD*n1MYV)}IPJ1fm-cMjzA5@loQ-x$@QLcMcsYEhHefNqdw2Rw zK+{b0v0-(S#INbUjcK>zOv7TwE1R?rJ`S^=j(;50HFIn&$3Beq5Lf%AKzoA*AoCuW z_@>n67XJC3Q|3)`$41IG0N9VCGEU`}og3B8ejmUMufFU3t1c@DZofOt==|@n%#U)! zxn~nkdo0qQ%L%ocPR3`Pt2lUwE8Us>rpIfVTk_=Eo~8#0mO2@4>JObxc^O4Ws(wux z)ovT_*?T7U*H`SfAVz07a+hnNYJqo0v{d)U^v2)OCIbiZtimMiP=bNJvP8tvv66q~@*I5Y zvmHz4)%I`|_0h`IMV3~nzs|y=Ti4{_+;6>ljG0>3z3LKCty=OWMG zhN4uGsb}+A^gx7YQb~&Ktkzv0h~3iblB4cGEAWJsO~YJ@&u;vI z4^DcPhuF+ut_$w=A{5F2GHkzTKjn`&zZ@@47_#1Yuht9Kz)&IZf#`3dQTrz$uGmu) z9V4QQ<yLS5 z$r`ihUjQzy+rf`MeRjP>z{QH9%C_cFw8jRxwzXf&g43eVzr<1Q-#L|O;#sYocsZ*j z{nCnmvud(n9if5`bL27CZSw`%J;9Y`F_`jc{!o;Ay=-#VpxlH9;(P7H33Ym~Z_{3u zu1LjVdNi<&3Ndj{W`>LJms0n6np=_z!_xBLU3%bk%|wVLJqit21Ogglg*;*js$7p` zZa^x;(DY&NGmJG0Un}Q?zEN9V9I%kh{x)MNDiab9BjM{{!VnX(yLA8;H(Gf}Y^d0v zXCSp%6mY1^K$yi-u<7y`+$)p>X~26xWNjZ9V!ztNB3a!$8F4W0&hB73$ufT2)0QrW zYFGxCqDf#3BU&R?riUvm2T9&gR9Yl#UB7w-FUEjwO(JUpUSHW75UD0@i7ue}gEkIO8{d9w<9eFE3ENF`HJ<2q6yi$R8?hb_d(c- zEWP=rAMC&)E6g-k_qMv1T6PS;de@JdV#_)49VFeU_Ea0cWJT+4CVZ7o!5F9(`Y;Am z>s#Fov!fKeWCR&m*n+9*SKM4jR=Bk0g`0l{1EBlWSLj|SPqk53(X={E$aO+)dbRS> zNc)#;rkLGUM5O~arkrA9sU%=Ps2mDF9afx^l=`?g7`E^SN!ydzH2l1LCS$)*v?`pO zXn3Lq>0xQ>3yEk{1$>t^4At$7Hco!6R!iz-DDRBUYm zMyotAK_=3B@^i2%M-E}F0lGVOUseNvj7^q5vO8oubiGinaGh}D0~*HD_8+#WErqO7 ziv*d5x+=;RiV})_zM)Lm7{nO3mA^zW`ep&!{_(YLHT|1uuU?_KxDQR6_T0QlABu1? zIx(kV-?qMK9c%ooavu_6LRE#U+cF_p(-*y3PnYBp^*0nARp@p|;6UC2b)-DzF~aL2 zJW)>B1P@*>j^vd05>;#^z|I@QuHkReKc0=thcOa`zl2?+%?D4r>*V)yXbNYQCusea zRWDNl@B@fU9@y;%t^gBi0IlZ%HkM9l1~**9k*IN1ikP7p=X`j~lvG#_ zo?|cMZs0MgL`!MzSzvAT5BM<<|!9oHg zj@Bo^F(Pi19w%M|iK>PA8EDPuHO!oVWVc#J5r-qm&>(cdZrad(e`u5t8Y2S7@bkTV zJA#mqedX%=TPjAragwRcKM9;5OnxRZKeRYMWeI$6dBh_qKfV}3=YuwU*Uc8n1dFgp zBsY)~jdwR-Q$hJ}wC@}eFDz28vX;`h?`WP`rn=~@kjs^FMFqnfT!9i@IGKr{dK2CnJ4 z8zhZG3ERGzpD6U+c*OhUdFtKL?z@HWYGX1VJb7Q6+@f(X;qt{xwFkY8;|TX(xQh!e z!247+zMG#oWGV(5*BnT&$kNn^>#4c;S3~aowKpAVkL1T^1hVV>AXSfxNK!l;RVVMV z_5M)#296>`dz=y`*3wp8c>X}sqxxul02(}@XQ8USe!{?R`)2(K!yOaGc4~4j0yc3b zF#q^Q$0jykpD-JqFn>H@F+XAXbHWNdiCsU5GoG}zo3!zmwB0c&wTqjyPoH$)OyZAC z63$IJUY~Rto^&4GF4J1M{6xlx3a03aq;mz9?-a?WRDqd_l(?$C$RImX5Tf9boke~u zZRlhxY(1&)JwSz&q=F|PH$*AAK8E(lmFSOqKdpVV9*5XIKUu0#5$d7xR8%^*TzWhs zXww~~kR(_RujHy^$KYI{?pIiUT1iefPvt4{s=|}@#loefy5_{fhQ-N`)Uq6;@@J&V zn@EJ-yTVnx$}PUqXk_VGJq0Nqp@|D5fr9{|`~#5%FL{a+Sj2rg?23l+`V}ZyyRc^k z_Far_!QRUw?#TWZw6avOE2q2{3){0psS%*edl9^ZK}zqpPR|QV!{=2KJ#4n$hdyvF zj5pqKRqXw5A3QJ}_7o6Yo>cNlY{mUKJthpfoKafuuX;)^O!+HJxU70MvS5b2V{|!8 zxH#1!Eb9?ZTRy&%&Cho<&yS}H`49V zCDhRLNnoVL;H8G>R(4W%h~QYEb&zuNGB@16A?F_V{SEuhZp6NlCn4!YIZ0LlSZ*$W zlM@R&UB2d6k<&k4OwHNEGBZWP~&cp!gphxuX2It>LGzWk%glBAuN}#SEr# zQzG*XpXDd}pUPrTBmiy(rZ54??bMhax~Vjxt&p>HC6gcgF_4-qx+9~f5+yU~7;fqc zG+iUI7%8*m610{u56?2aCDxb0rSZ$xvKAq|Kt?(sGN&0jDg^m7ceQS}2QWfBx1UPo zLox-DL#^BJiSWebjW#0+(mf?=#d=^x8aR!g7qmo)-~l74z$iiF%XGQTdV)Y?du1V; zX#*{$vt4EQ&?3|t0N%DgA4B87!{z-X^1A54ecFLZErT>shgXrjXH|ivppdeQZAmrU zcSBwaDMRD(RX&=10y5T{6>8a*5bfD1Jf@|FX@mr5Rt%Pmf#X`4m~IPy8km4Y7?9!( z#uc;mSRT_oS%TZH0?1V0g>cD*BSpZ;-uzvqz-;j)OX{8}>f7Ytw>!?MX8(ldU>v=Q z!1jR`qiJkQI(t6@C?lqln=Q0xzSc50WRY79;xzDCHoh-;OW@5sAlDaYDFPnUyJ*xL zba5X?8kCVYQ^*b%fzCLYMbxrF6~OEfh`&G%zyl?$65L)=5|tV22X!m;ufWYHKR)H)-=atU&_m3d$hYN-ddMS}e?jdM8$DI#w0 zG~xKxN#APFCK1cGqJSk~x=0p;G1vD`yE)U`2%^4-Qc(P|g8sCof>~iG^{NqoW9gs& zD*9p&Pj)MDTzTx`C(sBz&ITH*TR$wtGro?uB^S?BLUNAQavwS|gT%nd#MYotHkBvu zkH6|7PfIHVSqmh2kslwuEuZ=a&ElI`5F31I*`Y*G91q+%CIk7n6g*gJ!Osuk$#_Ii z0Fs%q%(b5e_q=9P`7Gq2!t6jOdgz)x5Bzo=$9s__1G8S9i1ZR9?GZ4eyXC#`G7Ycn z<>DR7r!yMM4i$6b|3GEP%ky@5zr{hWe{e(SBNorM_b$|oM*MdSqA398Qo#Tu*m=uG z-HtDo*aNn;V1FJvYI)I{FXvCo^AWLJF@-nZEBrR#92LK}v4F$?A_y|Ti3$$t+ts?o zFc(h=SY#eQKsd4A(nBCgp~(jb2^gaNf>~h@gBh;CK^Ey*@bZH~dwn!6Q;DCOjX3Ih ztW!}4ROd{M5Nd{jU?iLa_>SP2p1@l6d^+2^l`XZHVHv&WR^DY=@4x-J_1pdFa+U^H ztrHl-`1I}6CrZY??Gk1XCgEHKD6CN44KH7v&Anms#yson-`@N^FTGac35g#-smMO( z$iZO$3*$hBD;~V5R(?B=y$--hTp~r_@!N?FmI4-QsWlg1O%dFh9XWVX1GczJUSGt_ z;BmqvY|1p`vWvVQK!$Tc<7H-J0WeK;EoTncob-Z*=Y(PHrq`f9KF2kQu4eF$vV5Z1EMbi z&1`AtJ`3^!^aKf*_RAkz-ZNSFC@Jce;@}V$(+rK!XnARUk*4<36EBZ1WY-vi()SUz zOW4PRUyhZerr$3=-}=Z?08FoD{h94|j()01yzDN-nG%cyQEW{^PEkJv5Hn&gO(= z-|jGut#abvyUg&eu1lK1Rskou%@VzpSQA552kKF^A%= zGtH3}zc4fT_|lX$(fjWP#N))>{L7+wn_mZ?oeKFT*~@?L#8h9cb-pCse(G7*7ac%;6ZOTP!&a}|l6#_+?|BuXZZ`a>`u6F=Z!3wA z30-HIxQu-x9V+~z1rqx{ZH+FGLw)~)V1%6qtbOv>7i1IPSVJmu-E!pJ+q<5XZ*L_2 zvimrF3c(r)SzUa2cS|Y=J9fO~c20j>%+cL_-Cu{tln<|Qw;g_;+i3OSN#C>7p^iVn z>Pas;Xoo&*`G-5#X%=?t;g%ebME=6N?>r@G!2UTDPc8zw2y@MSR@MzIVq$V`x*mp&L{5-)7WRXgEGSSunFQwX2wXVCrOr z;Wg2#YO_v-H;1G%=epDx@4!vFv+Fov(M2BTt4{|QZZ|!XR#1?jeLT?MdK{bh;FlpI z3D~^8dZ%lq%$T{kx7ihdwNV0$Pz$S0cN=##N9u3NG(CUn$ZBI^oldo33#Xr;k;`}* z{I02+^JMd-wlT*K5pMu|-|fqbfi12jo4h|1*8`o*+p-mRnP21eYc`+1sNdh*>3Da;w$58jxK9Z)pu!wxDt{lyNc`uJjd*X_zqzCD-Fha1(-`im3k7dczs zG5#M^r!VD>^h)$|6oB@^MuzIlWZOI-{12-0*G5c&yV#C_jRdu zPyP>7C+=j9{j-FNH|=MVZv6WnROk7e^Y0Yew+=(Z|BdS0!q1jCt>Nd&eOw9i$95eh zysheLU;onU-3yif6V2P_1I&PGMJs!g z(F=L2VA8~$7_ACxPiuRP!PvA}_J2^FRMD-p@FYgNPyKMPMsLQDp;pCqStPN3D7KG| z{OV)^?f!3f#8MaWR=s*xx#k}ru^rOBA!i##}0~ZYI_H-C%UhXcx{v zF(Jr68`l|M1x&pA(tuf(BI;lunFhZuh2BoTWT^cH>1kxpuXLa;M*F4EcnQe6chhcA zgX;UnNGvRfS2|lejO04=3lRQGaww^uhxuBvNA@Er1zji1cUc-2rHg)Qmt=FD7RQzS z+?nehb$c0wG7;&*vzoJ#w{Gsqu$)JRR~n`{JDV;zC5^C95+c;3Lp9{)<5`^#8QgHh z`><^BEc1t~^JfZEm?Tr92+neW&}Xu?1d0v|e9Bp*4@;hlQEzL8?w-P_#4W~bx96aLW$7iV* zN#te2dqpn>6aAZ?pAlGI$OD$)kH|%P17b>~{>SzVg{Jw5chkFrE%I%}LbkssQf*=yS^S#j zf!JlBcv;pafbUnN^9FT($Y|b?dT>hJS&dD`UbrXYCCS}qH@=wm!d2+OT>a}ewhKJ7 zZ`7B$@_@QCwGgYquZRTftZpe1Y==?^no$ina${kWN;wW2X8TstN&@X81kRX{B^X#dEAIz|7!5u&PO!PV4t z8Tv|&lMU8os!%g>|6>tmw#bqzYZ*%^2@eOtf@u_2^f<>w1EhS92htjv$+rw=qDq&& zbfW7KQ6hbVWWca-Ri2`C$LkGb3Db-%;Zhr;)&226jJX^b&JVnqd;#Olpi^6NFrTbW2=eOc;rWXaBH1;;no(%rVv=wRM}0aXqb<1YuR z6ha-P8Q$QC#96f(jHkM6(CWh{zVxSh7)2+`n+fD}a|C3Rd6behP42Pn(IzR{T2|EEU3x7y~Z;B%EYWYn-@2Ag4@cqMdiEEs;0U&tNbh zEd_n$e6sqzh@10rvL%Z#U+#DP8MCxJD>T!p5vU$X*53?L7o2gUk>nhi>+8sHqP!_T zdb1IzSCO=NnRRHm)NyeTJv5M7H=ufnWjxn!6iRYH)*0R#a7&Z3;*(K$GQ5#|(~gOz zQq+ei>Q$h>dCa7Axqy2h6d&jsN>b?~t{IbzIsiwNq%prUSPnFbe4&O}G1;+dFfaiP zT^n{yq}-UM6bNb~6t;`{`8X^Ehm~;^l(FO;3R>GeUQa-IFg{-n(e^5%|y znH|?qgK11BnbXO(zQFOz>n1(qHF;zs_JDH!fVnTztnrPTf5^sVcLzM#e42v#xKn$= z&vAJ0tue`*%32?3Xe!Ec#gi?U2eQwRZH)R&7aR4L2JAxfN}u{;l1VN1LFz*wt7fC5 zV=TVvIoGs)%g8+rp>p2Er_uNUQy$se_LL!?X*(qM{v8WVCmS;dvRCB7mX4h)2WqjI z>wSS3G}#FC*0_=E@I&s)3MEY#dV2f_LqeX z&085BaQw?!9}ZMrCc%TE)rZKojr!`#z~y6<4dDZD^nfCRiDfV`SWV65r#VI&w2Hy1 z=cD>eBY!0!T+a_;T7hn>F@$W&NSuKDjpLTca_+cmmpI%b%14H&60oYVwu8nZhT$9l zbEytzJLsWY;abN;h7YLL4H!$jHq4RHzGTCXK+PpG`ckYVz28_&B4rZ|1}Hc&!=i%p zY=tbolZRsf2UgBuc+BfMY5hk0H#$MD^hF-#>;%SN ziplsU6F%Vc3UEE0xt>SfeDA{gNKkV+;#Jzh;cv56G>{{|iKsG~b<6X}mA$>wlq{_e zZ7}FNVYzLef3DV|>7_cgI1nKFq3bdb!-%j(pRno}wBwO2TUpqSK}+6%hXMSc(-4+Aqx$5-H|GNLThnw;`ZuBgn>|;U zpim8v9i4*n9&`z(kVO<6jnX+B;KUd*MGfK`qi}Pq8{1j%oFP+x%CyITsRoE}k7a8+ z=sL&5P+6`Y2P~T@n^BbRYwoyMR%$27XpvRBg*80#*jUnU%wxKR%15}4zz0Hc&skX7 zpwBWBgQ7Uj4G^f5>9s+-&jWTCl;u3dlAmWkL^k7-4N4oYTwvoKQ8tV7T!oa72PYi) z1E!6GE&wVn9Bp!)g^k@9=Fhg~H(p`C^`xKt`QyT&f541iK(oI<*9_^P!=v#J?ho7J zJ+GaIyQE#pD!meBj)d&qq2@ucHD{@rmgoBIaGayK{blWEo^b0JjGr6)!shI%qwJbv z;XCB409K3gJU7uc*Ey8e949zYrFq`c1wgd@#In&u>^nz!>^d4IVI|24KLwxs>n`tI z66orDLNSTsCaCsHdJy+~u+MdrupDe2dt%f0LEnEMm!(IM??C@5)H82_On#7b6WLqD z_rNP4n>i+S>As!abCmulvNxA$3ihrp93$A`gcc5B%%C-6YRX zOC5o@^Hr<;>pGVJ#5>&UbGZ3xP>SksI)^KCxyd@iU$tr`Hcgf~YIqnYt8TWK@C*ndumfFpvGjcHxiLBPg~R6xXj0(3O|$?y5Wy zs$vJ%>Gg~o?tkRiJ(yn}V0U;M;joQvl8xz$)^{kRf#xIp4Qa){AqwH=HAkDatWE9o z=B8eBd%Mm>FHYL%+gQ!12`2-W+kj^=Uh7fZ2j zAJ)~t->-eoN*UG#t9c#)5l?^|`#=u5E#%v2-;t`X1S$b}ep|aJa$l7LUf9aN__6h_ z?Vp#b+rE@Iqxf4#ZC018M=a)jyZpRBwz!(RKRw$}R^Qb*QujGKL|12URB=2huKb^7W$m#lG6YQOhz=iXd<8n=^HW}i^g znQ+E_UsLD4tM>c5I``kUPaN$`d}yEa@R0iGbuY8dxQIb=$In6!dpfj>o{Bi&b}{11 zq2x0@N946q9lBE89MZhH(zZFIhjgV!I2_vBb?BhO;lo{ra~(3cT^VH#nKfORXAWnY zgr%JEi7P8|ll7K}uNK{N$eHTOdF60)q3h@uhuq&?xl#uPw3~sz=c#w+>Ef9t-ApSy z%K^_idC#>76<+j%+Fs0wz~}Gn&OeCf9`5Gm;(6R|UKzfiCS%u)>uf7~>&kltUEM{u z@x`Ov#Sif%Q{5%6@TCjgrC;!6zq`wB(=fqV)MNv<8_^*pC_#tk^X!ch_Axb0&k1b$6oq;}j^l zYVM7{Vc7;|m6cxcwmnn?w>j4_uF|m~tM}O8NOOBvlTUJEt|O;u^@1+p!bQiXjUxS7 z$9D%-^>42>cOAKSIP)rP)m7<+Yb~cux?Gh7uN%yu%c3HvNfAfj4*qko^2qs(H#$f2 zM}&@7XIC#hTrEA@d-Y=PF|Q+CsZQDFole!lurcRpDgJg!iIQhw}()Z`s^H(=r#O_9V zQ8OoRZ>b~8-n2=5w_Ww(jUosC%>H@t-Ho_7`TNTmVGdMvQ&5KZm0Q4!!s?cvSM>*T z2Z%onm%jvEVFIOgsi=adw-dmMD!wgWVqKY*4zQ{oe*D&x4#}GmF`FySRapMEySH$) z9_v%Sv)-Kd<&15>efON8mhCNL!8Ps$skP?PxT)M_gYqK6V`I}O`Ewr6Fgqgrx-9z% z*NnbITyR8m-!KxFy!yMG(AZ^Mp1*C@rDpfaj@N{i$``-sv}vr*38a zsRdR(DoVQ=ApG|F!&GPL2f@tTQxNv#p`@9vFljTtTAAO-@%&$Gp9? z-|vk(D&=!eDQr7l|7@-0&_>za&CMsID^N837BKQe)>`sbk-qACF2rwBy+Jej zOTog$l(plH@a;6oylx!h(O&eP)#*5ubb#KXmd+P_u2;g_KclK%8FCzW_Ot1EUEcXT z1whLAubfla=aWCWj@G6$9!p*$?5#;{?0JjM*ZAHt&lF|(-CMh8( z&49psqtEl6`<(Ngd++nU_ltjG@3q%jd#xMkNG7!6whpZmDuS0v2btiN=FN-NgjPnb zTe)g;L~6uijpIqUBx-&5xkcI}rE=vP-)Uv>Rl7y=h84qli~Nvqc=q}6dft4!+Hj35 z8#P!(HlkWrE03=cIbKxaYHYjtWcI6kbyzb@H{O#I&6i=pIIy3EIQ*WFDbe2{G=QKL zt|XPMMhG!U_nUsDXU8-|C-O@`E9oTA11j`aV4>$e>qWiJIr}ox?DiLrG1sova1t zV>!R+gPb|c?``{o=qCkt?t-nCMU-Fq)TR1~ieYE;}pG1i{K4!l*62~QT2;(6H(Hb5plLTlCij9DFb>s318q^EU1b2 z^IlHz&h_Lhcco~gO*eV0+OlE}Cenn|lCb0v8XOrN2{vNeq;+oiDA{KK)Y!BWs)Kkf zp^--^zPiX5vZcj%=9{2PusX(>_HgSG(S9_O-APuVI6*wZQv1~=4(o%D}JoQ7mlXvi8p6Er6*+^oQQRu z{>F0w(nZC{nqUA7KqvF0H)cK_QHN!$Eq$klf>JQgOR^wNbQtlxP-#W}U7lW6J&PRn7@PP7 zp~CGx)kxh~)q+TdbYzVB_*UQ?vMR)sbk=yKD zpKPt9mCJ)gQa@b{#>(^tZyyI1)Dj5|?KVgSTS`;78Hpq?wY~*ftUk>(0&n=MRG)P~ zCEU7A3xsWWk2HC{#K)oZe#O2M^L#~Bhq18Z@5RyLN?sA!8qMTZKLWJ)BE|GOXEu8qxjnNDL;40F@@A)xM8z2u00X#gnB$~R7u>W*+hmEelXK` zJs6=&s4IxaP=yi2Xk%(wb>e#{lFbxEdrFvee4-(D%^o6A{PhZo_n0Q!ItY(rB z{yz2utqmfY=>ALUjo4&uuWrhe>JO^LK8a$wsSGLoy^6HuPnc&!nB@h!)rj*=f!42H zrtfs5GaxR;8zr2Jum~yR&e8=6O>l8A(YbNSIK+z#lFaZ(sdZ{)9n5Q}H)>twsxO5( z2E=^}5z8r<-ie6s8ujrer3}r8`G)snVofJBbY7Y!GcN!b^%AaUD|Tn)7$vatxM}hy zb|yQ{5z%?NlQQu_Nxfk@R0RNeP{2!Qm<`-M7eN+O4N3A`EP)1J_}2u%yB+1sl1DI6QV8Zh~6$@ z>E=F)C!IM-PqN`B=6Q?ky>LnMiqoDG`(lSqYNBtV?^2YgG&xH2hA)jbil1$*KSq56 zO=%vz_Gu^h7+F4%8kSX#XR|UtR(Iykkc5-Wf^;MY&t=egVB3h42`@D6q zXDSQ+TD#smjb$UbNZyjx_S>;8(I%8_KKZS}%jTK#l8sSjiOQ>UIuy#|zWb)1n zGWH9iFS=}B@CrV21Smk(Z%Q?)OEt($`Q#&srusB>BS1A>a@4%KB0hj`41tRz5{@KR z&>(tS%6plY6ff#b#8mpDKTYsOuK=|qk9`%9cn=AODM{cs93b>vLr`b@T&*w z5!#DP+a2qP6e_HJT*$UdBJ&(UPL(8a3j(MunEe82Opnq55s(L`&PQK3ULajgI~zAu z*hteQE9Fc?D=FzKWkhL!MCIlTsPaj%WEz5bS~joA+p%;^*AWMB2oVJ|HwK)$ zOy=MS`M@g|SxO}?1|^@+AORhr7IC!OUZ_PFdjk?I1$naN6)h^qyA2V7)~}{eebJzz zGh?_?%0n#$@2`TfYA};SS%kOv*i8k$V_gd*by;J=B1>Un(TB2TrHmdISY4nD4a`aD z4EQ8ydk(4f`vv-Kh~OhB7V8P7x(DLiOWc&{W|y$o1(Q3IK3vxqxdE&=NRoTmOmNGH zD+|p^aM)Lrv6jOPzHajnNyA9}xLXBa38k=j4J?@-oWk6eF#`_Y;d#Cc=WFB@r-vmh z;KUkXeATeydE6Wn{wl^++uZd#%@+x20m}@yVg|4Ej==dHZ?F`?UYfU|Q{kPI&{ZcI z4lRV~^-DfuT$deBIvNluJBaj2W~doMW}|T7jxdLS&Bcb#qozV{Cpz-d>4nnUk3sxc zGf`U~k>!Vjqh`dtjbcSHV!iYt*ByoP>22O*oQ!9PZ*Gb$W=L#jz#mMCOpJ5k54Qvo zBAJNC1$V7ZCTCQQei{+u>=8 zIOk6hQ%0qCSJ}v42D_y) zA)`9uuR7bLN;qofWz?4a)z+HSHh0ywWz_fm)sLFgr{ZKLC%9kxqbT;2J;BtcE~YgTA7NZq_(QC#S?P2g{vRak_T4v2$ zwA4Z%S+vVE%H2uZJByo|8rA2k6Vj}6YfmRaRyQU2qP9=0y!Wkq znK+$ftwQ9`cp>WuIh&Y38x9wP(0v;U3uHpzh5RQM{AX;^_m%NHffwOSmWBHl8{}*s z%b;qW*uv#5UbVFC4ZJiEhzyduII(Z>I08NN#O~9+-S&>xfuj`jm69h{P6O>W z<($y+&P{>FOA$_@2khqj7M3?$F0{DV9k@8iyE^2+ZWEgr$zNQaXRn@T4{o`7>)>jH zyj#o-w}ckAlmoYPdH3ua?)fe5g$M2>@*Wj8JZf4z>JB^_sut$}ujfes2cT!L=6x8CqRyy2@56c`i~(i(K@FepMHI3_4Kp*1+=FgRTy zBs(Z1zcr-rFr-A`W<}7=n%0|jhc_D(LZ1YMK5Y$sc^KNM5Y`(MHqaV2au_zDaBC*$ z)@cvF-Ck?Gy?J+o=!Qm8bgf6*oC^CX6ID)M$ zf(sV`C+J|ok-}|};fL-ndv_WL#iyTu58oEnHj#GCn3aKA|l>1s9)=OvnySFlpm1z$KI*6Dxuf zYuXa)aET4bq$j}yQYh&qE~yil+#8%c(3U)cOP)Zc%mk;*wxxVRCgvkkmxEK++EO=h zsd~YV`@v~PZE2^tG$KVTX$Y3$DVF943sp>K3Q1>snqI|}23Pdv3dsaWWrYe&JJg`TlRL>KB2g7hMRrRB2qEelZSW1WkoOx)|RNRJb_4D2F45EZMz=p*?;sBpEE)V6&czzy! z+O#rOtVu{Leb&4-Rek>9<&kGkzP+vgGY;@WoBy}ZBhOoZeCddy;z>1S+g|L?6umO~ z;_2?nc$qxm;e?iw*?xv(VpPE3gb&QX;Y_0Z9-q6bSdi{bA2GcR}Ldv&AI&P_1xrk$JIm`s)| z$MO=gh{Rlt9|MxaD2d*sOiJOCqn!#=C+|`s@*8MN+^FV8@Eh4OjXi*m1+pFZ)!j{$GJ4?hL3)E#~fJH&4uehDX+ zz!BmAui@t7g&yG+k`=z=7K47C$1ahM^rtVYk9@>_jrKK$e$9?*r(2~=Pn~%vXsh-N zWwb`jd%k+g?HKhFqT-{LWxaB=(lo_tsrLL_)=zsw2gZ|Cy}D6|T0`rM$|&*al=2ee z-CL%74W^Gz#V)WiYKguVl`xX&qYSu?TdjJ0cIR#F5BaB{Clt^UvV@%t>%A|b2%sGq zaL0k?o~~M@1J;{0?%a-M|6YrxbhJtujE=EC`B;kyVurmTV354Tj#P})y%x+N!$hV7 z?xK};j!-Q5NFvmlM(tQ4J%t-KX>7H7f?;$UL zI%s&UwhJn4CzvLeGFIvKid@`Iv>7gCZtd@txVfEVPhG~^z?&w0cRSe)17?5Q|5|1z zIwd1w5&hl`qNIjN4ZO6-@u9y@?Z7PM_Q@jaza*Awm|@m*>^lf~aBKvXF z#fznqgEMz$;v=Fx<%Z`-gdEL!QoQuIn?C9)>B>{M1Jppeq_x-%R?J|$(};M2yopSj z&dtKV?8>b0DWPUHpd%uHh%$71Kwh11COTXL3P?tqTuL|>Qw{=( z=<~8XCRHPwBaod<0}^>Rv3H!ulzto!jDU!#kD^8BDLbQ4XZo5TCfQrgZJ1I{fpk4E z8dlJcuBKk7zSEPfzx;4m0K6kygpW27u@JyYHcqFwfqOWaXGzUcqp_z%C=QL6dUi9u zYAQs)1G0p;oMZF1(Q3{d#5G>%cmr&{fT{SEd%c$;GPu@g%S%852*1h1VtrGr{Mg|^s{cBeUsgP`+-oo`Zzta;Hn}mUFyb@mOtBPqT1|(nA zupYdQk!942*pSX(Z=n!W-k7J236|i0!=i1>nagOs)RLOqkbKo}k^KYiHFC5eHE4K| z`zNjsMcastGhE{3IO^9mZp_FXUJ_KEg%6(poY`I4BYf4h;EeT$MY)*rsASC0y@b4+ zIz!hdJqwKVPbd*57rsuHU%-nDxHT257_KONP<$O{l-ct@x-2bX(Z}oZrR*OYY)$mX z+RDch*wp57A)_^Y+vCZ+(dJ5pku~Gcw?kQ?XV%-6qyg|m#9J+t^) zpDJppl)`AOtKynn*<`d3Rs3yp_h4(xBeIilYCZEG`5XyxX*Se3`t;FE#34R)=jf@t z$LY^)Z{f~Sm(nIo3C`cfbGUa3FwlLVabD&a0}oPk(_ZbnB+mzu2YPPp&f0wZsv0-K zA7#8(%5l1?Yw~O|cXY2(`E<=R?b&pd@&1Fw*F1~O$JrGHfpyko-!7k%jq2vU8&;6E zaSslAug;ffk++7;u&-AHy}Z$frEUuxqgEQ;UVd?&Z1MJ(;WE zuaoO|YTAn>A(Nv)+q0d#u@_$z#*Riq&vuLHUasnx98cam+p9Ktxo$mn{O0-Detp`@ zjjJX<-+wqeXd8R^J!tIb=bvYX9dzwmaV94V9C%#6N&8Oj*vVIA{Ly$?`(BmF>AEfc z_}y6hLF?G*_fY)LIl5Q!xIUA!oqPC`Rg+i8Z^zCKp5srq(q5gcnBb2;;LmVlug(s~ z@Mk{>p{((DcI%~oDuffWLjDO#Q4yfj#@`5kcQgI+^3EADkyEd+d>|7+`12WPtQg8A z**+DG-Q*d*hy0zaTs2mNa*1>#`y>2a#BPwW)X=oxsMEzgeenBb!+x%Ka zSHAv&Qthj=g>zv?+5{+dQMUbU{gu}HM$i8Ue}B#X)$ls-DyoP`O@$ix(wD+_<iM=|{Ozv_Ys6x*>>Ibm6y(?H#Z;Ap)x|UvneY-8!|cA4t}9rxlwl~pwv=hAExep% zVdefSS-EC8=hBU}DN5x9QUvJZhr}X7bYZhym4PC4E|cPazE@~ZKWvuFX8V> zw#td}l#EJ1+u~}uGE*6KMcz(Nvch`XlzU}yV}N^gc?(He)x(L*akZ2hk#v>AHhd4l zbf=sTt3v#QAw#`Ijqw}iB`DmphMZ}U4-pA{xN-HhM}ybBrvQY8{em7&>~0CC-)76l z8{g`%uiv*&0Rzlg?_2pEFbD@NJy14%N}9cEd}Y7>`6D&luqH$i)JbJl`~7}Wj;g#C z|CYuvJl9k_j?fzHc??y5YAu$2z)1qh^R41*2UH%&;vzJ))%c6|(=1wvsH#A(zLJrXG z94_KccpugDkKiZXk7kTlRI%`;RlJd##3fb|EfFTIZ-@C75Lp_neeTmcN~>eBE66 zW6&4c*Az5VsCvY#{+Zj{)WI$E0!P3Zj^Em_K_fXM3_GCrzKK@z)y|&i2GZk;g@vVL zK9b)`K0Qkl2o?yXcIN&H>*wb!VX&oef;Q`Yi7>qZF&?G@LTvg~QBZLrbKwAx-n;TG zYo@EJ{KP;pB=;Z}(!ExGCzi6H?4l2X)Z<5-sC3*%yhJ()z*$OVF{{0BQi`sv-x6F1 z?pL`?C=%n;V<+C$VkF(6i2)}wf*i8)s6jP4Tubca5g(c7C)J!Fm>8D)OBx+;smNL> zmg{Bl)3+;9B9b?6$%>RcB*~x+i%*NCy3j|+T&NA@r{-B^1wXorq}LxEjG#-_QTrI9 z+}`8FQ-dZa7LXo{D4@!uExTu85i=Oin4AHcXHi2U`FCc=c)vU5pVsHYX>Y z6VFMvZ+FRKBI1YS4h*|0?dFdsSISoDjd)z#z58ysQoeOyMdvnxP$UePMzr@~v zN~g;8;e1}poE-rd+k4keh%y34wRwu2tJDtJ_600=c8jha#ZeLIk4Liaotu7kzC9p= z-SE-&1-QG`@J7h^>*+_OtRvOh3WF1=H}}e5G&Q<9`jZ)V_sS7QHTu?rlR3}!DkM{C z46o{!sZ8!w^2))Dg9fL(Qls)zKaDU%=}(uk?^o*@JuuH5oUT;buQ5$|U{R$%^WftC z1DlZtR;`0Gk8bWi3>Pl6+25wS7da#5xSV=n>;aQ!MP{Avc5?e&2YB0E(u5oiU9m8? zx2=0bfX~K5Tk{61&WjcH(hx8gwQbG|b7EkAoy=)y=iR`?gT}m(T33ak+0mN^O~o|c zR;%du=)@bs6>^*InHlfH|7jDj6ZH^1{u`Sh7&_bN(NAK<5bwnwo*|T*p8OTcW{}PK z*NlC(?Jpg7PLC;0bh6-P#m4}!Jkb1S4aonONA;-<+vYzX)y9P1r~mq>R>oTiwTHd; z13u?pF?o|Gb+9!gB6?_CsJyei>&aF5>dxDr-(>|&G>!oIV$9yVZVROgPyAC+gxZc# zHDF_RPLt9&01j-L3K{wp@GpOfzx(nkX~NqP5K7*;c$pz_I$?qQk4?aBPPn2;*`w)F zQ%S2YM;wwMP1DF~WK1p}ZXw38hq8*}F}m7&iv;(mmPrnzrh86feXU|tkwdWAAL6k9+Uf)g)oyiBD{O3aLv+Np2^srd+r6w;Yqwu>25~mrzxjF3 zzCS5l^MaBf14bGhpoD}dE`{YwYlKnm2^7h31XZ;6*1fP%BA0*bAe9pAC2OgOAKINT z{K4otW%|5Vj}}07_1b(YKnU7~Ys-yl;+nDflApkg28OE+GjhN*CnFtjWyO*jZSL6Y zq_I$KDTpK<*=}ss{;;=yqY!AzEE%H{5D-v>f_%nep^vzx-jlzf0aQ2Vb}N=cpDfbF zte>b(G=l5~j?gPuHA~gh^Lrvnu1cS!?IX1Vc1HkyJ4+?x%A-)b7Y2C~Km1AWq%WEM zry2Wy)_~kL>Z1I4{rRHu>mR66b*sLThRq=JpQZqX*_V#n$7d89 zgefpydX~Gnc-mM(9JH_Ez+sDR=L{)yK{6bIR z6bJ%(lGNh1`V%}Y(g9~koM|M(1uzgj#gxg3!0ibwxN>_)Ed>4sPi{v6yn!X0I}5+2 z0AC=tF#$Zm*|Ww{Qfo5ro2yVN5~ctFJYC+0D3<>Tp5ScISkNhJuBwLKbZR=KUd`KF zdqI*)tV?C!*T@wB=6o-*P_shAUAzB$p^Z3rqJU=2T@d?MJoq=JfQWE}p-~&d10Y}x z`!KQ-e=+?5^^xW`jn*64o|-M~Z@!_Q`z<@#JmP~T4m9dmuNm?F7?Ur92 z$Gi&EqX#%Adu=|LHn0p`-9O1f(v9qDxV95GU{R@(xa_y2cK#3*z%3k^%hV+BX=!MCv8sDtW?K68I@6e%dZ~=RR_0Fx zWPz$Cs@4+ZC}EZxEfd{%S;W@4T&e2$Q>Jy|l7y>vwN!gIF-=2E&$Y@}>i)Z?4f$+Q z?EcS2gO^VCtZ6OlUtRt>raphQl5Xik)nm1b_a6T^`?=M3PQBVpf1mHG>)4mPgJb`| z>;KfWVOR`e>F*#@`oB#9f9Y15-&4TBNJXftZCWCli0J=>OaD7-pHQvSbB7qe|4nGC z$ShVnW}O%|{U6mj|9^4mP!X#Ce(nD|F8y5Xwf0-X%fO50V|N;*oK8t~^QD(xl%*=~ zQ&ihKc8jgToWRef@>D36iCJUlC!9=7)|_WX6+sg+rb<77db)TzZzMDkXx@dHbn*8M zm|w4PDpM+k$POf_ye2JXqL`_QL68=fI;N?P{)Pvnj2i6$=y6U^N)&%aDNc$-7<>Vq zl647^MFq%Sc6Yr{P>?~L4~!F`R7q4rz81I>%^0FD0v%en18y@dIy+r-gQz8@pEr%% zg#?%sS?jeG#T@D)vBhLHnTX3tl*g;8Nwm?t6;P;>Y5w&I%?GIO8$s1b(0mi^Js=(* zjD0X%<4>DJ(Xh(<$o(l|T#@1pxnpERMfXE=A0@`ixZQ8Y0UaxnC8jaND=S|1&h_E% z18}o-E>`q=+fokIW#!e%q(@ITcFM0k<5K(Z{e|p+W||7_D^>W5yYNxa1Hq;kJ%8tx4~iwH*lJ)EKVq%q>SXkzG??m|#FyBAaOqebiKC^g|GZj9 z?P}A=XA;M6Nm`;8lp3i>l+k^+<4rfo(r;mZOxDSaDIaZIEwd)LH$J3n_mml{0Ait` z{vQKeQyc3>{ns!$^wAF563kP&*H?>W=+s887abudWOto!PZSe($P;UwhjQ0`e_mL; z_OV+;8EDJV3>Uh$2<@SNXmIVGYA*`TL?{gr zY33)7iY|rW>Z3KXFc9PuNb@Hq#(ECM16=BIlB ziRUy%KzPlU80QCi;j~2I5^cQ7pT}cSH#;eT6Acc*1ZuW&G=!NlI?=)cEaV3OI?**W z-S!~hE~Zk&xq`!Nh)`%>T5bTqm>r(=bC);@#LbnF1~zCbQtCm(<+WKEPRdY&W~vd4 z-K;_E;G)q9bktT2Y&L!nR^tm(}(QSP*p*}qr2L*)uAvWzekJ1iYxuU2&5Kb{&?)oI3`gO9otp@-wu7eS^;vNGaF z_V#lYeLS}toC>L9Od{|0rTV`RDJ6Pep>i!|0_c4BUmk!{cU!1jC7aez&ec;ZxH?O# z^b5w~PE92mf;>VWbY9a_PT%(sx@O!Gtz{koi+bmIykt;kC$PhvNr&B4!?W z^kutl(y~qIbG2}hs&qFbsNGo2q7M|wAv~i?e4$Tj=fd2Yo)@+y8G7@=Yw8*mub0EU z#k3-cg9dC$t+SB9?BKs1fOT#<2Ja{D9yC`Q)p^__o0)lb@T5LP+}%aM_QNWwxutES z?pn~$htJ0ctsOLveBul~F0dcA^&36%%N_doRq62Qc*>)IDuYk!7Z0Dk8+ml2b?DRg zn}^TmXdVam8GPQkd-!72=<&_BL!S?x9lqR3c^tN4@a6dZVLNW*@$JK*FK5SxuK?Qm zaB{;r5C^UUY+N77GCW77jO&D?)<+8&&Qsdrx>!f+V-<$yX+v?{FxrNA9YToVJzNjM zxFOMcc!Bvju2(Yk?{eu!1E#5sSyhJ1BDS;Wec0FZrh?_a-n@haK!6`K{5OQ;{suy? z985so4f0Ryr=(?S@_z`)najiXQBjm!zpF1v@9^3U{=RwdsRcv+6q4(z10KG8Y~P*u zX*Tc=Avwk7#y_er|KAdl|Ie0Rk;$v})1SEAZ(qh6 zzs-LB4Yd2~=B<3N{-CyHef?qmYrM#}+U7SN-|E`FKKSP6|7|s0szos7`O>5ji&Z!;jj)kzLE6kwai^hJfr>K)vZ0tL{9G~htp@eu z69&Bx^on@%Ly2Os!dA5g9Mnv`7)1ogu#?{!6Ij-5rbE~bbLqWS!!r!=0|7E=n$H2O z!Q2RdqJ6ElVkeK;#b^-AocV+WV3b(8^~6#wXu@Zh$c@s~WEDO&Po8@frp?+%>~q2f zz)Y~aBQifu_9m^dKfz`t&|k8xW?jpN|Wa-iLY*RlXCx4Y%bl)*J-`QW`=mfN7udq)oQt zJ2J)|s-b0&5VkHPjxq!mkHk9bh+~!*f#NuL_aaq9@jQF13Q71JE6r26-XOYJGC(AV z@}`ZMauGxSGKi5<&qIK|)LxevOs`bv-IsO#S+vF+ID9-}1)>45qnEf!Eq%$6PMdOx zs=DK8Ol<}wC|w{}KZx#fGziGE=(E~D8sKM|1RWika)!4J?z@e7{-#RPnV2;viJbSoMR*? zd2U_|pd#~3XP_^r)p15PRY9P}vku+(l<{F86WpcHz}o#aRa$Lkr}(z8W@C+gEbtDo z#uXp?c;T|=r$yJRYz@Z$$?`j4RRD#j2*Al%BWhU^zee{fxyPk<+d%wG83)#2eQTp= z7pzE6Ia%jUv?OO!keVV`@O#1^kdQ1p>-2*-Y!y%kd6L z27q)Xw^yem>LC5hD`D7QHGqeCI!lcr?SZw6LyQ-iRNli0-HF5lCTRZa6otiVWtBAe zJhD)7-qcWwL+(%U1;|?07}ElcYb&gM%C957#w15^d%xiaHXzqteaU?0|}M)|zX(M=C1W~qhfsyNE%@67Z-bJ`4g zh{jtWJR~&nVV+W%%2+#A30~)V3GXa#>~&zGFA48Xc1yr7p^v-N&kqs1;6v{h<@FkT#Z>;0$P1pfM{JOew z%6(+k(o@!8n~&9jo$-Y*`>ehzZ%c5|tA_3g%sdL4@Ye!SJ-eVa-ZoO{wBRMaLLBE% zSA!xXYbp~~wA(9oeEjhibNMUT=O?SAUEe-EjQSu|vhW>lEwbCMAUskrT zCp`wD*5FYL>G~iu$L~Y|-q{Q(J|tGfw2uIt+gO^=WgQSY>P^E9({L@;Z4EmgWdNq< zC&`N@HX$zdRVpqf6^-M5Xf6L577a;{RFnw=eCRx_>6M7D6@hs|1*l#4D05dKO8uNy zmt{!vm>#oo*sk(Ew1G8&!`t$bp0y>tc$d_UOX^@v?m{N_*d)IWPVUFCy1vGwcViX~ z8N>U<(0oS6bIIpqbcmro!h9FE!VP~`p#2z9PC66BdG#hbNZ;qd#@u-I+R#lf$fNKC z9!<*KL)D#C_J3w^7k!Ve{&GK7 zY@d3%uJNe8Be);mB$*T|s7pt$eJ~;jHPxp#@|9fI+X(K*>-Q=AT^YiS9KgmbZ7)M_ z`~WJG@Kt9o!-99`I(4p$wZ9yc0mbe5o4iu9aGtrsOt^u(`KGW^jKPb^$j&MRwJQ!T;&K>1+V>8=XH1m4NSa7}V%6xB*$ z@lbcAdD`HeDEkdsy^C%Ea~chkl#7=ofVPVc70TCG@3vlR zp!|+rVlE$5$r1SGU2*g=vlhKZ(4$lyNew|1x0!k#B)_@uTXE}U$!cg*J#9uC5kG;W zRn8*=wKeTLQr(W}*EdkLa(*(U4as%_Y)o+1mVzsEn34BBuNYI9eb33IG8OnpQ3ceP z;-_t0M%s`m?z^ClIwWhtj-$Dq%qOcwO07?Kmp*~&ll1lz%bCXR5Ccbr8Q+CWRnsY{r{CwV{TwQn zrqn1bEA^AOt_iEMQ~ua_M%;vp9cY+iVBcY)xRS94RCle#&{Ci;W#u&p6S4n@NXaLZ zh5E|9A1J|i`^3vOTSASO03dY^1iY7|7NjPj!N2Q1PwT)I*SkcY8Xp5bGN%>AEa+?@ zNrfMoL1=e=Z~zE$1w6P56+Nv9|4AHv6tK`0-`sth;h0?pq;T#sXAhyyh@!ItUUK0i zg&`tJ*KGk^;@>|MQ@@_A>?%+%F#6DX50~4)OA;P3!DoGln^C}o#uCUvZ@U$ zM63q}t)A^<*C$tqUDX@9_=SD< zxqCACD)>Ot zFF(|8MgW1yq)cc3bGXWhr2L_RJ00)l{$VYbwpfw)qIzSa=a;qIdm^Nve3^Ky8cZ*x4O6`#1htk%|BHgPsm{dMj!+~l;)F8J%0QNA2p&B zMesu@CrqaCEuZj>KriLEyBeh?J1z647p#4~hY)U}0;+m;O=P;T!~{Q-Bfn$fErK6P z6F=uacL}gZu9hapXWht&rs;0A0U7KtsB?pEfNDO>w2op;OxglB?T<})I6>W^1cnw;X^5@x z4Ue@m6NfWH(tRnDFM)duG-p#j(f-WF!^fD|L4?3qj1`dYf4&>=Cv>lT&?-!rML_7;3C*tlWO z*9?)`roqK>B!H1an?{R1aW-DDHk28D;WS>5E}iwZNivYnpWY7_;~UBH=MN>zKygE>?cw8p=VVPCpv#0M!er=^=`9)CBN?Hh*5#v9 zjk=g;gm949{%l!btNDuAV)$%$d@Uz^xxXPX|4Q*|=OwU^0nh<`d2iuSF@!X&{vj1; zfTNSwAwjGs66UbM1S938R^%)X=(x6Q-Sh7cUN+9IA zDZvA=OgR{_i3WZ~AP>X(!3W&$1E;q`5W2!0ViccL1~H%=!#jw=%^d~qyj~h(<(e$l zJad5!MJ1{#frhMK)`?#d)1@Un-vhf~%=;la-64L57ePysP(&$YG+hI^q2E_X;c$U! zMQ`lp``!DvVS*oO06%v7c((|ksYa3i_Cx*CaP^K?T9`=fs^E{1+s?m6o5zqMUE#9^ zBPTjtX~NPjah^3H(8xhE0B2YcmA|UWA4?n1<8+&AKu6XWG^YAwk$X*&-O`KyWn}qx zPK>ArdQyrdFQTXHA;E|Z)Su5OAG5s@3bt^UPSLX$V~X|Zkt55XytV2cL3tF1kbu+O zm~*0Uz^-`M)aXQFHQ6WY(-l-A$$gBPU<(irlht~xBGNh8LYEOx1InJ=tfXqs>z^Uv zwYhU@DIRS@68Ifj{3|iOO+}X;=pcz=l`rL9xQ8&b#u^Zo@C*q`8bCcw#y3+icw)Tm zbvp+mRpNbvzIE|S`GHY`C9GHy6vv)#YcXt8Ts$Q~fH$4e2!vuRO95YWm!=g*ToYKq zReJ0=P`eNFF_n&!p})^l`GR|xzCvDKj@ecQ`Zr8yd3}aorSBaLyBRm#eLMVB{`pb$h=-MaT!E!ASLX#$ z(lx@n_qQz0YcVc?WXu_{ZVNmz(W0tMj71F^&6Gz@vMc&~rR8SYwPNoJf?oGmkT1S7 zIp|C}99ZE3DD+Vrsf`JUBRvgL>Lx_9W$4|BAwS`wn)AA2c$ z{O8N)82I?Nm-j7TXPE;*U*7j0W@f_jW<=5hYIk|Bu7CVKE^Mf3jR?{rP=}r$mePsV-W)3IjN!GC` zRBA2;kzipXpI?MT@)_JWR1|I>!hI*2E60)4gdK?dx{UVp>Z%Wyp9@jarDzZ25e0iZ z`(F``iLc%naffA$qj=UrrH-c`0wcw%*^Stkpwey*NjP~$qfRX zZ)c`QFf%h(2%yy}3Cml2--(7`W}eLux477yRv31WpB^_u&~kZ zjiDms3Cmm7++(dG&sD!tQPE?4?OxPvkq6n@u}c4AIzO~R`u&Y>|Io7kOFG}Y-1ybI z9O4dTz}7Qaiq!Mr@9(^>?ddXKYng#F*dF%WG5t~uW*aAvmF>8F3Z%* z{g}L95k1z!s3915Ps4U?Q5Dpk+hEJapfag?bt)RGbU8QHL=g)$gp5#7cq#a)wd2d^ zW++r2%&K}{)bsBTe!jn>2*Ge$Rey_&V`2_umHG1^u#?HQqMn{v@{xMkZ%H0}1rjd*@ZK=;E>@ly>z!l-NX!{rd z{OaGBSN`4dhHLguqy}Uex*%o?(2^@qw$eCGgDyA_po`6<;OAPJbI`;`yJ1-bS8f6E zeXrPCp#^Ki32J6@Ik2mD4^`LQSQY!!&dl<3xX7e^MaP6ETd^Uv-5g_GvjSL#Buz}D zmXjhW0!$2;F7fi{HLgy z> b${7IyF2k@ATP~s&J*fhZ^kO1T{9x}5z!F3dJWq$@dD-pg0RhfmoLL18W68Yn zphJwV7YXZI3@d^toc0P3MfIE$yqF4VLn}WriyJp^E1He3lHigh#E!}}gOoa*s z0`tCPe38+gcMcNomFO@KZ+cBgz95DXzLRzX%qL^<&Blc0JQwz3H@7xpe;*0x=^djP z7&9O1j2kP@O~ZX|j^{dq&hIlG(o$3c9o?w1a`V!<%m77bMT0P7+|~4mLH!ptEK#Jwd}{;FJ>iuta?I+JguqH(TNcx zg_rZiYg?w?r__s`=c_4l4oDJPI3D24Dz6K?>B$8XK7_pwmbm%mZBmCmi(=G^Yax3M zsqKv#&->TjWfzEG3lbr%2GZBShY^>z-V5@auoj2@H(IvO8vnz&j{er)S~g8VBSl}# zBQP!auU0E6qQ1XH+y$F{QNP2f`PW|?dIz;Ie6-z9a=>}$AHOy^=kO8w2Tj!zWxAOn zb{X6J3LER;2o?btf$36t!lbTgzKNbHdo4V zK)412?(wg;<+$O)G)9Cm(AatYH*p7Y$QZ1o`}MZG@o5{@Mm2^O^8vlOlZ|?3DVlVv1cwVWB1M>K-RQow)$FKw28W zDQv0?JL)diIPakaF`_YA<4-eB>0ZvYzt*FbCwN1fu%6VARE(+R1M`V5;(1f@Z!_)M zs@?eP>LPnYowaanJ&$QMv2dPY6;;k;F{=C|ow&ofTI#)N2^BYGxRTy|0#du%nx_y1Bb_TFB5zMhZAi|fb72;P>v*Ka0bK5yIHl$T;PT$G6bTUKCx zFge}Q#8S2lVn~W-94ybY1oSt>r*0${?)_Db+HJjoT1#7vn=0JvdVS64Qz#4L=j=@Z zqc5DMBT}tjeo zPu=c*_TrdBAJW(iXcd+u`&p!WX(679s&kOE+%PlVNN8F@ZYFAoaYgA5% zfa-TwqbV`V=w!Yup!v1gVvpv9b;mh{T>4`Z^n;$ilm*hFM^?cno14t7&DX78JXS8Q z<)^;&`iVs`%ZI1B0)TVQU&?~V9B+cvV4KSeG=TUcV2F!)s8#&UTWBfK7l+BuA4@cU z|5*D=Sr8@*Gr0Wr)bNh{gM}~gcaQ*MXy91nBTDY8+5gE$;ASHUh9=+vu-*8;O*7bG zJq%7Zpd;V2zNIS*zk4)-dC>`ClTV{cWdkV03{AtYI6G@?eW#YfCnx+b3o(NSJ6gsc zxNM1hAcxRp+!be6thTRxvJzi%gJ(qk8cSbd05c26(*R1MSvD-?dCS%nXBRW&ZgF-p zB2Y%^qvZv;m8q9R`f4#hGl{w+HO;lTZOgx`e(tW!BGnmFJlWx0`bSh% zhcwQP3D275=PcaG+jV8{ug)N4KhIKT$vU!?e$q!Ur!5v>qxq`BJcuH7ZDVgl(mXn? zzB_?E>$_^2L^)eKo4OT$sB&>1@0@1$_C5sLD*h2?ACb!<6nCixB31ROxj=Q}wX;T= zbSCzo1BwD~iDRU=o4CQK+%_n5qTwYC)pbX}a44nes%bJ`N7v7;!I6#+RiX9NN{z)# z9CLl^f>5S$7ZOW!jIncicoAJIf_J}_`y_Hq{|f3*Eo^yqLHU%U0Pvo;xt%i|YXEn@ zYMQj4eMhqN9M9l5aYd5_DiV(Q;Y)bno+$sVJzSJCZlZ5r917h7); zML7rE!N=k?C-aIMIl8muCeyLkrbj86797hhW@LUSX$!c1th!Pb+{k@QC9CG7dZjGz zzEs*>4z*eNxz4tiOaI^^NBeY>BfOWMKYNzqj2o{h5U`W-g5r!X&Trh5E+<}}T)-f0 z@9dLJK=Qp?fD$F?=PC5}z%PKIXa{Dqpti&07ads_Un$~)sjWMu?n7(bCyvwo(UkrP znK4ztU|ch%Vfc9QvJaWbme3vWWBr?(_UZOaq}L`AHZ5gRb~LnJqEg$IftwQ`0J*5G%zHplHWykc=&{CBYV|k8NY^_VAod z4X4Zjkvl08PJ{B(Z1~^;5wIc|z;Ne7qO``4BU}f(TV{wM{49 zvwa`ghF4##e_9jH4cDQneEUfM)-KwM2f23+gOqg z&ae@hnhfVC!WhSxgi)GjK!uz@*-x|~toP{z73o8+GnH_L|}rPFdA!g}L7A zjZnRy`!;b>BGAyc-n9BywP+xjt0z)VdtxRXO7C@vc!VoGOi52=&?fk zY$WppXc~|y>~>_5rk7+SZ6tf$%?5o+dLB-OLp6SR77d~6$Pzkl=AoN(o0A#a<(G}1 zOywxr>G>yO?Uaqc~HdC64N;qGH-j|KrPbe`e)iM>5@ z^6^nt-+z}YEr;#Kih1tPy2Tkj7G0RvYR(_~`tTpQQdq?j?favtl}&pGyP?&Qx+P(e zFY{_He$TFSxsRmYL{94E#rNT~A>qKIbe6mQBSbXYPhu*^4$u`P5&47+#61J#VpbdAR(JBB?c!3+O@sbsQ|i zu7P^h`j1{jI5OqZNSS)wev}1+{PRDKJ>cWNHg(h&tA_841pgD=Pq9-UUIQ6`2sM_C zX5aK&8XfljIGX++{Z`}&LYnJ<9tcq`WSLz+R{jI-;7etF6Zm5}fCr^fgU-6`~N;KcU=OFvk^vma2*NJ#2zrV#&J)l5*?9l!f)2V7C!_5e| zv^4-jA9&&!_*$94*=;%BR6ghA|B}?9_2k1jQ;QZIoA!D>OHX6*zBI-Mpgvoze^d4-N|# z&?|Nv_ls>1Ms6+Uh$G=98RrT{HXISkZ)L>()(k`s?~+6FT?Jwu=`Rz_3oD!N$ux*l zE(zy2g1h2QIQ0v;r2-}NWQ56%V@2)vGj`=G2*mW{E{;WQb299!oRprisH9^CBMFJ< z>q&gJGAdMl#u*moX7N-JQeX1nO@5jTOk8_z7Mm}t_3*0S`sO~Y%dO^+tH8WyTLDa; z)T#8|O7Y?CJY%@Ni-Swg6!c5;%0ouxtQY+XV2%{=A_OAk*gH{nqW+c(-tLt$E((NlHj5MOe%@RWvb>OneY5WfUi{Wi$5E;7n40j2 zOs)VoJ#j5vT!Dz^a=qBA!=_2f)2eFqL)x7)yDPeXcxR@J{{?h-f~g!oLv+n_JGlWv z#>4E{ccM*lnEN0=^+VbPZ}j&$6V}052LLZZaLuh1?Wj=xa$4h^efBFV`FkzD-|3Wt z){&m33vRdXUvfrISpPy@{?z4nOI^_z@gXj`F6a6o`-O44*@(Ddg0V*B)_aS0pI0*+ zY8Tc58Z(jdoh)nquiNhjTvNQ;Uvsus?Y^Tc`)m8osr=J=r(a*)nrnaUANGSoCBMF; zoH#gyuy%fX%|RvoZS?k~Ne!Rsi-zyB#&Sz5iw<%fCo6t$s9&6}q)eP%MS`doYgaUv zhR^ld)ANHtx!Ikgg(u&C3{*b6{PWuPI}1Nh(T@RmF=41HLC1DJNZBV^i?o+1)vN## zKNB;B-a_A0RJ&P4PI_r!!$e84;W%lGhkeiyY~_Iefj7{d#~eiU3uFImQr@7u>bF9M zpHAw_brN|-zG)ju-7I;&+2e41|so-?0Lj#iO+dhZF9EPc3&I(Y*}ddiHC^ z2p&y~Hf|kMDbsA|BL`hdzqNT(TH21DBIL& znfUeO#D@vrb9S}LB^QRrecQk19>kSP|1aCDSL_EA&RRaBz04$B_QC*4$FG8;sLwX~ z_Ng(+ZqoHnIe%t^c#c+QIG zN9oT@;DW$9u}g>!&TA1GGhzh=9K$FlXFo*}CU?YuFbrn419R;j!o?tf^}CQ7-z*!2 zotQ70g$r)sV}_qtEv}zYnwA~+L`HU=)VF1*C^zUc<(k!?b9X*lL6c2w%4{lWsfU!q z{Ky_%njbSkGu?8mrBG`>Xn@v}8s+0cvTwjozai5-j0Z8WlXvp}0C)I3Fb}$Ji}N<1 zmgK~7cp@#z-u2b&Q@nwx$E^Sow~y-nE5Ev8mqTs3Kf%Qs;^^swfT zrmokn)`st*(x($oOXj4-Be8n0ljm=C`B)Xfg9T3cX2p_K=TpayKyUwTu3hWWhxY`D z1`y3{cST4ryfM|U5G7rx zIjYR%)5g?Hz*y+_5}#0IaP(dC{oPve@%q@{lHY!i;4oI%+vD@c+Mjo$Q*?_WMXy9j zw6~b)8ZLH4zj=#OV^985l;re(5hYj1WU))M)UWRGRI)4*ofmgg=ls5%BpjpZ=Fy$u0J@t7+uc zMzYwW`1&;#olgI+L9>zCPnF8v%M=e>X(|O4AAIrd_jhv9`b$%(t$TS1#wX^A1-SeS zyDDn_)_Jlu-0>fDQGU%s?l$jVP+qj<1ykw>1_r{fhl7MGEF(~|yoC{n0R@y8*uG-J zz-EJE^7;!Bh^dw>0bm`*SXQyAKfcO=e=0QZtt$ge?!Jo${KZgl5(?YaGQ6^2%ypok z^=kU6g=AsA!=rS=ejdzZr0VL>@1)%|y0(*UV(_Un&6H+nB7=kb%B^&LRWV)mG@}=3 zdg1t~EF0tN#3koVGgOwrxM8}U@^Fd1{OJp(h!2Ihz*()N&+EmB60V?i?IgEYghSYe zR#OhV1dSR8@Bx_QE>Zqq%AO~>X^PBd2_Xs%jJcwVo-1B_Vb{xH$r9BK8w5VF0q5qT z39_4baJ8&^tm#($`Nj8Lxy#my37gAV8<%+ZWa!rvMuLD5(F@G2&#l|+R9BS@j3z33 zmmw7?I8(=wAi3J57%#iVxuq%g+6N4Xb|u?riOx`6(-U<*^U{_bqq{SqBC23y-$s>q zy|e;I-FjM64p@$w3D8g##Xz;C@!Zh6>XC0*-E_1cp}qS503IbZUE7L<^#rsg2m+%e^%RX ztQhA0+@aq*7um{DQU94i5^q=14T?7|QplH!J=;@Pxp!^X8l=vHKbcIhTQ|NRWRvD_JFm4K{{;x`QsJ3|ABN*=8z#(w&c@-p!gcWoHuH@244=ueMrjLF_JzU#;)NWE?B46w{ty(#Ks3Gt=|=pEQ;KPnnPU zkOIRI9;a2pPCGoLB6*aAk1OHiQ6JVYJ4((NE#baBJggIVlu|%a%B!kA^4}LV>r#u; zlj8{gE^3}rc;CDz{qLr)|K6=6ts!+zIes&Ji}@Qb4?}$6xESA7&YlNM;>t&8HF+m~ z562_Fa(KzU2j{tYgjSQ3^lIsPx%K1@M)YF|hvH?ZHiCK7g)<5kr;_LeQ(YEqT`Y2@@^9nMbbw#q*2MOw$ z9Fe9tcA_6KNI_>&J)a;b>-R-4Pz?+!qaY=bwpe2tE?B`TW!xng29P90x-FLZKX^1G z_>zFHTuhnybg`c+GAYp!j|BQ#2Mu5xq&hhumJXbXtUX&i8<`Sa0e}%5q9E3z+G36R zYJ%YqO$g(SU`vaK^0?YfBz~a=p7jsQ7yAIRR+5g1!xYB<0FHTI<$1k@lM{V8Z?}=h!CYn- zRBF8bMYOi9f(6F{F(M(TOAdc4N1!{D4^7RIalneptznN8eQ{iOvsO| z`fs#0H7=TlDa;V{tM5%}x2iB?^DgC#mO1xt2S=1N1B1+JF;1H-K2pyRzO8qjN}q)J(eQ6wqRTNi*}lCJsT8lPSuUR6QLEs3 zQiQW33r#pqa(6UY7;H)7lrW^${Y*e4I*ujfm8#;mLOt2%whc<0H??SZR(wjfn2zx; z3+qknb#15s2Nez34M*psoVGcSgr;f-?ayY*=ku-OO|^bwpYQ*3m+0OI>cauuGoLT- zD$09in4UI>8ub1yT$EKPvuQs3ux`(j9J5B&(mJTU?*&$oVWWKB25bEKsN>h_K|)LC zN9}Kc%fHr6$6H?i9QzjX>(_e#+1druIS6OGScmJj_Rxk5KNacZ$qH%hcy?3!m zH_Mz**2v5Z}nxOl^Ph)7a1Cqu*TKyP139kbR!+@N7NXE5pz1WuO$MXQAu#UWbnHnY^$ z@587FA?)_Nr#}{OEDN640z-HXNGT+rIs?I}l0rZfIe-y4p1Tq$f>5@h zygu^j&m40?qn~BpRnapspuiT=@d$Y;U>QHG?`S@&8IFuXB-NGCnVN0vU~Xvbm17Jo zMaom5p+ysz3xc{rOe($T=#3Hp!&M1yyHp@zXoUM{G77THf+#C@)lhzb$3pRQ!m)6( zf~W6POT*}^&*WWsd#V;np~8GNc#O6Oj{2PZ_*E8;)~Jv)btA;#p~{~Cuf zz*uQB5!la5;yKPwK_bAk(B-UFCFJagIa^$Z9VPn^92yHo1oM(6h>_j&pAVxyUdZQ_ ze%n{+B>NUmCr4a9t(o`OeA4~uLO6u#I0;j;lS(`Pt&!3vLwwpwwx9#zb#*RS!MQi@ zmNlz%c0^d=_62~rCai-(PzoX072kpnO#2bqlcC3@$YXgzmElQ7w|d1UgUqF?ZIvdm zp56RIXj1>$&gb_oK*+Za-|X|U9oJ+3t(1y_vPajU4lbg&|M==YRQFx&j0}Cj^3^hny@T+nQ z2P9zfDtc}xM22~i3a7`?X5u;s>9{2+ZEB?dE5gRCe?&T&0i%CKI*t6%|68QZnI1|4D!RFT%#FMG_V8 zb;wBy(l8S-1O|@aReIQeQP^l%>MWHIiwf-eUhSy;+-zZFzPbIR#v}f@`A3a~_N9|r z|FP%ye~v7?K0kR8N?L6>o{=NTBsbLM3rRPLtMrr&u)&&EkzsxQOl{=5?FIj?(+1CtaLWn|0FvWo0O5k8>8 z7`=0%DtqL4pFR60>+f~7L?pWnE2S+fhUE}bVopv+3>o;XCITF9STkh*=!16)?_fwm z1zI2@7y);`L#u7>U*eZTaCN~n4$w{jN#7{+9TYg2N~G&;eQPwXmY!0*gZn}UU|%=l zUtJh6B9%sWdPNl}wDFG%Owsn^3i5r0A7#Mn&A-)-iv~SWw8g!HfAAuygPxy6R7;pZ znT_R$qQs!%fO+HndbvOKw&ZeI=+#xvbW&-QfK(=028t2MkWP4_mo??UTwe?|SXI;A zeg`;4$qJe0g{zsN-FQW#g|+M+4i=%^>O`9-R-M9_&X+-KgDLld3x-cjh(TAVNw6Ez z-1uktijf$wA7?DHt3!96MC~=H zqe+CVcaW~`iZ}~Fyu*hE$fcBPy_*u4A8c=^14GdyLyhNcl-^62v5vKG=41QN&3?eD!Epu{Hb>OIQG~elte7 zcoChiv!0_!ts+7}Y(yUkfm#nZR?lPpqs}^TAN9<}Nz9Q01fUgJ1qj`tNn8Rn9&I3? z0tV!CA@(d;{ZYg&;hx})Cx8cJ84YOz9wJ4GpM03|jG`m%DImSX6K6~k zUHLmox=7~3o-ScfW0MvQ_NY2v(DosLRw&X_0hM0h(2t?dEfa7ON0~3&2I&Xc*2 zNC|(Eario?1N_g*Nrr{^`qzoHL}CUx-DFQ4muPwI%VO$(Ad41l^rA^0bGyhG+rP5+ zfeBmBVV$1cM#V%&qCAmKM)&*i#D^%PZ!t+N>RvOUE69@{*6nu8>*O76U#y0&6~mX7 zB^(&Wd|PDUFY}}hvtKkygx0(5q#<3Sk*;F4ze16>5GkpbDz;z(JCVv1sH!7?j*+Fo z$CTMa^&cJ^q3qLA*{|K>9M&X|aHlxD@7|1zm`6eeP*?4so5RQ;`$U9Qh}OH*nv>M} z8Eak%%8$3w_V1<{XQml?rm|>mpR~42aB2qECzfTQxEzTrgU!sH8PcoazN#&& z`dwD-Syml=c7sIrOVjM;fb7=H?Dn?o&Ue|b&$7Gdb9y9l`b={M0&*IL{a`9tqx2?Z zEjeTKxk1zxgjO-r0lA^28H;VXA*H$d^0_PYc?Or($gLfg5*4!D%)Gs}yf5$a_RsPT z=<|;x@{djPe+1;8X6B!_^Rie>eqP0|_6I&u0^dXyVI#%_?roI|Bg3tgs^ba;ZXW1Dp`6NyJc@YF0_#Q<2W6X$RmISIK3&0fmgg^mE zH?(p(i!vpvv@RX>uDu-O3Ed7vCF-GayUNKAAyq)lr$EZDM8NA5I>h+Rv`9NcpP#u7VHlgbA7?M=W`u0#Fg?leRg~XsF z_*(!0tP=u4jlcn{y{mj7tMUFl)F~fo#0-_%h0@C=gw#X(giuD;QKZCxo)pSi2xZ4u z_uz9Ajt|8og^E3g2zxx&Mb`q8;0R(sQV-&F{!&M(RTxtxqu2N(y9$s(wFS1^s;@QF zs3A;x{)7k;68Jol7^rZr%9pBmB7~AFfM6z@s;jD`*UL4!>ZJh)rmp2dY-9TM=b*4k zvFxhdDoEf+OAudcL{)hgafNbMb*u(t@Hs>_v^FifgLyfTa;hm%v#PrT(*3yuZ1pNt zs;ujh?-k1w@{)l(G#2&o9!2YN&gbi|X{Txl7+;Oj_Sk1VOBk2IX(Pwz35SLcBVX&dE^rw)RV!hpOrp& z5W@JZtQuWG6 zZBA0&#Yn@&NG`uaW6)drcW=V06SU`@)j#wFn?JbSPA=B|)@jLRC<-Yb-t7ZEcF(V-L&iI-4W9JrYK_xzE3;-q9gVUVJRCyWsCfIWus#X{tkr0sMd>d_~Cd< z(D-sD>5oxTpo_Fm1+`u`ftVr%m?wc;a(})_f>m-Dso?{Sk?Hfkh~~763)I4w(IS3w zD&{F@(zD~vDWB+P_m_H^n5Wrgra3L98HFnsT&EXvrukN<1-`O;x|kMm3nsd(dMm2U z^g%j?KX_(eK2h3jv;#jQcjMIxpS2myj3RS)GH%wpWk!9B+J-Sz_qT=xiTUzlaN;^r zK|P(M#_HZHqhHS{zb!f3m6>xtp8GaCE*>^#_BGM|x5_=tfCu%wgz&sOvtSb=x$rs^ z^~*^ARhthfc`d^$itc$M(|NyOT3MiS)47Gv^SKjx!L`4p`Eym^UKgGGVj(g4ZObMd zZ5xXlCgGZ>$B&^pLNC@_P%%=*id|K&G*G$+3#h{KY;AH=H&3zLMH&5B&|#xnAQY%u zf)`dNuNu|dK*=6}q2%BQvt@80SQEX{qfMTBW3FAB$!@tZwE(>Qe97_h?GmDpu!|J9 zXW5k6wG2yIg%l0~1#8fxImh5t6Zu~7VYA$I6ztv#v>xiwgsc#{`pj3mNTD+8pfoOZ zgjO)f)um_LYoM;>UDX`!#(P=M_mD$`n={I~npnH5@jhU@Y6sTos`ts=@W_V4YKg(w zAkWXuph8gQ`r5fB%82nj)f#1f=p2;15mgV}bnbZn)#%cLSZuQEM-@mU1hvK7;->MQ z^!iIa7Ze9eyKAtER`AyCB*Hoj30R;d50Ai4B7n&{Zdnw;+xPCbtQnS9N%TowI-tBO z5H`jJuxta^YU4Jl<7R>_7BL+*2Nu(t)#(C*4zIq6AUc=mfw5RHO$dsW%=q&6dQb-# zPJjR}Lk!R_#R^uyg^-coVC_2SJECqNl(?j>na;K2?s&#drWw&iYoO-UH%)cdy=rLp zCkXkr+X?a|{$n-cO3TOxMf9?M{JU|D&q2;j4<{k7hyh=>jF53NxdX6{5F}8eLn^de z3;=6(HG2Lw`i*9B&8u3{d_FMp39AW#R6}$zt-XKNrRyNNmf+>{bt}^M?7llD4{4jm zD_F>k|Af}J>NE!PwS$ErB?-?nZnW1ff$`2AikL;v2BGt-ZxL*VkoOBNrN|2OrZT3B z-gAYfaF<37Gc#t?SzE6cHb?n7qHWBK?#+9T%l<=Uoemb^eJ))I*FW7P`jA9{?N?++ z^!lGoHHO-iAu^L-<{*?X>YaNjvL&?piDZSL`{%n)PT*D@M{CvQ$X1K@)eWm3TgC20 z-baN68#BEbioT8tU;g2G`2+iTohqz5X1O_@eyQqKT`G%-Y7lwi`XW;y(G8^AcBc7z z7L#JHwAeSN-q(&>mTcl)*wyCPOUThxb?uDUk+ln;oI}BnAE2B&2ZDw(rUXnXX{>B2 ztCXJ)C~{k8GuciN4c?UbQPpH?5t77+y@%>tN`CP6i4!Wy^h|Fmu}j83BGK%*C2BRz zj=mCEeu*krNiEGc`+Y##^2D_z{ob5q{jbYV2jS+F57Z93To*E7vq!!cHFoyqohf%E z{y^*R`^5Y#+p#|hEyqan9lbC!n6Fg%(FY_UySjp*q%2Aq9`7;Hq|CCBbo!f0vD7#2 z_hsmBsU$GVgh1#Gwg;bZaLjW!7;tq*UANGgEl=EdlT7aP`ei_4;hV5OL4P3Ulppnq zl;c@~amY^wW$1ot<^`&v*7DU74eiWFpJrTiSyiCK=so2s=@)s**+yT@n%y`y?*tls zG7mZ%YO*nzyfK&o?nf9h(gGH(QBY0kIONLxfp})Q=uYAHcN&wFk5aJMS27R+G9dutlJ8JH)?+Bh~{`vT)TvyL6doeP7zoQpb znQ~Z`-;S^Qr+L_)y*3YY{=E9?$xk&V>At1;Ce?2;_kRceuwDk6wCuk+{Qmvx`}`Z( z!DqWa_jqV=QWu1yyDXrI^K#M3bEgWyr{`9v&Y83f&+pPY&LL4 zaF8>vxUhM}UMK1YKR71MbsnL|sW1|>3ac{t&DN_j6<;f7@Cj!!P-9QLDKgCdOsOG< zaf_apHR8haurPyYlSeaTeJQzC0M`3av-Q}toGDm(7M4$X{mWo4|8uHO=rCK6>hbpd z)K714Ovjb=LBLy8))%o^cev@0!SR>z(Y3tba+U1%aJI}6etmX0!LF)YqWG7gNlon| z2UbEh&L+b-tQS#8Ogv51RPU*2$7!iC`U$32h!G_@sHf>Zna*Vb-d%!~ERv*XIl5R%%fRj3wDXYJ~)Nlih>|#zE0f0v&}Fp zm+L_vCWYwe(=>Mwk2Mz;9M<*JP6PDVp7ssfVk>(Ve$sm=&H;HJi?LLT{Af5C#jzUj zq{pu$4;kVQj9Sx{xKV%Y2uRCwzx2qo4^gZBF(=NYw9kdXph2ETk&Hl>(V9z~cQu$N zGm;G0PDyyj;z?e2W_#%eEGi)BeoB?}A=!b^p=QD!>5l~K2(Y|4j*q&l<5rCq(FG|P z+L0bntLj9Ts#7n1Bv0F%7^xhVe}IF@rbW7;&%9YS($O-RnH5T52NvWcyV->MlTVec zo_jSFb@x{G@KRmev&aLh#S<0rl z;_ZK(TEbNwDSm5nhKQ*#GJ5myS=3Cz;;Gb`7_s8o%1WVu<_K~jr&NLSsZ=(CRaKR` z5q$M@S}oHyS`{-Cmf?=~6}1r}v{rgA^AJ&F-b2AK`1S$Ocbv!fFtQ*FIg2;}9B&Js zd0E;+Zr$LHzT9|ES;1SVqoAa;7{P?Xg<`l+8v##JR%kdVRHMba5h@#7*LK>-iPRxD zI(m7yJtCCcM+qD;>md7<2ZX|*A7qBmtFrFEVGbsa|=yt5iUrIQg=&5~SL8SMgi|Pj*ZNw2Cf6VNQ~_Ienh*Y<*Os zm`Vzv8^MjaF!2-i$Y^*V0ZHC)GS|tNu*Cv*ITRBhc^DB!!d4f`tR|Xo+WAb6GM3^U z_mE4o6cy$Z|8xRc9{yYX3LY2{noww1!Xc{z9>1zSjbDpi$0n9iWf0 zs-+YjsWXdzENcrzO#u(E(_v&Q1nk?4%wFmrN1U3Q*c>5U_Su&4+CtlY#(K~tLWP(G zGFwuxu&ttA6@-PVjwk;2EI9#QHh$;_o8~0;; zH~|i?Fx_fuAaOm94^2^hTgdhezzcoMdJEqeQgUURuttVrdaRuM&|iKNa+X}iTHmc} zp@~pq6`B8qJx-&832t{I^Uf$TPr(YVCV7F3>7#FwCT7nOOO=dkSJVmc z7Fy#v*@EA^!ZBzR@+y9|CI%eC`J71rgZI-RMP~DqK9WtxNn@jA`cbmxB%x;T+oV+2 za*!ctxg7sY`P;kMD?XT~kH?xO^5D721bU9RYWirA=N!sk?p<~KQt5g_(-ozYULWsx z66fQu-)POY_mPgI%Rq0vWZXmmi{1EdBu4eqA0Z$SNNa6qrRN zMIx12!EFk=dgQV1^g*<(=w%UUc_O9Gj0e>Fk(qK+ABpK`2S0)cP`&Lb55+_ma zoiyAaTNvu@b1*O;7*$Vz={M-|6w>(}!wtFjRx>q|(d|Q$V9P99$3q-dI-3u@cOV+; z;y{iZEGYi%|B1hCD;Rqr#Zv<8eL0Z;R?x7Jj^UxKCoyTunH`YY?~MC;u~8AU>{8s!YF1)MZ!hZX;?1qwY}FVI9M-t5x9O%(q&@5{lvAJK~0xxW^*d zU*E#ltXMLyhg%+X^n?j^zsvp*5N>xQ_1cpS>(6E-b#2WXk?zct90(_GufUnqFmiPF zyyH$w#<>&m+%PMXlOmPi zU&!vr`N)}x8C8ls?X@IQVn-HVogM4nJxb=k)m}cSG2-_?aR`dB|eR}iWwO%nvynQURS6*qi>l@_YgbXQ=8DD*g_!XgyQp2pm{&ZlR(r}sF|$FDj;Az~8rV-!!Oxl$x3~3NKZ>C04R;Zj z6q;1nQfWM+lSx|a<>x0#vE`?iWFge2@;Qdra~)qH;8*l>>_(nL`crLt@qs z*wUQe4!Vxucr_9;-X8c1ybfdJLMvacQ;n~4j&I!5d4=HKiezLmLty!04A{f@lgB@m z=*6FssU^4YGsiM(nDKuPpu`IJ>Dng0~s7!Tc79tMkAhO{Zh;8N!P zDVA4LtWElK+Rw@9URlBgd%wU$rU~dwraP>slboix;thC%4R{_ITw~7U*~y^e%{o^o zJ!6xR+mcMLIw@g}(7Q`nrpm@G3~9SUeP&Eov^5`|{vcV-p8&g!1b>Otq^ za%bC9?xdhv_d`>hE$56L%^63{nWW8`md=?q-32NL&ByMVStiBeV)VMH4D@kUTt-p5 zLJ|HI`UoTBFm7bGq~s75rpIRCloD1^;?gwl3I$wO=iO>J;b$;DD_vZ{{C;7KxAKC| z-GxVX3%-vQ{A7$_J&Yl|sdsL1c^^dH(4$ftDh?askUEWcLb@2pXc9`j7{O%{d22D! zZZYc7VtABE6!T)>^ZH8z|4Gl%Lb<8M_?^Xslf}fj#YkLo`cs@-8!SEwZs3&0d+nXv z6ugcce(mtp(~3A{H`2JK1w~KMT6rm}sVGZe$?ZVom2`>qt)*fvqx5y$<5ujGI#}!O zoSW5rCuXVYYeB=PX@$nrNhk`o0lQ1ETt~fJ&$Zk@dT#;^pS7K>vRkf#B7*SIn!B)o zil^9JtdM?IbB$R(23I{+XV^q$_i6YeulRWb`zz%YhI3p{7t9kLDzJ-vyjv!2he#T` z^QPbY16^m|&dT_sdqqu&j{z(Q4&0z4dHL!ZJ%iCCv{<8XWi)DaF)A+TAQ7lr6+gwM z+|q0`w|IB5dinkru9-aJAOu?~*Ger0>;!t^GJ*Uy8bCg(4giS_$SSJ)L|1JBlo? z3s&|D7Kkr9xeNc(UsH3-GT;!FYf`zUy$*}ET+mw+;ai8_Cr)l!CwcuK21PV!@|M7U zy^PLsf^LIEY~v*=iS$DcWw&Y0>0M8m4Z3uz>1AR`jduEh4W@xN4Bg~B62wsTd(1SO zO!Ffq0KlOG&ogSh{ud%tSJp80~`3BrQ0rBl_kadn;tCnmWk= z2o;uni#0ILFF>fuE=&|4hy%6@Ds0uFx1V6B_wK7gDkiG$?f7YB2+xWqQ#-nLqJR&=u*G~ z-p%^}Scd?pDC{CQ8XXm;7H%~T5-A{v*27cM!F5a^9^-I5d}y>|q$b+YC*h^JNAwHo zh5HYqvd6K|kcx*G>=TbNn6A<=cf{ch^cLL7M#X>nlT!ON+;7z$B6^L3^NXC z;uK?v4a0yb)Uq`;Bcsp|t?meQ4+yRx8q*wm>;X?@fzwuyF${qeFcIo%yETNNI6{CI z{xNovL~}Ac`E)mIl5oECQ~4%g2;A7uKF#|Ex!GZq3l8gr!+Pt*siqNH(P6FWU{4$g zZ4R)$HqlFrTNV{XZl~DIrw;H;GZ>Mvc??7k0PG1vY4LClo!v_;3(iEGz+)Y%NeAyl zLn$1gy!P-j$4J9d;K8Z=)d?OIk4R3nhi1d!V!NRDD_oO|Or`*YI@^i!#brjr*#L5b zAwWlMr(d>II6YDQ56lM@T}l{ggNk1Dw7FX5!=|s^u1F2Q13-DmTfzzaaK;tb4DmhJ zT(@s^dpPkZd39G{C>(3@SuG=ia~%q_Lf9M#50FI*2|F>fz`ajo#l`b^qx*5vCSn&H}F_1WeVo z_mhsoFbCKQgcA2bbb(hiK1zemMv(Tv_rB>R;6d0)Fz+wC`$LENp?sQ-*Y`&Q@TXR3 z(R!qWP7=v;say_T0alDxs~=eSju^eoFW&;Y4J@Z4PKz1taQZE562kW$s^*TnENf51pW=p1z4Q(mtbnf+Bgu0^iy|T(f%DsTZH;3pe|SXe?NL zjC(3(^nS(;-d#X_&1&fZ?GHIDUt`5Fs?b4cn)=s$%gll!t>0cZ-_HlGA3cPAzuAIw z7@`WaM|pX;=K5Rw0OAM5NT*s!<&1sh6q0V7A(UBhSjm)PmdO`mhJHHpUccL4XY6bz zMF(Pc?wS6KfW`V5pW?&`k(t}J%43(NDx4Af9|Ozw?L^-G~!McoNVS=$<)ZHc}Vw06+O>bB%Sy5P?YMc*B%p=^2k2G7JgY0FIT$)pj=?n71s^*#U4Hj6_2%^E$5!`|E7cs43I?~;n~=(v_EZ;GJxLU-3uXt} zMbQw|t-bU|ePy^ng!M>^^GvVbL^X*2a=7N&o9fd~&wp#vy7aD$$1BULPEFnLDy2QS@{jaugR|t+RV!5z@EypO6d(A0V6d?E z?&;O<=Ot^eE_TCrzdUKZ^>_aJm+#*nuHN}G-~X2E94O!#3G8{}=zJvZNP7UMF|P65 zF%%ys!q$H#2H_<+YPruH>Ke}X^|yUE?I#!6V6SD*Jz2FmAD+6m^c0>-Tq&_RafGW# z)Y978cjWY+P?ghd18>HLy= zr1N1DK}En8^rFe_dr}Xs%~WNO2YTP#)dTjZB>7Cbkq@lI%BajT^i$Ksuwo%F4t=zT@;G-K$UZ$T zJ(Mk(uF7flo;WPc4@q1Oq7=3Mls2 z1r?wIy3`=~k6H=K<~+$8Xg1Uvl6jl$Ujk|neK@W5_6)pViV`@=7AgMeWc--)b7MA$ z>>JpUDIvFmUiZoX9AK&qHgX?SgjU!>kAO_R7zo^*loyF<(h79? zr?Zp+ZYsP0=!g`lfo(LD^d24_OMWrguEBp4HCH%PtN5L5oxBF{r>bbvhRlxdGt~H1 zk_34>^q!_fKx7%&MSJG|f#wEfa^eWYA0xW2GRU_dPddb~mL#@|Q=C4Im+DFwLT+h! z`1>aGlr%oLdtdL(WqXDJ%iv&JDCTjNmD>gVV3sCjwz62=%n8}!Tzc2#fmCGsy=-zQ zy)oe=`?)tFU_kF@9-EEjZNYZNk74HBS^`8IeUQy*gY4p`n$l%r_^&GGbw!gcWAolH zxVRQdj}=(s#M_yC!9GM0NRQJ;+w>EC@tt_2jfXTS@ znCWiad_zh}us->`VnWbfe7Y*x3+JgQ!Ncl^}pmnndJu5u}i5}JUuWU2qq+S zPg+Q+q~~!pUjLTw$#Hs1>ABgp*0J-V`#M9Z?bn!9_=e0l&3LU`JlfNamNk&TDVw)# zW+mYv0{-x6ol~7TnX;2zqj*-!fGEmxD9_ZabLLdKnrLpFxsqLfAT58v#QY7^&|vAQ zlzP?&?D7FE$xVuT`iN*-sZ>Gy2aE|Yc}{+}dwOp^kw2@b@}!UZN#ZZjG2+8Nh07v| znL`n>2e~0dVUtgbeznUQ{HPkcwe$4hufpPIG2CNONR*mITe;Rq)p)FWBNKLuU??d+ zk*IFR;CMkW=5y+lGMh9_9wwO5#S8%v!6UE*eaCvzHhWk28dwD6FBb8oV-{P<3zk)<;h)l(0zgj895GL`_{pLqKpTr+g$a<^qtTdp1sYjp*Tl&~1$Gq;)MoKyENeLGyUUio# zR~>fhiH87;KsZz0DDO!MJUtc#)N#=O+|_O14S8xv;H6BdF!%Pl3z5nu0+r&~ZtFiW zK;b{@(o2EXo%EesPp>R}S_DX( z3#BD?Fb{`diH&BoVNNt_fkdTrRNUJZ6EIKQ|3+yUPd8;huEXE}1OV3*P0&MYFm1gNt)@eT+}ktEv^K>MB(@&UUSA4 z7`=n@P~X_Vy=gUEnXMK#N-xHA?t&>go$LT^xZj_nV>%y|^c7{>C4%SYYZl~CfU=L3 zGAI-$>za>R^e4`vm%?;q78Azbs&+{SOO5lx=a0MNh#nzAK*wrKow@jL>O`uNM)ubM zUR$e4HveGP`#P_L04MTQFNJF_JkSM_?9p}G+>_AHdd=ct^!jMd=u2)J6j! zTSCh>Qa9@{PZ)&@#`J4!>tD}`Z&&W< z&MqqdZhiA&^ZF~@&p&E^zxeUu`)!u)99U&+h1lF2jGB8S8B(3STyrYA)W8@c~WWoiS&8u z`#JIegHnkjLOC$aH2xtv>{rjXf8r){^L^uIwp?<-Y`~*zm^fR9swYjqrhDV(pk66e zW4K%2l!pSn@USD7bimopZTMw%h%`&z(!Vh18>?3dmP_a+4bx=zyG}sG^|p+O9keC6 zQ|pXwayC8tpeSI;{79{2upu6`Ok0B*?lQYo(XWr5B89jQy3G6l0eUGH3?l|lv~=s| zU(n4LH!K8ixJ+OCMAJR!`xkQUcrK4VYV$a5` zM|SJ;GgSgltZJ7^0_`Ejt1{$5p5}!Off&6M@ROg@eiH5ob$6;Y1(gp& z8B!#LEj0$Z%?0V?^r*|^D9PdOAqGV|`=MKQu^=iry2=UZ9PRBJC6GcRZkVQKP&5bL zVMipS*S@o?|5wJguw`*-ZqQT_T2hp>(Y}ux`W>)m5$^ zcV11$bw!h=p(jFt($z5+zSb8>%t}ydpaRaPPViHYjk1?wx}*-kLJrZs%g{jq&V^JV zfo$+z&2VjDS9KKJAe|y_$nk&;uy7jCnoWE5GpdH2w}{B5NABD#l_^>V0nT6{oi4v2 z2(U{jQFG$m>XK^jP)w(f>68nsg82?ENDXw#dD5zh(UrH~ok)*vx(5^417BoDsYFKO zFVO`e!TP22hU-1w9$b_i@*~WN0s&E34iy5SXM;0n@->!f0U&~5RDKXeGoU z-4j4Jy}46y6e4FSQ>s^LrOB$I)I}RvRk7O`vhCw;hPu@W^pK{&fiSuC7HTleaD_nI z%_-6kSSDjCUgPA&>QV^&y>!UPX!=^`Cfn74M`tz!g`oGnjiME}W5(x7k7{;}?drj@ z%eGLFNR#8MAO^I@<6DY>52dzJ`1SD63FpeM?YyroE1&#H)rq8X^2f~WR+5*Jqz5Rj zOc0?5iq^C*MzIqd?pGSqUd@6}pGW90lO5s5499hXW1Kvx|oo0{GlK2e&hG{phP zqXRl&m!h@-5h5VE*Z{d*z7kjrhVZ(&x2v?u*Cv#%jbc{-I#dXS#2RrUAK%Kk1W2v8 zxxfN>%A0b)x}fPLsqaifZFC|M=$N^sNvF;%A~iFpGj4fUNz+>>#2$;HA4A4Hc39Dy z9W8G?NeEbr6$FcVXYlQRVP!V$OQz4&ac&I zLc09;e)4lnSEKd!7n*)!>gcNG&S~rK9{>>{L$+fFW*QsAdPgvV_h3{!fu&!N< zofG%%>#hMWm*!8>3gy6$EZOEru3FsxZG51sB=~8iv(3nZ^|)#E?;+DkRL#l-C4y+W z5lixgJBPu6*@`Dvu9S^`jIN?dR|B>cP3bD>(PJA4DlybqV;Z3}nzZrVDV_Mf|8ej8n-1AEmrCdZ0?{5?%?H{iIb>zBeVxdb+i4Q@gLjhLV6{RwK|X{Fdf zlZEwY4Gifq=xTlRJ7rx{`80V;3&kx?SwgoxgkhJmMb_L@neDE%uBB#gRSIJ}YUz68 zu9P~6KhNAf!59*T|C+R9i7C%w7~G&^CoRUS0VVEEHXLjlqkn@zrN*_d-N)nO)xRg`Z4RWZ(zAQmv`iD(F7vz`0hf?dNUEB; zU+mNc-Ht(UhD&skVUa-yOs~;Yxm=Y9>sc7o089s`2pWR|Qj}7d`K^oD31IDGF(PsC z>)FezmP1dVG1}Sg*26_gBxThDHdP-QsRyj~1r3cD zS9ts@>QlDzNmDdUGo)MH33th2*(dAxW~%w$)Z*+O^-JH6KQ-rb%xHFbw!1Zmy(;wE zDEn7Ndyykog|e~u@k4BosP@&xrXU}fF(vIkV7BQxM>+TKVY3hFzy#iE3}I*EBLi4S#>Dq51B z=p;XDNq(i1(%+IYrjz=vCG|g@v@b1b5BKK3wcKTerie2+kufb7S=?Iw+L_5c>5@E# zv-GSJ#B7t+>{G-X`_`Nb#9Z&z+^fXA8?AYFi23oY`FDx;@>=gbBxcL97d#=}zZy34 z)A)>RYvF%A_s3cvh)&wc_VN5jd?;j8bZ%g>?({==TVjHFFr$ZrXe&N9(y!Q7VgfVM zG-*>cAJ=aygC|;An$+)!i?@xvb0JkeG5Hlxrk35-z%;M){*;+DR3yu8R%-GYDj^|A zXN@FXDM`?I>O6YSFwr%Mu|%(qasE?i_#ipv#0K|;iD7EM^oLfifj@;id*S#h!>6J> z72nxg6wTp0)7kkkP9Fxe9B-ObovEl7aBC0$i!+&=-UDoL5s)BtvKkhrh-=M;m_(rx)|<=Je<-WjCBNTKbu) z%RW4kZ%EkfR8-`ug;n2y%#tk?OJ;dhb}5-`a{{6S9`^*~&FNCn`w zTG_pz>F_$uFsjD+uCBAvcW%1o2Ho!>&nN9XT`7>>0js-iww)5sRZ5^?OQ}!1da)HS zS;J_u^EdnJ-S6HTYx{K8hJHL@*_}4mJ*i?G?hrLDOn;U$>*YPI7eZsxGFL1u7#oHH zuJjRpcAbODw84;d>+WBM1NyEO^;g+NETf+Zbn`ByV61bS=4sD2qXk01CCi;sA@)eJ z=pU}v7|nN@*5#CR$FjdMmKy^>2VE987okC2GN7Xg1pp6D9zi>9MzZQnj#vy^z|~wy z8=xf}gxk2#X)P*CVpHXcl)MGh1(F1+UYA8zNhxO&v%F5;*9Mu=vP|$Ic#aE(!90xn z1NW+|oc*Rw!*qZ@zvi<^IeurVtRcA`G9@frd$J28h{%RJgOZ0lPhel)L46XZt0~h;6);ZI|@JXZ3 zvM-lcaRAw8V}AZjyvWlb1=#E;?bfR1U~U`q^#KYP2z4s zCJ9I)8P5@U4r0ENE$QxSTwtfnV%Fk{R#%@eBI1J6t8ZfenxK^pL{0EkibU>6i^>45 zNWF1}8+ODr(Nhy`80K#d)G&;B6F;vRljUMjlZ7~eBom$EZ&FT=5{1w*%*|>LPBR9z z=B+jWX*0~eb6sT1yg-7;Ck7a-aUY9?oi@!rn*zD=@YY;OaQUD16yuUzhJufXHJu2XisKg{AXmlh50HUfZ8Ia4>C- zHf>+FF)2ul!~5h4)R%@vDhb)!G6)gktfC;zjv=X?2N}n=YnwYAn(M{ ze7CuO_3D|Z{fd&ZgEuxz{Ra7gq%I&omfh!*v|65lmG8HOf?@|tnAP|ycVtH?elh(i z6v@fw8*%2ny-O@}Bi(a9YRmg1(_u|jnVT+{#LTA94SmKSL*8^5JML_+)16C__6IGi z5*ADRgYY$soGg$1zAqCuUpy189-*SSKNxE|--S?~qbz0;sZnirEebV#E)jkeKDz&` zG2ckI2C%k%7{m9Z>S5YTCJ#3D=hyh@Dc@(I`5E_GmrG1az^=kKtlB~z-jVVz6ZUNY zDTM(&iJNM%g)Gw7hnIJ!`Z2Oua3zt1!LKi_1BFf-=;wzbvIT6Q$o}56l`xk;VD7<1 z^fklz-qo&GCd%!>n-cvGctMQP)DXJJw@1@nTb;?x2PGnb0X$Q47ooRIX_)3t6V2+0 zl=TcYzZ+5U1~bTlL-szqyn8wGjnjxw;clO=o&9=SAUwx4n#{z2k>X?tJc2PG%m}az zKZ>39ij0mCY8(H$V{&Z$Yk96J6&YUe{k=S zWE*JF^0SapL<&N7g{@>7C22$)slbUb7pYr9#=S-y;$5p_B40Ef&TrJGokV$17!LI@ zauv=p-7GV#fMAiKGIvUPc8Mt6GcRJ+ChbAU_ydS7)C1rLo<8TnU2Nz(DaV!8Iq!Km zYAV3pJDJrq<9X(M)hnm7y_s#Z(pC&);mx_l+%MEmDq7Nyf>MTW@bZjEWr&>gwaO}Z z+qk0jBVNKuP*!xr)p*6q_P&RER^hVd7vjV{D?h(u#C`sEcSm)UuZ?CE{cQZAzwO%+ zi{A;6x9~6kp{=7}nhzGGRwZM-hv>@LOulQY)6jiuJ(zxu{W0XCck~A*p0iJR>o@d9!maOFE!*zAU-PxO?^KoDl+71gMTKx--j3!r zpVNAzCm%jBJDvON1)s0ua>nbMX=ml@U(}Ey?mI8TP%XGmO28CeIwai#v+TpA@9^CD z+ZF8xH3G^f&!0QBINBrjW0iC2iZ|5DnJ$*Hym@n8cVwIm*S>b(7Z^x=@p0KAVM+CJ z1PH^L;~e~@Q*&#Rrcj+0ZY>#ngOs3-r8^gFsXT}H_SXyVv;iT-ghpY;eQv37a843@ppVb zA#qQh^Uz1-$;TJbv!hNErU~J1@ouYLj`-!4$@QUm*tOlgE_E4=keilgh5bH=`8b*6 zUYzk-O>!J|KHIOmNrC@{@Ra=?u*}VPP5`pC#MT`8bDwUc@s{W?WH{3dTAV-Mtn|SC zNDrngWO%?IN{KHg)Ml?md_8U<*9MT|Nvl!taFo+)BxeZm^L*NkfDi7KGK%FORXB>p z^fCAm8oz6-LE?qZ4VDcC&p`%Gn@9X=Gm*DFz0X9QsM}dIC?e@0qQa!75xy3mf_{Be@#dEN^&A?%Z2uB1_B+D*p5IG_`v{y7g8J}cSt zDTj;DxQ&cx?|!$u`YE>fk-xcj0rrb4Ze&KtKXd>sUKD52(XIF8M*9{ zP2#PQZm!3ddtdoFN27PGP0GL6q*=t2Tf1yqF}s}8?j%H`Vw{rnI|6z1*(+Gx5Q|ts z(rBfFvkN9`^^=qgGcT8wB9?H_O9;2&_c4|5O8Id8mT0(Zbi%w6u`Z@5=;Dn31ux`@ z&LL@XV5S$tCxU?PA4sL7#k-c^D#-NAMm5-Tc3F}kiATs3&q(uJjCOz7=M6z7A0N2b z&4+$UtyH}m2nA#FGB`<<_HQ~9OGF1-`YC-Aamndm@t`nM{ckVQ&%4l~pU*`-W1QnP7t#mg0KusDXtYbCyI)4@y1K< zj|-hhiFr;D5HQTd)?FUYuW1l6?)k?H7i zK3vynT;bp>vEVepV>*=wI*^*BB5eTM&w16pPKdfUrp}^w*bLhTy0E!uRv9TW4v2?y zMBBRQ0UbVl;A1|0aK?lOS(;P~*sYc+6~=_@j~Kz2j*L0M0kU{zt@|$jSwnXWOcH78 zD>D~$Og{FL`@A4;H2ePCH5SHAv#ktAX7YjNRGmt3jW_{#B=swn{#4RLW z@7cxJsecsVEqs)$wNq-9O&K0PSzh2KRAVh@hSxX6qm$xPO}z!jaiU3`{6Tm)i47%H zteQW^(|r+HRHxPE%Kk9`sWUIG3>M&Z=dPe)9ma6%Qi?B2d5bBI(^5XwD5$BNP#Z;ZKl0cNP5=th(!m>YgB6qTGV*02Gh1`E^OCSd zq_MSRCF4Y?VPsbv%8MeY{7o1{<_w-^ht6}LDJZAYlI#Sb08c?ex$tPQq;faJq0X=P z2n!U6`Wy{m1u>L%$lTKxmG|)?RwT6Q)q*p?PX@AgRgrP{pNFp=m zkOp3X)K0{4HCxyf`K&jTgiH8Jlx3+KyCj}hh620phG`^Y>WblZboIs#-40N1g1X+v zPKz|01BMGCpN@jz1xX1|429Pe4?A>2)OH(CnW|(TqV*0^xl?EfIM#v_tZ^kwE%Gn{ z)OkRunc^tLb*y;aql=E!lI|Wh8gGw*7)Fzb-ZH0|a*r1I1=!9XFoh*x5bo$JtT}HX zFTB!jCuAlXBR}B|QAqHK?r7F}8otX=Ja$(-xg5ooEx3T|p-haQ6x)pw(!mSv;z>J9 zr4EV+RniqpLj}!?#V|2#6yZ6%U<4)Eii$RPvzpCRGEG21%0#U?1>!*B>Bg7{ka*HO zdWABcMq4hOm#7698Cwf0ZmJi6EQ0Zx4NQz`gK#;B>Qjj`hw8l^6#a()N=r|ayV(dX zqf+KSTDgmM@dH?C56&g=xhNqrMP!RYDeZJW;f|47#3kXe#@#}7c9@vXh^_=w0bV=; zuP}D8M)fgh5ifp-4>p$-pTi4mfXl|+u(eEKuj>Jp+j4p*yI8YPIGm@r5LJwj-e0`h zHN@P)1_wlQ8wYk_b%&hKo|Ku2!qjkUPHNe|$A6?=nk04AZ8F7nK&?yjf1MP?w)%zF znOI1%bZXpRNEfy=Ch`2cM(gqQ6~nF_kSU@Hx7OLS3o`Qb7u&89I|N<3{p?0J?IJLT zUr};F4%mvb!D~+WF+0YNXE6{2tV_#16SdKqN?0Pd43KN|q>NaXN`h8Bw>k;x4+^%uu+whHm;xwD%2R zr#d~pL?zzMXF`%Ap1lv4p7IKFwt#@m4lt-yxkcWbcrl-^8JTdoTSgvnt?&UwZfyBIPVR>P# zdAI)LMG^C3!}1eb^HcxiXAtk@gx$OMA>YhziDgYJD03|S^t72&;S3(qwX=@(d&CUhaHdGX^QIw_ptC0o+uf6ZrsS~`#Mlr_CbWhO6{osO@lUti z(%UN=nG3c~e~bIuvLW%s65ma%b>)Xl%eBoyjfFFXV;*Pcrk`A@PLoLFLUF7@1_ znr)L7otb2;Tzk^$n%Yw&ETzxuh3PDiolrRl_}`M zC5!|mvXK*08Ejyw5Oyps4ORUu`-YWIEVc{W5212?wFry%Zv0zNfb45*3&*!X41D(G zAYUFyxanEBQ}5o4xuIQr+Sn~64#hfek^qtGu`s(hknob>5T+}Uaq(Pv5c7%?TmarD zj`I{U1&J!U8EE9H7E=Aw6_6VXXb9NPHtJ$|l$W3H*-b>->pAQQaV0-mfX9omPPPteB zqOQ)X!4}X<(d9T*y~@t+TD(St(}VO}^d>%xr!y35)$`qL{M$U{*F<+$w@}ejeZ~}| z#RF5IA=_w)AuWW3aI<~HAtBPXkS>>I=6}i?f2Wv|^8e)4n9(y7gcg{O)xcSX#-l3d#9@+l_o5)EQW1bspnUNpfE!A_g!S`K(_gFi zr(P@=v3q|VpJHm&yZj3x!E5CPALn?DGNPG~{d#W)o8~>>`u>?znP^FuBU!*6mahQ>5>vjIuj=yhFS# z7DfdrUhfoMaXliJ+IdO}W#WWPWi_271tWw71n@ej0gi&8tw4_j76@WMUYKGkG3?xC z*hFhfaE5pnV=&+lhvEjMx?U*ox*y*F0M$iaKmx>^!!leJ38QhAdcrrn16N%!!lk@k z^Vmw<-nO);DbrF&0=dgnB`hjomz4)5j>~keNlOZm+zF->-a|J+3*)!Sv2q|fUDdku z(1^%h_WHy{YVoQr2d-FCa}Ur-GL?~tbU@rsY}k{KkU1eFSv+A%ojQ@Kc&;si#iLO^ zocnJd)FE_AQUQ21K60N&vvQnim^|9<-B@M-tR*!qMGxjQB=i*?zKOq9)fa(oRrOy~ zhfn+6l89s5f|2V}5LE#wMl#}U%F8-MZxiC)ov773lIYi|RE*E z8G>qOq;3hp{~68(NdrWHklVc+s-``i;(N*0L(C7Ch;~Kw$pA(nBQ!^&kaLtkV*MmfN$CcMG}xce?<5$ zHd?hcu(p%J0);W98Is95)V}M-A0YdE^AwRbcMPwXq3nl&I&M_dJoCMA$dSb$(cn-c zk>Hc^G+7cOS5;&j#HdH1eEhQGC9#`<=AwMYNM3Xv01SDyehcD}L$nG`;BOmdBuk6` z`O#&PhYA(}`a#2l_sJVyTb_|VuZ1lPxZ}HOFpNp zMV5;YLZ#YlHTD>%q4o`Ib$o9CP1@+B<>Df02*@O5^>4D_%x@xyv8N3F9F+VxA$(YJ zFZOr9TNlH8Gfr?{(qXQIcHxyc6ClS6OJJ^1kAgZ`k-^3S+AbnwWDzk42j zC&j*(IR97H+!JU$SpJ}S&iU+S{TJu!S6VG{;xVi&uL{x?{Jd(Ir7-Xg*jiqpJ!nh7 zR>G}xmMR1VZw@T7_1Vr~A1ae<6!1SU8oJBEU%1xF{)D$9F6%&BuKd32x0>Irc`HNl zVo}(x^0(86zgM0-L42)b6L2ti5d8DWUhSLj&y4Smow)N?i9_(^b|B|1#J0&H+g_$; zY^}uCk79q%X9@s*?BY%zxaP146m|%Q!rRjpahi=xpMaX1f>W7YZSkF`>N>*a>9b7- zvCV;l<90jimSC}v?ss8VWA9g;ZSZraVjE7;jqxTL*-?hR3G4Eaa+W906M6{dfk~X1 zOo59IG3z%fHnNmw8#C~jdJZ*Jfi_g!G%kT6~wW`(U9uk z2OF0vbpPWS3mpnB+O4V3|1LLn%^^$r3oiZyi)TC%62f3ts-(b^#$)6|n9$3WG;zp8 zg830C{&A&|O43A%-)`|2ZVAO76R@z2U{QF>!cd6p#DvOf$X>*|1yLmnR z<`nWcIS<0bz`OF$Y0U~~ zv_Y=dWi%=%ZbOdUa8NuiJXxf(VE%rymMRx&4h+tyIwS7 z-L9^Q4X>m*A&8HRcdAw28M8MV?o?kM%t#BF%av~a_W1Jp+L_tIWk_z6j>Xia#| zv-2lSu4b9wX0j!f3R``NvrMC!2D;b|YkOt>t~1Ds`^2?A7@vZTSqxI z?UyHJmz!g-y>Aorntx3Pt^U9+3t#ou@XyX4F%d)FejNM_f0yUR9!22=7csX1g)(9{ z`hnZBn6-gL*o`*rTB|yh5#V9tv{D4oPQ3*b`5F@UG~aSfe7oNHR~t=ieMit&m5G2x zc^w&(k$_azho>^oA@V&JvspEs)OHW-B*8>M%eKhh<*ZooYTWaha#+}033e$be$*#x zMB?t`qa7T_aV*sFAO48-Ce6Xp-mD|i3Um(NYJo{*zd}C z(ySXiqEhnyeya3k()^ZIP@0lelamX#@kddRWp*0i&FGYV;aF#5}rqwu%_kQ1Lt z=|@X2mpv%mQ6X|sOXT&+UQ8f6uzE%E>BsRCP*BoM=&ba|?bo@4LYRJUC;xu_DPp-8 z!s~tL^^2DZ2oD~82zI7D`{m9vBHVXhDupPqyV9kLar@@n?lHG8Cx79hx5~(&EYekN z_GC|Bs;BTh%wht^H4uw2_DgUP^GC--P1TEWypFEreaIb@2afdID>js{hz`QB!6Ql& z(ck&w^^!8!0kR1HOHd^AdY~|{^dSDl*?xmnx5P|MwqqN6->pX5;OUs@x126faT{o}-V+h^Xw3w7a61Rz|pyyZE!T z0p)Txg{v8C$7BJHW0R;1sQ{3jym^;Yp>45UWdHCmenf5{K;)x;48)V6;-IJo|DLXD zla59s_)hh+L@WgnS*~csH(bx_P{Xbqrzsq*0PwzCDsciC$dKQ0Rh#VK7$I}j&vB=9 zVQiN8c-|m4RK?GEqgI>E_xUw8qyy2N_Cs?@iWAU54xl5KV`}_XTHP&1v21t{_j58h ztr(#>E(TrXy@a@2cSATY0AhRODzH^Y~IA6oF z8wfYJMziUNmXt7EEx1lU@3iVD7jPhixQ*jt0vt~}FlqddwG4;|NPa3q^42&fGxD}j z%T-TrD1RV<>8iy_zcJP+Wl#*SXJ9J=*z4yM&8Gd$5WH%P-}Gr}w6#ZCt~DP?BB>qV^eF;&KWa{m6?pEWv?zZx^>40GSO? z<@G9$R+`{+n&2y)gFN|7?j^uK2f!S>@vYqP8X$UdhlQe=`=E~&YR^(orJ#k;%QHpaRMOqA z_*=JxtSC-9<9weGDo4G}TQjGnI@c#^!OzK%mjFhojqhZM{Ad@VYn+d#Agc zn7vA=D&JH()c2`U7Qc5d0K4M`6__UobnMgr11>4mw~-jtbc@R-Hbl|H2_ZXIBh!N zYMMdpA_WR$IASDi@B9{G@!S51L^01E*FSO{hv&f-l)nbR_O^sr#TrYv^GTcm5*)Us z6R_WN7nmW+%~L@I8L&U&@X?^t7cNF^IeIMd3;!N}Y}2Q<+wlZ&h1f=KnV?N~_}OKlFHWRCy&}KIAy2c8uQ3D^-abxtD!|CO3q+s!gmy9$JpFbb zzHN;V`%($37;b|V7cbS|sW=5-?vFAL!BlU6W-@%(LKO`ZC;)C5$VI}AD9ruDQq#vQ%gB=p?> zki)G@+N~w0ZnO-xI^OVS>)2|Yd;VLbc9|nmrp3~~<($9cKh1M9GtI{6i-%=R7X2uW z8Tw8n?C9R99N4Nfgi@n1<)&a8)&|U8*oW{dy1ZsTj!Xruyab^X6;*n{&_5%v1ilMlZG86r;`v`Z;=EY&%+GD$T&`L>^UIm_FJ^ z7G1j{Zp=574n`1E+bnaipWKF8C4xbN~t-&JUTpkjZpW&gEH{Wntj!)p3(4)@>M=)VIUh*BJ& zTMoot8ldahmN(cW4-cen4BUkdW+)D3Sq|o08ssuk|I1GH(d&D#F?cQrZhtUXVmVY6 zVbbR}R8=z+qjl!d25acaf!$;1>!+5ln=ZY6mhw7p$?RXCz?JORub{&lv>s7*Q%5!U z))wrIplRpu@JNJ-1ITcH4z_y+YBeGH0%~Nmp`vJ~r`k#U2px^8H$E$f_h%oyG&S;B zW0YA!3SXjam5@&4j8xG_IeJDHFsLPG-1qj8zfVWA-Vhhn$9fiZ#XLsuzA@EXGEqW| zftAii?!t`==w}d!{Zi?>i(^HaM5*kNmnCGV(rCfNDCorr?#oIX-&FQy4SU~EV*`z3 z9!#=I#^hrr>?dA7Y#i-v7a8!d_*O`kJ2|TSLfYUY3Htyu6g8EFpY#urxBO&S?ygrT zIaEv+&n$y6nSEseJ}A@Zow z2|>0K@$ZaRcZ>@<1ymoOh^3st(oS~=*V`LwBLZa)sDeGn=Nqrp zCdinqkItPW_ZO(}lcTq8O%i$|vL=k5-7?7gH1e?o6L^bSYzgDEe>;BJHsyiNZYQ#f zEIQmp*~dXragcuj5dP4Us`bN&C_bS9uP-CW!0W12;ZcKCst$SHKJ2FU-N?*+q+&45 zOljIrOHhFNHX4HjM&7GUoXA)1d+s z7h^Qf9qjc%uc&qg*JF9t#k$Xn+s8`lMMW~W1a)+kCF_K{c|V2oHG)V=OxVkG7HovU zciTkDgDVG61U|=jPuI=<3M2tdp=Fb(3nN)O>{}O9-(7aEKrv^}r?q#Bp{`!J+;ki|q2& zi~}3QF8LI36NzwUBuwAZj*NkOnt)%-Cmm@hOWlrT1n|gGT&%4F*|-ocuFygNo5jx& z-k=#bckPLr*xL`#jB%mTKoPr0i4kk!**WfaWC9{Enm-d3uLeusWbvxipn1D-(f8)i z6VO9`sS9pF$`c&r%$0Qy*uM$haW>$GHGZ@0RQJJ&;$ik7*VvzBvuDY9zkLYp2!viH zdwqb2kE+0Js!ZV4k6E{4p4xn_Hs4jPIGo4XQq@I#0uo4XICFzy=iQ>-I--86a@7k% zTmyOXx8P>J94o54Y2*uU5@kNrp@tY7Dglt?NY08I2}fE3sYK52430@48V&lY7xMlP z&)%HDYni~gR{uGVe?|2(=B*hdBtTVmlRG$4de)WWIR5kDJg<{AHj4~q)S+N1kjNlX z`Gg+YCeZQ1j_McO$T+8#gQ%<X*kBui1W#~x3s5MfK!H+Rg1Z(dTBL>IMGL_aJh&7IE~PD$ z3Q(Z9OK@*-DbQlYA(QXUy))n3nOS%4zx>Er=SS9A+2=javo{&QsGj&hR*P!t7c^B` z#GjY0y|4-5D09s4Xmt&qq<6{V7h-4J$GB^FDc~XC;|CyCf=`e~RC!zZ;318Vrq=#$ zDt-Ziu!(D2Xti_7m#Isw1Id74o5V+dZ^LdbS^f%J9@&0^C&oQTmx#qxqJ^QsZjos;t~V^R#I{gBdvyvCTdot ztTLI{<_HByYj8SJ8WKgQG`c?jRKYwDmB@^(FX7Bax;wH>ea_(}1so&Q*uK;eY)TBO zM-g-6drjPLV#7lMIrhqS*V1GFJ6rh3dsO8d@vhJc3KBd>Y!ySc6)*iNX9@TFo~*R{ zV8>&?$_N$ciC(w%XMiFS9_p=%{M;M4lkt%2lOOjJ=!8l)H6FTzCB6=hR0YrjhtseM z)A>RPh#NdKqmb+G`%~BIyMz(;BH}a_PU+>anT@+*BBjXMcm0fx8%+HiHi8S<%-(>0 zzRbW1s!9z&POb~9!cY%F*Cu75x7n=(Uy?oi%$`5fx&*(Sp=NHC0rzODiQ78}zS%9Z zF|t=TH$p!-tRd*6I|IPp{IMPHSn){^by`${BFMzxbpbf0A>DHg;@5=GaVu0 z8J4O80uQ}W*034&o$S!9?{P{!!rxlz@ow2;nP2YRPM3_~VZM~T{M&oR-3O}4-I~w_ z0lddGg~N(o+J{S*PB&x<`E`4+&~X2f6e2l#IiOpxg}MI&c?u6zuoanm)x0yu?i+jn zAv`F&DVZoWXDFqChS}0z?L>Dh7&R3+G&hbcjWp8x6yCsyi_iGm zRbCgFksv+43gd!3Czr>|mwJJ{#)T(km1==z`k`CKMc3Vx3SY7IquWQuXna0bCE-dK zqv!;h%-L0i?Fth>BvE`C;i@JQZ1`HrxR98TP5sH0A*%V9o!+l6<`o8uZ*i)+IRCs?%!g#V@FQN-uxuED~Zl{M@YJ?dD6D zC)bvkShLTid>(GPAy!irW?$Ypd%Uo@wwkd$&ZqTw>A|E8K3tlZ`TBj+<5k%8(-k7~ z#x6cj@1zjx4Sw^cA!kqDf@|v?b@S%Qa!>#FAvXKZ&A%^hdcJPGwmFP7Z&~Mi6*LlJ zds<=My65~VWck|mqSw6br2JLbLCCY4E%P7Oo3Fxeub%-x7VY@_UT}&~I|2cV4zlN7 zQEWFj%dJHxO@&vCNT@xzi$xd9mKWm5jXeZm(apo}9j6=WKwD|iBmCSu!RE$+vCpFS zVTE^+N2nv~wng9LE$@`D8%Nv(X1@x*Pij)A6R&{ffcA5r^nx2FsD|aBafMIj`%ve5 zE|x=2w|uf&Z=A*6eqsN|2vYkLM8B=tw8Hb z&Gb79=PQEt6hVbB+gu>#wf;ST&&J`hF{xtp;y2G9XV-aOJ}iF^JTbZjp`R&4%6%h} zviSJ%R~M4zT5ZSY-OoN0uB^O|$?mZSB33);hArysi&Uc6*%lsd*#T{gY)6{E?A1OU zw9XZ|9?D$!_Hiz2bn2-rrx{swb?ul zI9RDpz>fVF@vESJTVm0Lq1G1vvBwu-h3$(f@DOW)Qv7dO`jeMMn+-q~z`-&_|z zBgv&2nH7$k4AsN%i7dF_^v|VNVu8;aZTz=ople88qc17J0?Nb@el!k&#j#>-P{)Y% z%V23Mb zCEYGo@VT<#SJ(2)nN4%9ESF%5Wk2m?!R>q>Wta|%(OqUa(9%7qh}nJa^|J^!qt}E& z7ntgu65XubU(D3D_E3LMlix03UG)#RSSH=Fo#DThVW{N9EO+;i^T7gyt^*2oK)Sp#K?d=CEY7y^v!8b|=>BDnq z$hnOaCkR+F3`(^5Jq?U{1v0Fa$RDK08T}DRu|6Vh_B6@iFB#idkBNlGf9^MDXgGj&XYQob0iBxA?{pazDjAf;NhD2Q>qkS*k418sTxu||bkeDm>?3BwoT z_~TpQMUHMXFhaC&N4!TQXNgBwtYZpKQLONu3Q0>%6>vaYV^QhhgYX^hJ+GBwtT=eE z%uM8BMVv4DUo_x{5;?b@afueQ(}ju_Z)!9!Zn$pclg@BoCbdp&kV=Wx!?FF=8h-@8 zEXpzZ+n;95dp_SP15+sM|q(X4+Hon2J%8&A@0{jfE(YGD2We!OgJnDU+d-Jn5 z06poqubg)lf6ZvL17$bDCL2(1KA#Hln(o3FfEnjNi%)p`eG!bqoPeLNWiL&~^dVCQ zpOUAGtHK1mn01OzO19g{M8xD~@gV-Ae&x8SSEChsdVpwECp+bbFws@J8|-HZWlgFh zn8uA=aRx%3L$*FB0Q0Lxu~CR8z7P3s(1gCc>IVxmOiEjMm8P%pQ&-2U*wDdbg2`wO zi6^ASFNp1mV;|<oxvKiCR&b`OE%qywtJ6wFivJ%GM2dG7eOfc0^8Wo#5kxCY z=u*^&XE6e{=Y!@2zZ*X49B63a7B2peBZwN>3;#m|@$5@o5-x(My|{o~m_Y=$zJIhj zK=yjatYrM+y^08x_3A|WeL~#)bdt7#+eTK?m=2L2i93noX%vlXj;E~YY_@}IHhTNw zLtvlw&;PFo;nzr}Peqy9Q)3`TSyz*aFiJjbz}CXo{h1;A%>iCaU3QcWIej`?;%_g9 zUG*CNTUpsFxgmdBXIpmhax`$%*DCiMydgWmfj8qD^5+V&mH7}8**heP%Y#IfDG!h+ zd6(o)ty%ySnbRrLEejb}bwaGFg66mYIe>_Jq0JgX>@X?4WuC$f{E6Dw{-`7I5sMd2 z91UOp=d$wkT)*DePuU~;&mUjUW0KDpD{q{m`@6VsSpNl2%o&$s9a7B-&?Fzu_Q{I6 zziXiT_^SuR=g^5=gCEv{X9xD~+UR0#>XStdCt4HpQd2xfwEpL^^5|jgGcc7bJb&it17i;(4^WJYI-EGE>#E#7PT-Wwg zNs}D+*|uJ#d|%quJ8xdR{S!F${pb1UdE52v-w1Ha3P}H=ljW{zUtSJH_YvZwXwQ0T zC#SrV8sjnb^q8n#gZ4ve;P4}S!1iH}jBLu~#M`^mD*e{q=3`eg-|zm_rL^w5=wB}^ z-kmj$wf=cMcK!4E?z|n`c8JiwS!2Oo^y{}BXOG=%J;q*QQrb={^>2Sa#a_*gwViz% zyZsY_yd8ujQmuk!<05$gHk97E%Wsdl7=ZjBc;PQN-QYS|V>1*WU|xzFvQN@xD4zHl zc=CIB$o%gj+82M4PA9N#^-~xPt|{Gk)Tt28rd_Dh^vOB;?uP1yc z*V^nqDCpkE^;?y$ybkj*0n4FZcwh>!y#sii#I2O>Zmtg%J!{BlH^||3&M~Z{ymw7% zsq!m=fIg5)=pibC1ki-`0Sa9}%i`g*X0F9bRRqfM_cv&bDfo*`N)r?hsAz|y87itA zf&z#)NJJhIpNw$-Y9cHha}dK#_wDqrPBI zMgf#Tmrc_`iblZhrh^tRz}fLS za9i`zpq=Ubsm)j0AhptwfbTD}`blZ`>px}H$2K`Df~=bXbs>;%KYNFMYax>3tEwn$ zym!2#2KPQz9AvJ=wc}GHmbRa&&VNOKL@!pN89Xmmkpdqs))F86xmZVOh+b}FnE&)Q%j#<#lLxwm zVzzP_8iVAoowmjlswzKR{jUA?=W4I6PxSl#-F~{heDOz%D}{>{$4vPK(EXdkZnBU1 z@@@F-`ZY~7#BydQ-8^A(7fX(}|K?mi-kvSJ{(F1A;`{80{G{>6v16(~>p>?Q9`dR3 zhqaOM0##EfgZyXf&v3W<_FwEBc8>!9g0=&X|3=`ca^hW@x9j-<>Ap0^kMeiQoDEcR z+=}&y5ge1hlv`(-K&ykQxs+d`yrTK!ib;(7m1V(yz1lRqWyVjew=8AHc{9`BI* zOm))yk}e{|?v~cS3B_ml(w{LRMjSyRl^Um)$W2>$Aul9fA8*l8LSLSvChBg;$@rN` z;liH6#A01ehqWY7u~Lp_w1l3@hsjLrn{4fHePA^W@o$|zjrrXNDcF@#PLLohGUJG4 z3yo$Ta?C`9Inp&UBA+)uNQPHY0&)dyxlD1-u&JW~rQesg)JX;xQqxdX!%plnyajE8HI^VUN@gaSHlA6)yyem?S!z;K*6&5dPSX=!CPkwqL<2uHRzRNY1Qdh364* zM1V)RaDGXK`7jIvn5|11?sjDx%QXScHm(lgL+oT2J<|xRyP!o87?B+5UPrDK%j$f70 z0MaL_sX1XnpT_ZCHCBE?U?{rT7x%nd2nC2y0HizfF5C0@q~S@3eQr}pIzg3V@1$s$ z%ELmPngf{2M7mWe%}l!s;mNMiWZ-D(kN>t+YId> z(Yi<)9XkRti;laIkI_6j_MoR09bfAR|A@^QT`uqo{~&wt`^|X@d2J$*^&qQa`*1r2-1xJh|ACMExa4+Gh_E)NCIx`sequKJ?CzG8^@r zmDvz_+BAq5`IMz0v*|${{moExBzQk7dH(VLT?+IUGTt2xamuRK-YbX~!(I^zQZmoZrG8h2)7JY_{=bk5CPnZK&Q2VROGQI= z;5?0RzACst4qOlk7iNqUy@(WRWH`roK0pRO2#f+2Q%r9J|7SA8#bE&!!1DhcnQ0NM zy!wyBFbXq*x>vXtKTIm|teT(72GXI%xWlkd|U@uA=)`$F|V36RM?` ztv|3>Xq-U4@9+~BJ2-JkFAJQUea}JY!JxO}2iYNIN<*S!;4iMy3P@(h@Ij%VH}wi=>1;b zK(d_eZY%sF*H}YG(_iVE(uhVgo2FD5_R^u$g?7s_%-na&)8yk56ePa}Y*(TykhTh2 z~iSBefA;my>xW1qN-TtRx zslD1ybuCIm@{+Oc2Va^t=dF^a%cxYyRptOujbb|hm8R{ygg?!{zrOwReX|!G)$%J( z`)|uhZ^Hf7tDh_?EytaQ2NW;LDqQs2^ITaq!gnII+291g`fgg4m)<>$&uYDU8IAX0 zY$u$`WR*9cdpW*BD_JdKI4EX4!1}bs(KK>UdmNc<*Pi@WGLyZ3)J@^p__|J!P90Pv zAJBf>PspbF-^lDWS_w3Cqco&2U32ejPWbPM;n1xgOBc-(NC!SxwfjGj+3RIBa;%M? z0ta7ymI4|6AwsCg6%skcsk(fz&Za0Dw2`6jDYMDr$Ei##bPs=^-@ZuaY^Thn=QzYI zgr#9oe*fS<$c+84v7#-2s@C@-_AW5w z)%SqLs4;~*K*I9BKcT<1(ZENuG9Ted9485Af@em>SN=o67hUXFseT1MNJn^;jKxHB zdCC%9T_~B3Juuyz0wnb+QY>*5Ce$x@ZF4_l;b|o3uNlG3hzE)PBo_p`J)`n=-UAVO zvWO)xhaByS5^k~lB(9JKuIL&Dnr3hlf070gu&0C-@#K>C!PFD-lY`HBBEeSQqPai+ ziF&fH1P-ZE;Um^{_1%ZFCe%f7)E=eC2QGr&00=nm;ibqjDpQ>i6R__nf+oAId(Ixo=5Ysj z1KFx1x|*tw;iAgI^ndH|PEFlk{nlnmpwhWd>bqY|ndKEDKr8-yhU_^TSd#$kKpnA4 zvqA%AY=IaY#q(Hn$UIh5TXp+@Um;OWJUrVYn$_T2R628QHGmy^V}!Jl8s-GYdJ$So zDbqcLSb*&eqJ2A7NImP|)GzI#`1T`8Xq|U{Fv^O?O5xGJt5Q=7}3%`1J@Rvjvaws?$iEj$Pna&N=B#Tyv*l^d^zaV(h3h!k&MA<2NMkaJoQvAryQQD~t~GpI-+kby_9>!sqzag_8(t_BovfTzmg9mCZk znIlh7EPvB63C|IuX(_EFg4QPr%671tV*mt3XgDLbYK5e3rC=)U8ws5?7m@i}ZeWM> zdxkgv8mWhA7N*n(*a5{P%?9|C`E`U1o=OZTi&!B!rGyXF+>G7*s)992iOwqyOn`_O zA*4OX=3W(RgWil%x>aNmncL`Aun7^>Jw(+#T?(5jEo4+UZYZU$)p@hzi9d#0zvM3h=eBsMo( zG(}J~{;v^<>{W`s?J9gHCIjnM*`kjVYPfutcdS{b)@TF+Rcp*!$psqm=<65>0A($N zk9L&lQlytOIL0NlOqy1E-CfpJDLb|`kk4ZSU3P7X{z!@5?z09)5Y z_}$^ij-06R=+~8a^kZLD1e+7dY+$RiH5V!lIHQM=IRkY^`w2K-%oPIs@VU!sL7GJ* za@q(;eT7mk6tpJ=d_4jFrm8~;lbeVwy&r8B5g=_^ zGkvb~cnOz`WPC@-dQHHxkIvKc>ZJJ~_7Gs*L4^9GBvpit7J%TL77)H?kCKVDlP%7B zKZ{p3_w}-EpzU}@_!fNV9>rm8RGBM>ERmVt8E$02<~uX+mZ%$V)** zAYHvKKJR`VVdYQ7=AuJYtcV>NZ`J!l4B}bKRgY9_M6*bU_F)HQEJ@J5ARP3#t`uBx z3F8cggh-#lBc(2MKp8D&>rNceF~TlV-LFLCl#y6+IsxZ$S69rct*HR}LNt z0B_$A`@vDwm4B)&qO#a_8p#1{gW8r$pbQL=al!FX!m7DKR!xlHMK_{w4k23}gWRIBu~6P{w2!{f zbPd$o`W$~iD`!Y&`e??x0H}}|m~d;4cyt=qvLpMGAatcn)3)E$38D6(QSYBgBCc}O z`45@eD3^{*n5bg0H>F5sc=#m3xV16qwp8_uD4?7X`79^C#4quwU-CdsvdNSty_9}^ ztp1;eNyn}%JX7K~hvF|E5~zsjC{CtG^SItIq7)pTsN!=ox?0&Htu{>LaJI*-6BIZ| z&(1XpW07zYn3`VCb{44g!R2Aud1^UsT~#KH+cK@J&mS7}khdv~e?E;fE-mkzAaxUr z^^($1QKrFul|TVZm;tHsn#m`p>GHcMu-hA9jQrnv2@XW6&Mw1XX2$X-;E+V7iDjl) zP^Lw0rd3m>u^YZ~9T+JdA5rz#0AK%UgS1OfmT;qqP)?SITh^on6JmyfDse$|dkvjlGWP?I)SH3BasNPM+t!Qm7^oSxeGG z1B&Sg@(!l_&N%WO&HOIQ{K4G(q51s2p#13w;tqqn&sljhyBUiQc)rT;EX^1EyewE@ zDqO?L6mD43A&8RGs=@AF&f#_-+@}8@rlLccqGQXV)1ac``NBO-vP-+X*~=o|aW6s3=PXG ztBaH9$bp!9)17lcHf739eiuksmRSffh}SSYC8dJqmD@2_ILKBwSyem_u5it(aBr@7 zxlrMGRpG^4=_6a|XH^*xTp5^G8QfeMx={J%sxpGPDpIy8+N!E5j{X7wFr|{dz*bZ# z#X~M5z=4*Kr~Oo!gJntXRe7>Zl0h6_9ze?c=~JvA+TKtSJb8^P#M|Z?x58){I`!?EwJ227snR z@C6DlSxkUnmDsgC8()bsa3!Ejkqh6jltDRtySi+w`GeOuIi4aR7DI|BMzVq-G~uLZ zQ6!31BuX_P4^*T~P$ZlLkm3UXOl$_z8nQ`0y9(1{>&OH+De&4!(orBy3}Nsg5P%}ULK-wyh`kjF%j`(j#PFKLNFEH4 zoGAjO$w)aMAIgL2ceU!>Seo30DdyctHZY`RoaBZPMEMxf{6p|Kh|;N@+#5hxatKZZ z0O~nOOHgE&7~*pXNfIZ4w_WX)mX%!I_a@<{7BZT4*{{GTd^1T@4XaZNtcl7#$)_pRD z!jdWm>N1&yw$nu>Y4_U4RzI#-n09KuOE&)iBr-OK{J^trk9g4DZr@HiT>h!4o${s~ z!rDPC*FkIDK_A+|nBT$N(!sja;cUpEVI|rSxywo#HnY^BrBW;@zs&-Rhy;F-BjruDX0ld9WDDSxC>UB87={ zk6CDsMShP}OON$ZkL^v5$qn<^UYAZw1qU8<1WmbJ*Smq~^}OlzV(s&h>+`ej3kdBC z+~=8!pm05^cHXZL0oJax_kF?Zj9uzO+;GKVL%HG;`;(XYQN#UdE&Ulc{T)yHXM`w5 zuN%XMD}s)}>+OB=be)7pZECB1k~L*_Uf{fYKXSBs3s@_PSO+C{jY0KYCWdrZ-c&5` zY{QzWGIz-Ln?cem@ELj_7v6~*&}+Cih(%FQR}5?74OPao_q7ZRk#{$d43_Lue#nqW zSEPu<<2#KQ#=af#SQsv+B3&S@$-^1BAY@T^e6uaIEL5#KIwgt0y`O6#Int030F}er z=E)nj&0(6qA*f5al1lu+DKGl9L`c~tO%sHw_>h{SIm6Ilcrt>%qNSTmx1u4G;!8d$ z!79jTp(+^#If;O9YC+P)AQE_h1FYO6@Th(SLkvKH=yc^0Yh*f21)3a(q7#N0JOUekUxBj-Izx;!^?Ik17Ekc^Xf zkH?e6T)v#kesSpE_?BrIPCu5)J}}(Sk~GA&I=`Gy#_<50CpVZlvhcojWE1y8$}UU1 zXaB&&?ZX{9Q^1AcV*82JT`s>|gz0dfV8%HOm8bTX0KvUi5Q;x+6hj#DO}<~!8o!1h z6y1Pd$IIkL%fAlUDEbe7ofrJVzx##v=GS==IdS0%8RZH^8#!q7S1*L3OL3Lnc9rfY zIdj`83p)k#9i@Q7&~K57L4W9l9VPV5+LaxpaPpey-CEn=+LqVa#UaK0jKGZ%7trCO0a|{<)PR5eM+$2hYf?a4Lx~q>J?3w_?pvTRW29T7jo`o zYwmR$-1sgxC%nJonrr$!^LBi@%H3+e!SnlYF;>V&6@Z-_5Yy&3dz&Q@ESgwwwQRxA1Nk&HlSY z{&$(}?}|6St88gp3VzrA{QcqXH-LJf4yR+2-TV4xud#5ixoxlI=U&_0UOW4Kr~H1m z?SAi@{rn9E>br00)?gcYU%fu+nJUTfdmtT;P)^pal7+w}DT$O%2ljkF4vnfq+A1nOb0;y-)O+fdxb{bII zKMrMU65PQUrqXL!|&7!RdbDS zFS75XV{aIZw{-F(os$XLkIQrmpM>2JFq=TfQVE9e#H4EH#2m-BcB5**fT?`h_qL`o zCc?V4HpZTWEHf1fp;kM$zTKM4xuW$B19h|m@ld__jj!-+q)wU%_RnoXLxM5cvwYP! z?n#g>hY>F~lZvCW**&goJ*Hzi!OT+Q-bR!le>JOt)F-bZDC$#G_o06>r#jnehqRE|FL zgrw%oZm|ijS6;jsP@Z-Co^P7{06uE*i~+9X5bHRxOeqJh@`RwO6_Iv>8(2@g z$!9OsB2P5xdA3DAvOE|12amI;u!S4kx<11~T9JA@58?S7430I%QyFb&ZG)(KT!e&+jXrY+A5CkZ-~8L(9#pf5r!5PUt$`N9 zZ!8<^5FA9OE6716nuzClas2BC(nb}wfU9|^eZrY{w$nWucZ9BNeK&$P$|ULGSRmn* z-aw>Yat3cWt*8E&{KrrY{i4fE(yeUGpG=zm-n~o?#dmlSv6@!Keb^K^R<|fx!-2z1 z4vB#J$aHA*t}?S*qd{Yg_8r`zh92g|MJH3DgimX@VL+ep1@ExbO6RIyz*xs9j+a_O zFO`dyc|%nFPdLu%M*|I2iprMLy2np@dE*)-D$6<^)#$HD8dn>ws%7Dn2a5l;GwrBX zRTco!66Z>$B?7!gsKg6ZhS$pQXB(>HZRNP=QyeC#T6qlZh&mG?cna9V64F zDa{!I76sh40{9rtEONr7cbRD~h-CTb{4#Rm&!TVkjf85qkum5cwb8IN*DZadQXp5n zAzYcGnp5qM8C_gx&R^&I*Q3X8s8cO)M$}zq1XQm$(KU1s%dmNYxPMwqZs0ej z%-kzjw;3OP*va~nGf5_(nB3PDB2-?jptPC897C58W;{FIH@&v`jQ+gG0krP1qG9X{(s- z(AKa1AjdEK|iyUaVvcg>anH^ z=)JEGevecEQI8t)t`~pBM|V1WYj7&-gfr{r0O_7Xo*im%ug4E+np&aOP^zpe7odk| zMSP{Z7zP_85ncQ^+7ro7I$X7=L?jgb)kaxlaxRuW$DZ5|<;-yeQx?T=##`)ju}jRw z@=1Fqd5cAnjfknsq3H)j-tXF7!20f^>u0|7;&W^v)0H=c3c@q+<44*F8A9zT0V`7( z4+Iw#*W1aI{qSg;q?M|yIZ2;LsDN!4S+GovC<47(6~;g)5iNIp0&GJWX9u7cpu{6| z-XWz}tc#>;?i~^RqD{6AP>c)Z0(BLx5#UpI3bJ;Pi=*MBetSS#X~`5RS{_O>fcpd5 zaUvDsbxVPMLV<;LLPwo7LIS4)Yo3{kdnCV|micnu)`-i`yie3x@|b`9bZcZ@WS`@} ziYcg0RRECD%_;F6p+u=B@rG|#04SrQ@D(rl39kx#6JXB}or+Mw=_t=5QaCoGQJ$C) z_GHBq!0_kV{77NyOwCNGuat#gTUf;_`gh_hdzhd4mu_rECe+lr>4WSsDIw8 zUf_KvKd18{x-Po6Okep31Vz^sC!y?_k*lhztZ=uHUT%^_Km@egpH#v^nd6YNOHLIp z9xKsB)d}#phgsoLF)<{gPl%*HR`TeEtwTCjfZ?HLVpWF&tXHr;sKt1KZJh({1(ffe zO6#k)fO*!1j(2pPR1{co)-~Bhx7Z@?k{GuLA>;h2PaGJZ`0!Kvp=7COiKFy3<-M}U`QU8!Lv{gLDI*kDi}#9v(<~mN|cE8sUS(jioJ-N z3WMYgzkI;;&n6Xy?Hz+A-_rd+_I)om@_&d z>)(@E!lwD09FOeIi(hyf5HWM7CrPQUGY6scAK5}E!ak#!TI`bO9L9-46_qAD07*Y- z*e2JJQdG2&anzr96s@ll%+QTUBz^)j(t#5$rHJo1M<~P@B?m>&V}Nq##%LHwyd7kK zjug#__K5(>FtWsWM^B@Oo<&5e)B#_w5D4R59vUdgpn;mratQmJSM7+=ci)~xfX1J; z^CrgqH4qnXA~g3RoOX&j{w&Q^BJ~lH7kG9MmnHkUq>Kfpr9y5L?o2R{{rL(MfwN5wQulTgA1CWuNqOfc?p91+kB%?8wa zr*fS8Xrwkn^McT?Hy-_vCe#yahDB8Gm-NmE#qq*FrW-Qmt@fSQe7uTeMq0CB<3m3J zsH+1_G!{}ht6cm1AOmb&X&gHJgtf`9In!rDo+z56|I|zqHl$Wd)qI<);n~TQ-L9#Y zJK&rD(YHIhFrPF%nwr3x(UY4oUxzxvP;0*aeo?;Wh1FoSwPI8qf?*|^mor+8Ga65B z0A`+pc|O zH=2_}FhdEQ`P8^ZiQ%3lDBlgj4@RfgPZ-1*W!OC=VhO8f)!8A|>9y90$Urx== z5#G_dm61)=;Wa-!LoLBSD%I?`1D~b)IiY&!3s4Y*&TuZq1CqH~ID~GT$^%0#LP^9oPHQ?&=R8jDKhD4= zN#h~NSU%4DWt^pFoON2Cslbr!-#7>11Sg#lc!Y$VuQZ!+g4c9{&v}CXAL+-3M&dpb zg5?uJUnW?SChF}*MK&iy|4rN{oD`#*e84v;E;;#7ZBoK?5-aIEDdj);h;34T*yyty z$fs`danIyq!U(y|N%?=13WQUNbW=)vQ_7N4Dr!@zrc-LpQ|kUx8ZlF_%qh+CDRs53 zvwUL$)&bqkDZPJF`h?R4bkl}>(?*ih#%j|hrqia*(`NqD<}uS2nbVf#(^lovzEuq} zw{Zb0)3*OipG{BO(aqRrzI$eqY|Uqudok^7Gm`?CdB0)`a0R^$G%L(8`&TuC&Y5wI z(Rchu?D=KJb~^sWvZ;?hqxbEMtFxJJ=8T84naie`pNILYf_JY8$pUoEoNZ?P50GJD zvw{BR-v4Idd=@917JkdKL7T*0bYoE>7Kj*&Ad$JqpcyQZZ7xXCJi*x_Mr$rq(jtk_ z(w|~Jb$PCi(-O%xmTo$qU^5qYkd~=tnfPUHGuJXDhB7JBGH2TIO^>NCNwI#MVf^=1xKgnm7RpiasRNfW=&lgZ$e; z?q1RAuF*C--{W%Zgbh{04GLNkYHRiz*VqX^&%&6jX@9D+J(<5igX1-@d zE2gI+2+{^dx4GD^OhkK9Toj*`TiC*L)A03S18D4cyJQl)n$yfgRu6*gj8v<@RvUv+CjD*2yY~hy|nDJc7%y^3~p)J zA4z13Br=4>@WjU$+Y!+-gKRltRym{18bLM9h^|(I8O}b?jxghl@#g&bmvA=vy&1Qs zCBM`fJN_n1?2KO^!pD`bY);*|F*Xo2`-W~lpnUTk8_v0FZntS^b7oz%Y3;9O#j~|( z5ug{80}^h`;T0niawUMmh{W6N9KE7phe;vr2+@8*HSf>TYXnTL(a<_64aMjGw1J#! z1Zj(4LM}p)9sE|MM5&c%H>v0e6xp(@5;U;Z%oR@q0vvUZfw@MDN)rb6OA2Fv;0B;X zJO1Zm+hVBYsE1|1tur=;&B5~Pj%~%ft?p9?Dd+bnkhekX11h&vqVDcYl2lrmp&&(K0y%H&Bo$3M`zn)e{1jxj@)NWElvinQ%pEuSA7IVqkRy2IzY+cL-l} zWb9j_f=>d#QQH#(w_MMium6bKBXIx?w1Pqafc7W9lIatkLujVI=aezh zDEfg?3_$*M2sIgy{~<}p&d;w0oo!i&lj)bCji9id{oyRm7s*a}{rhu;DzEK40K_XH zJ1@r7J)BIHu|bLmXk#p_k)Zktp|%q35B%N$=p0Z*pK!@-r`)Cy^w`;ZG9BTw z6S;CLD1&16@rss4McHshJ&}&I-odwXC7{@drs9hFnhX?mjUqjYg3iTgqJbmagiP^C zCMY6dXp#ve20x8LgD2B~F_q#7;^;~cehB7L#OI77kb2kJc{sY_`cR0NCEQE(z2Yu) zTWrhE2R?Iz-gO&pD}+G?FQ4TQeFg%8F1)1_5Fv*#PILP&<_JArFJ840*>ZwH>Ol5( zvBA~dPSPNI@mM!BLM4UPnvm#AB);wyp?xDLzz)RDLFx}9;;ekjY6s*$jKS{DspGyE zHG33dk;LnYug#8RD=o;T8VJ3}3*|)oU?d*hLBQC%ny(UUP*K*LG4XRwNWlYWKM?8_ zEj&Q{^uN&dmH|=z>l*IM4Bg$`-QCR43@N38(xFI$2q+BQ3?i{a9<4E@YGk>x!519_L>ZrBZ8|@*>BjMGvx-3B1p+u? zI&m)A9sx)=6M34Q5qA8$0D&Ux7P6?T&4{Omks587fiYN$%a|JrIBpY5cC->+uP_Of zu|im}6aif0U%?l#Gefh&50co8n=*-k{upu|lUkPsb|r6fWPWLb5H-CKDnP13{kv(d z(b>cf2Zi2}yloO=Vs4qsG+%JpVa&QlRbqi%d$&|v*|){Mc->6#M}cCCodHH`J$*DJ z){4O=ukPg2e`mJzyR*<96m4iN7w~hr+DC?j+3Kj%hnghG`3g!zvBINShCHNR3C9{j84Cc zL~YA;eooMB(!A0Ziu<@*NP52sl|t@XZdMkOM~`72;9fZDb)IThKarlV=mD(igmF|~ z@m6oHPNzBlQoKCf{Vbu+Lt-UnKNzJ!u@-HbWI7%-ZsAW?BLCBp4WG{xmtug=D$h=X zvxpWv!e^9sOrq?->OaX>QY1FaW!&r?A(Dpx4G5b@Kn590)ZY(rKBZlql-n=fx+iZ; z>5L^}R0h%zHiv<9#flQnO(JOuK)MXitw00Oy`k**lnq8~x(qH=voTz8k{}L0@xWnI zMO3nm-$yf`%BLdRxu%^v_rb`_W{yYANrnCSluxCi$7XwFL6EMmq4HL@oJ;Oj3dba5 zC+38NzPFo)NFF5$MweigWCNT(_c=(Y+7Y*45;?YVjC3W}9E6k(vrc1@$8JuMvghY% z8iFNlQ&{vrRMoI3%ev1up6tJ}Pn7zi-K#6|_LaD<{B|$}iNe-vu;A;DAO)V_<7q8y z3OOX%xabP;+LGf=nGXq-Pcv(r$fN5tU6$%1FFe^|OHgDr6@I3nU`q1}l8Zu~9iKPF z#S4$_azAy5FHN0n81~7|=^pu`JOlyXFx*Z@(AvtIh+8l9*ii3ka8;Wj1txynjly#7 z!K1r54@>JKkg_Z2m(!DUQj`}sGs^r}PEk5ZQN9*K3XuhMD>-oX;f0$!uIQ>j%2r7z zdy9L9Rf-(ckg_vqn~ZCUp!ip*GKU^LPE*eXLduc>Y8{o%{bLfE`i3<16!Nph6wFDHES=~>3Zc*2 z?&Un}i6zqKAoq5GiZQMb7$Mj=D^;N!>RxeB1f1f;v!8jrC;?^asYYBv%PBEs!xo$e zPVKtp5)E(H_IVwi)lbPSo>o2PD1O3tK06?M^EgRQa*cT%{kpf&CPw%W#P|pa;%n)N zR6?-v>>^`0%6jymQR?)MSfQN2RMNwiUi?HCO6FCg8n0zFg1kcWmF3lBv2J^T%WJXdju*-bY z9gY3fD=B!}p5Tj_{#h~AtM$Ihx01Xjdb|7HiW4YMIF(A;J?Oe5IIXxUwcGFFsJBKpK>6clh?GOzBVETec zY|-~>Nq&MSB@}hM4+J2V8U?N@U&v{+ zwGD997X`{$spadmI*!+hCfCdtuTZxSWmNmr34B>||7TVp`mAs z$WwgWdGOSOvrwRlJMKqoKdjzohvD8nd1i-J;<{&a#n;Uiu)wwvMQ}(pv47U6m5CUQ zg8Rd-4izoEHIH6;j!w7R`noGOa=qeU5VS+T!t6(JD<1{Ss3kwbWuvoxr7qC+Dj8MM zHYn{cGFj%mrqKv(onIc5?LWFJEIiYzNz51>De@ft_niMfQ?a&_}CY&ArTT zw6SG%6J3p)IzDPnmk+oz_01e!oh)5 z<8=PPczBzvZFQ~I6Ughzo_ zB3QUlVpC`;T==w@;_bGkiv0Vu`qOfWw>t(Q@*hft&#F(T0i#y=k4^PwbvR6WRw((| zcS$6%$DLcb_-+$3^*>%Wz5V7MqA&yP zh$VOh4@DBg*>x0+qqxc>axtu+d>q@VxPg**c`@#DbDWF{UK1m^=+o*t&82y|LG&(Q zfQ0!h^6}eMaPs*ly@DU{Kd<%`US2Jn+&jJr4Oqmm_^?9p?tD;1`8e(6^@arM9B@%S zO+g=3YlU2Xc&GfM>3i@upLbV_DCP4$k(;Bmcb7erg_AQcZ_b)RO1_1tTt5|_KJQy{ zMwF}E%!E9voC>+QK&b%OMZhi#ipb^{UD5UQotyEc8?Rg-H6KMceWhV@Wn6S^%?eQK zU*EQIxLt&jS~ig-1{oCHC@o(av*N6>;Fw3_3bU&F+JO97!S&17{5Gg@R@^VkC=GQ` z7c1etWt^6xt9({$d|Lu>)66HN5GjxP8LH8&e&1@)EMCj)&pl8zOI#TEJzmaF_?6J(Kw1KaCa zHs-h$W@5YYGpGs>s!Uj5w9~i9hPF)?vl*~+RSXfCuQK=-DZ7 zVv6lfaYZ|y^8k8U9naveIp-OkO zeqGqBmvN}Sve%Gx2vpB7e8jFSSpwteuJW*4A8;)3OeiMeDbmx1JXIps&`Lz3-t}ANKKcHpVNXm>_UiLfEeX?$=inQTISY@L9VV*8i zN{I6Ioew9!3Y5YkvF9oz`ypcc)|xp`{#vLL_D4Tu7T9Y@VA8@v{xX$jh=k{$uzH_x z8AMP!Tz(zGkJ~5d<}8udD|rrfUhnmw59f6WzlZlxMKYWh7OpJ0?Lofn;AbzE5N>8p z55s^`tAYi(F(e(}qDDw|awpr%1di2k@d$z{MhNjaoG=t3oMi8!yspw5Myd`Xih+nD zdKUe-HvCYP9I6=1Q{5iN*8H?QOSgNZ7+sg=pq#!O_f6v4@p=?o)yfVR`1X62jKir9 ztpy@B_l((La0udksF-YT1h6P|jlFzf`Z!gMW}k_#S@rgFFp*>!^%TNJchQJ^C_)gD z@c@^14AT{j>+}WRX>nNga~2ToTWWWdxdgG%hBL}S2xbZ1GeYRX8tJyO*;roeoXP(jNc#u#wDi<%gq%IT{nYy{?qgYZIoPZC+L7w#*& z^fV(ec&Y?wXu}DoF=#x)lw8zUT-0P}bGZ63sNDKwkr?!x`-~>FV-x$Abms9G-F$gr zTn=!mJczP7WHBL}X+Vv+xQ7iHCnDdAlMV)4)QACqPc%l{lMdj;Rocd&qwEuQfpZz@ zFuSTL!a-E(Ah|<)zTj?7-0+#0UgwxFSVCW>QIQ>DF&VAZGp1SvZ@ih+E8)A z2jUStH;D^eZnf;c{g~__})qB?N_ZPC3Ip)~AQ4Us zky`A2PY5LC*{T}nK7=OEt$GpEE!!)I?3OfA6I1-C5(AS| z$H2d5!H>ffOqUk&&+cx>!rb)RDqLhTV z((=)%sxcPzC?0|yFo%&MF=#@0MVcE}kUMz1Vtk0+h^)I<4@Eh(j+IRh1NNsNky@I& zP!)A=$Z@^=!P@s9(E{tLl5L>Y&{0|L?~0l|Qr*U$FbGFK2Cr4G;E*Qoxtc4?_{b7O z&j4XSRFk?Tv>HGdnmK6%Z*ww2XktJ-F(5Yppl96S@Day;443D{;gJo?@I<#X5`3pn z&cj_N!G7U3Jz@3UK5xil0|}|tCWZTlDzzvurSDd@Y_G>uk1&uxHQ&o=6DBYg&e)GF zdflfOAi^!%%QohHByT6TzoWt{N-v4a6t!WG66qXYuDWjD|eRhj9 z`LCgs%j0}*siMsoyxUOb2#5-@C&CS?^5!LJH;iRJ{8!_N0=oI%fi@2I5%Z0T6hRvw zi1P@P@RSx`R`ck4)6%qw(7<}N==!8W#d&CPDG2(Q5g_^xalEu)G-)QpT9B8%7;e{n z%$$BWxAAxtJym1F7|X(_)WgNrQE;2jaW)U9$b2=&x(+zMLo?&TcyZy9mMyetz1^HW zS8<-iYd!4iVbsgeJ_jEGB(dvHX^{V#(owG$;h0J@9J3NcG}g+gydEhzrt`K`Id`Dn>ngc`!j_Pw#_p4q6az zC&0@I7jQG|4ejM*REt1QY}#;^^qmQDL_}NDNfa2rN;H z?fwERR|YYb2@C(S!{|;qUkZ7Lu{8&x{1e%)HQ}GQc}}CSk1BZkN1f)!Ra~CP z>o<k|7q~$K<89)r}ys1Uy;|SVNQu_ z&_@)+e2Q}5M-WqeAx9XryN^1gUrViNNgpH5aE?;z%ZIs_oBA5&rp0g3+6Dc$>8>)* zl?s%;M0YAlKiARCa1E)nEq|)|h2sNF*JWMBmlsb>y_~pNsK-V*oS!=wEj(Qi=~_^z zTz!X9`qKJz=w-#$*I$byT|N(#0p{w>)~5?J85SPO+gFS$l`Jc*zqm`*)IO!JY%M7p zC^|TLtL#IQaEd-%*<3ziXWxa&03x$8V8yYn?+?AdFDakm6bPesckDKq#MW2S2xJUXV6YPUUp)%d+=S%MZ1Jw5w71U1^ z)qM(CMA5qtoL^k0S_oTcGzlBNX_ly+Mm&v}(}y;%LgnO3%pVkUlN>{Ez^KBsJ=IY! zQ^a;KUGA2XMmTD-J?OFFl3JPy9GeQ?i+!M2D}~#vqq(ZLoQ6j^L*C4OxKgsg>0?I* z>fuNnOAxanu6Lm^+`PKN>~72UomP((O}7U>9(`?leB`~~k?FBiOV?8}u5eyu84*Fo zL;S#Uzqd^WC1yu= zYuoj~>C6e7<$FOtzpo5ssuVtZdi8UoY3LmqmWx7R5E^x3;0aE3gUMh(*rcN31ph&jYNE_HRE~f;YnLr;N-kL05pP!jbI3Sc9=FAuTFa;&kH=Wj? zd-S1$3G402qz+%*2a|GkqSN>Ka^F78q={#o&KTiPUD91G3Nzqq>QyS{bLd%DB?gLd!J zSC1Ydi+QhMq0jR^)A|+*eshmLFFamJv{-zyQ}=l>2z`Rk>vs2nbFOf``kvR zZPM+{Y}fj^&0MdE+gtfh4(7HB;ly{)bOPZo+og#HL(Hjq=EIPnqNF>!)z$T1c3(71 z+}W#ZKlrluvWNKYe#5Zv*ZrnxgS+2e&$++(_B7XEXRv*z{_DY;qlvrU-(DPi{r>K5 z0s~h!p2+-RADN-m(Ey!_l_xzzveof0-^=;qQL&}NqcOSf^Cy#PB-Xwax&B|#|3*XW zvyZnu7SK2M$@ynPY%B{uzIshs|6EWh%m29qC%JdNLa~&0zLsKm?_xtkvfyH?7?phQ zayq~8p3h#!OQx%DSM>!~-+M^z2h%)dS-L)%HY_}C`{=Rs^zG}Acb?xjUM}5SX;iYH zI@Xq!P$+1b3P6kq{kC`iC#HoemM{V?Q(~>eN~?xvfC!^%Ud9s3QX_IlgfpEkcILavi%5-1^PYzlkfzzt95vRmxNUoBl zWT|uIApCLGS15{I-W_YC#F^FJC$7uV5V9kQzk9k$lM-F3kd7VovTSwnLH7);iokxvM*ElIPy}Xw511wwDtUfiP&UZs#50~WjMC$X`%^N~q z*?QIoshMw2H$>ocFk9lZtO3bQv6O6>qi|aGxbLP!F`d5agm=PB^QKfow*DjcwA_W$ zO_?4#1262RoHfZUx#?^JzxuTNZ@ya!)p8^O6KMr!&09)G*@jQ)oARzsw^V*7eB$(? z?uZRFvK*sG;q>Bo!EGoTy>YBTddcj*vxZoXaiV*ADdt-jEj4j$PUbIj`8&nloByB0n4pJD>dY8|EaZtv-sH`iy>J;JKIvp{drKJhx+ zvwY9`D97U77qgd7&jjvWTw3%HQ`f<{_HD^tnDuc#Z%7o{wPRwqJ?wv0o$-3#Q7m^( z!p^TT|4h(`?dtY)5_M@Y*Ed&V1*4gY=dbJDZauJOxI0%*(bDw#+oN~4@6I1QZ=Lz@ z$OFzW?{H(@HXwB%5*uW-A>8_W*zv$8`Ni!WgUpVPN-m~#xz^v@GvB1I3;Omj+`BJt z(Yf(j=*f8Q;-?aex8Jygf)*H-CVDNp&K?Oq{g!*bch%zEuWte&zZkyTbbu_ovD^jV zM0qw%?3O)5H~isDj4Ll7mc3M({EgTN@N-PJ2 zDqQ4l@7vKCN)Af2c&R-Mwr2uM4k`TbQVzPdXPc2gLZ!VG;)5NyN+pK%{2PtRFCF;O znul+-G-{LvI|?~BkKFy?ZQXS3D278hXv=(({lv{l@+BSefzwHD?7oxiB;Bxg#Yukl zytUHz?8&FtoCO%x=rfF*sYvN&I&l8BumA07A1B|^Nh>F9L-|(!iqrDK3l~^?d&1Jf zX=O&WtI@+JiKWtKqGqXsw_aXm^5fzD7o89Q2G9%~#Q(^^$wSi#H2`*X(hmU*r9;WA z|IEPQdyk`+#-Rz&_8gUu=gRu*&JQ(kIc=)4-?cj+_megv0V_vN~E^tK}?)gaBROsL^{lxjPkjv z_@f3L9-s;UaAA1cE77b`SrpNnainRtKp#J>s2YZn7RQJV@~$P&I683Xi$wyUX!dVjYQ?cakwErM&6-eEON zn9C5QpX=a*j(uqXVU@ac27vch)z^c!=O(&>4VQV4UYt9U5=mugn-33rw0CcLs$6}V zfeBVpB1Tm%coPl>XlIb3D!=Au#>9rl)O6p{Wx9#S5K@dL_wI4_jVX;4py`Aow+U58 z@F@}umCn!YCD4Yxw|OevAfx6fZ62mMWtdFei}(M3(FxrzHnN=SFE;ZYA6#q|MGIeU zmu0$N?);5TSRn6IKO}s$-~9QRpVIDZ{gvU|{(*uKmViaG(mR?$3Z+4wm)FN*GT*OH zo)u$sb52=!r0@zn(mVZ4CwzMr`12Wp4QtLGPiGmIvPl+O2iz^SeAgi99D4wyssO?w z36=a#YYOAvro|Pd2dTuvbnoE8ia<0m-RBF5j0-L?$`M>tk+%=SXvd1Mm|R-D)r~|9 z2#RsFkUbqwJXxdc=pp-N2s?fR#QCAi_Tn~LmYiH zD&64~XERp9_*Gj=E|n}XAU%pIx2mPE8Xw5&iIzJ&B6^x-&zhA@seF1w1Q5PwjFRMJ z!?+-V+-XeBqU7YnnbX!H?q>|=M6zk%X~UP-(yL(Q{1&k!K?4cNPPdAufuiK6xba4p z0gg8xoKqg@>t=rKU{k|A8(DTe%%cCmB{=iEDV9_yB>565c$Z_wSle}$MrTpjN3IC3h{KJGw#Vwu5z%M5S=VO)1KYufDE>8*pqAFD! z-KjA8Q`r02O*NX4sVI3$Rl#81opiqGxI3pMwBuEpG9%MTfv2UcMAh0_y6;nSPRn@p zt930#-ar2b5c(Dz*;l0XqI!wlSU3MBkx=>XKxiqplNc;+?db$~Oz%@WxU~lRNWIhk zH0>;OR5q{%@dR^<^>8Y0Ky)oB_}ZS?Za81{AVvO%F{Z_0+s^t#@uvm^2fLq=rNV?7 zY5M_I2nfSX{hS}sDelg+CtG7jGdepc|DyqsSnI%}H#c(UM`PA_t&_~?+(h7yrXr#` zm)}5W_FdPCUw0&_a=w^1v~V1_2+cLK-mOIqtJMIAdylGrd|9~s(b`RPAZIKvU%k@O zhSab3&K#ZJl>ga2m00gvskg9u=V!<4c)fq?=)ytZ&;K)>@bl>65Ao<%U{@`9O!51v z^BHVskF=j*L5O=gX!x&YJ#-Jgl2Kp!vEtl(H;suVr#^tNcFAhrN`#Y|kYf7dbVY|y zjWHT+x3D!UA=zaUcoY${HizY=JceU-8>cTH9K~q4HW?F#kF5>x*hfP^SvHfKuZJk* zwBjNa5tKh`gyfm)f@K6H9|GNVSa9$7y0S#RyB8y=`r^;0o6W*R<;p&=YG+|R{v3$t z8#@yf*BKHd#iz(bc{nR;v=H}CgruFw9cIq@08h$5!g)EZ31vzYms2rlIw8&Y zwx+`6G$N_FjOSNP-ZS1PXlZkW%=nIh-au|U|A$ePDWj>^-x* zd#F`Dqu(&SdTWxk$7fArjOzHiV?|QC+87_LzlGPBT}1!d$4RYhpcC39*JOy3Nz^@a z6A1)DWA(`+ckmqg%ewI2+R(4UgWEh3MRgMUzOl)9mVDlKH=z0O=Hp398SN2s{3{Zy zz2K{>C4i)@`+p6D{wF%&tH09;uQx=K+sB*@PIA6pZ^}-#PduJDDY&}cQYGn_iZ(bc zVfeMJZP@WXbKDF&_Ag(H{4Q3stoy z5_FoY&>+7w{?}C`p%%f!iNYa&M_ zXj741a%Uo2?S;Yk<>-UYb@yK^9=kUF2Ki~7mQ^G$NWEKlb(hcxqTI>G zAYAXhvh}6M?&rD}#qRUtg@zCO&>_Z9`FKOz5kYdluj}pA&qFj~+3?*B{jy_Mw8-SU zcc{_~j8GEJZ6@a>I4*Y;YvARtt>ti1C(0t#^MKVHIKESrZIt`@r)49uC^X0q=c0)U zz~HH&<1%frhaW$+3@UbSc&pH#FOFnS-^T+k>%Po#F*n=acY*X}avp3}V?KJKjhueJthY(8CJ<#jjgFo&zjm!m;`aT~+* z{Nxsc3^j@+n%p&2(+olNgDCtL^gr8k3h0vsX9&fzi?;Z^-*wRQmG3`Qd(qIeXz`-L z&GQRoOtGdwogU9+>=Fx7u~CD&zwIc7AwBeJm?=4U^()UxoWdqUIx9Gqf7D8Cm}hMK z>q=*rvB_X-veEIkwyoVg?2a9}?fqt4o?7yxPbELG#ma+A2n5T!OQM7e08v8gngDV_ zajH^^MB$KEcSou7KdcUm_h2?P3YXWy2w(Ph8prYXo380d`8;7H6e}PF#|vYYJbBft z&7(gZTUwLF#|cQT=}7^>piycx>KR6_8dNgMQBDda0Lo|85^B<$B@&ep*H$CqRf1{! z116Xfr_?ey;8-4ucc>#BsVYE~!1lEMvs(g$zwR8Wul+Uo&fP~lWpvIn74iKcq%*_f zcS)f-+^Gk<0DFPxpK%o2h(g|CthI^|J1{0LK% z_VXhgE_PCJz(q8yAlW(FzIsf}B)%q_)OuVTz)5&MH;xDO_-~1=E26Qm;sDq)2p!4-Xo_Zs6G^RV5*| zbvGg~9dijYPir2>s{WWdi&vW)?>)a&J*0RgsiK=2R0Q@n$}99gWu~u>F)b%A$W4L@ ztf|-B-aj%SLStHn~;q0dqWbz`mbmDF0b4UW++KSK0Ds^CChScFMeWgUPvGD{L zfaY?)p<{JWnY>*#u2~i94^mx0UAxup*j`YI(*#{Ngc)tQ9A5ZPp~Mq__d>Vj~~k3VuT|y z-z{Y?U%q0bGkWLC@$)wI4KK@Coq+{1h%PCT8X#p}xwWx|SdyP89a+u#~;D!@v_a@`X@YC}vhbqyz*WCZxD(ylXru zwFgG!iLoJafk*;EOmZ;1wy0>7w?cgro-HsxRGeS@k!l{zY4T*Jn_otM^)F*eTlJJy zk&TyVUS_9y50-H%RqNj3&k>m#%)&_Ivl35<&Hq)JCF+P2QZ|k==&!9*5yAqD#K4c1 zImpofWLibzxC-%%>U`F_JVpFwH9tPo-1_Ef_Bzn4-bt!P>5LCBR~yS4Ijyx_iN3@9 zlO#m3T!46INQDs$_ zI!mX^fLLg;d3y!*You?TXFR1+&n9L);au$_lE&LUyQM5h&UMeqyQOPi`q@VHW3&kO z(yNSqzL5l__&tQs**np6Zl6sCq~tFCp!R-ykob~d;LW`sBR{+JC`F$A+=EbDSae(y zy$Z#FErS@&yKxO(h0%;HV=J8ZkS4u~;DPAr-&Tv;^D$x;S@i8O>RK?nO@D23V0-qVpfWGvHN)p4k9?p zNGN&86ob{`ZmHWdgI%$KGO{=;MW+=aRIG-CQxBd2Z7JUyn?_kcl*G{zd;PaUgtXBc zK!7Oo+7cD&#Sz|w>P)_gdOa)?q(hy3qqmKb6FXj{{2BI4$vV;UQ*4L;&$p}!A!Bm) znEZkCr)V8Uagf9l0BQ|g`Dnh0#8$l0_1zlNq|G4;VwWv&ye}C`C<<|eD)gngGpIa!~?2pv~ z*FKn>b?YPi8pGy}7{!O@9u0nQPH~FQPNW5`9wIJWLgyaV#Uy8*g!s`sl>o5BgU`O@ zk%U2b8{oH6B|Xga`e*2}Ebs#OfPtRA|30f}&bR(s1KB@iHG9yMR+E!{_CE?I>F^sy zw1MnTRJxFE`r80>;KkaprOn6tQ=lHoce`t60CpamHefRi-PTaAVKJC zd$@=>s3@8eKw(c%Pbj`3U)2Z(dl)RVtF9rjcK1GeJkd3)v8hJY7!>S~ZokLzu51^l z1@6@7VzB0)ZVj9#plMhqI&i% zIvd*wX%UAFBD4HRj;a5cJe-)ge~_NE=13DCuDvpt;QmURG@Raq8cN0%V@X8@AZF=x zW%X-<$yMo`B$1- z<2$fxN8r=*0uf;&Q4F^NiVgXbWP8gZ2*kBr%M;E}vmEAnxWha;b(=XaRBhR_wegca zq>T#Pf~6FvztWZNRb`*5Nv)3z++7YcQBGB3N(#0KV`}fhOQq-I77zyRT@OxIZJYD0 zbP#Cn)u_sL*hb??rHA&hZtLzwwXXfxGo}Cz`;6)ExN(6VoJ=pQ9s(JwLse{4PZ0w? zL$fGA7jn(8yC2d|WsNROOuvi=wt- zC-Xb!kI_iiUlM?5d|qkyHK&$|3hIzU>amH%0?7>5WfPz0j9=Z(XCf~lBX26cN79-X zWp(~vB_+(E0P=>igfJ%hyN9e-utrS|YzrKUjGDiw+}N z*fO z-wUYno3LrVMUpXvfK}xV;FJ{j5h;YW>xv0HNs(<}AWbr6rgOT#Ee}0A(br?Dw-NrV zk&H7E<*KH`q$c?N8A;bAg3f=-YGdWXkB3L^T^?t46IO^u>x`i-oLNX%g?Q%hn3McT z_EZA*t$E(@;^j3KROmY9Q3`T+AI$Qgw!%=8cjC5uU7k`3hy3T;<8ygw`SQgvs{pH9 zVDAZ6<{M`{+{{_Sr~gto72)bvLH-m@r^Td+ReA4^NaH}=>07Kg0xY}9mg1Z&MX+c^ z{@xJ-&F0*30AMCD(T2l}DUWe0rMcuug;*WPK*c!v9AP-oFnds*MtBOe=Li*4#O(u^g{4ZyotqA9(h{=C^@NKI6%!@&X6_7k56>x2gzL z7P@VWZjf$~c(cE%ck)Y6IiA)Jk7$C2yoTLp;2jEC=AdKBgYlQ)0w&twuK-d_22uMN z_%&ttKM#9(AQKqFVEmtk{Xag;A2^&Nmj?f3yMVc~$pSpRx;(r4*N6G@)eX{a< zXKDAv--LbYC*cC7@4|l%d)bxwLG*_?@xIspIP8DxCO^NjA1%;-^V@yov$weO^7vq> zJDh-Jv2Ceq4Vg@Ff8x6IXdRiWSBQ2Wo$dWa*nji$`=9NCVOQtH$@a{P-@3`af0%du zx;j7ETl)QBj@~Zt7Ma~|YZ!#P5mvF9`wDHdnvD=SOoUTDd#xEsE3A>pKC1U z#se7ZQ;MQ_#j(1n)$p1p)eC}CRud@5FjPrQfaUjI$y}7hsub^e*P-g9#_G3_ZL(y_ zh;%km1|DKQE~sMIHiCynS#IMwCXJA^Pq^*0A zw6NA{XC9Y6xsoz|Mr$1w)r__v5wtwq*uf}o-^{{kNl+~WlU{013sUH(7W2%tTVF2Q z6I-8i3a84Q2hSAky=cN}w@N8JP1b8~{rL5;569!*4g06V>G%KPKKfq_`^WPJ|2*tz z$Z*_`+1|Y3edt6&s3Z4@EZc`ro%t95iwI|2M-v_3y); zQ~O6MvY%W2DAuSmHv>sF5GQNE`pyUMum(9G9C#FOLs&{Xq&+B}bClo$E2aO89F*=j zO7wIi#wk4KXJK+k@)|2;{%MIIKR!whjVO`7Mn57YjzGX+W$ZM=NKN_U6huN9Cy&ms z?w#Y*tg$j~nc-p9Pbm`9J7v6DIwJ!Se6Vs@IS@ig`p-+yX!H_v;y;Wjua&NNS`qVk z8`yu#q~(G2OMi{2zh_djyAHqm!?h8vIsd;h zDb=>epG+!a&23b;{5z8-xd!~nqzb3(zcVSK)drnOCGL$BpfjnGG|}%&s`at<_n4A< zYa0H0Or=+N>@AMxvhOYa9#go1ZAWXbeK^oo-1d{LsV(-)boU5|;p>vE` zPEy6@TSut>UV>_KXMa>d@%ES9GUVqgH>Nq8nT*oBU0weCmOtHxSUh+(MHa;a&WcPI zazAdPo8}#-+=mr&C0XaZrq2058wG`-G^H#c)HMCP;YFi|(Rrb314-4vR zL$xPrUaM=d^gCY|KGsJcSW%Lx_h&9Z8FGBw>rc!#GQu?(2Egx?&=Hsf?4Bh)PRPUA zJPV8|_;>wiEcX9`SAB#vrTTf^;~jqKLy=b+7IkTXdZZ}zeo{=wUkk;S$MdWo3(j{D zQ}^47{pa>8#*dq%q0go|9(L9ZZsu(XyjLrJzx_~0nASg(I_1`cz^yQ7Z!J>C3reg0#P$JzTNI1LMlczY+)td)7NQ}LsRr8HX z+MvB8lcc)>zluj#dN4Vr_Lp6$gER^puDxL|C_eVy5!(>f*SPqoOACs9KM+tLiYr(Tjp$(Q6QCVQS;0M4tQvm77BZ#5&3mL8 zm5#$Mlz=d%m=c<-lJ6_=3| zMn5ronAEMFQ6MpFjYwG~aa=WwlJ{9tMf0foz3^;5b1Y`0PAfIAsl>1Y<{P9eKsV0Q zyD>}(vRW*xL~>@$t7IQ6r|{ffF8z0m(uE(!^wT zVe!J(IifGorr>X6XY*O()FanC5iIt|aMQ*i(jnVcBIi%F+K4~bM%;=d2O|5Hf9i%I zGuBNq1wkA_JfPS_jYR$$b*I);b42{L37g=p&mAS+FxLw0Y;wGc`o<@trM@${yyP^F z6S0U3{mA@nbz=%$u91M>OVBdi{qqJ?UGRU(r0P7n|96(4|7$C*UKO{Q$m{AtvwZTf z?PA2kfU_50&mWlI_a$+yg|cnQM$3Pw`P5K>3*({3k)4m@6w9!$_st-e?@zIKd;I#P z&X*Ue%NVn)JEetTSlxo^#%6R+2p!O6nh4|YFIsXU2N&t4h@Se#FZJ&2=d^ZiD|twEDJ)EF+r!zb zZzZ9(-ab<_EK30J>}T%MHFcSRfy8I^L$=-@cA6}|Vp6rU97-sDt>xH)RMS}9mcLN8 z_WpmUef=e^9jjoBq&o zIgfNfT!B59n78n&8p&hJyM{M;wFMYPR;C2&t(dVbjp1QiUg-WX>{#MYe|Sr@4inz0 z`r+Hbzv&PEc?oK8NU$}aPx#x4Tku)JI18<4JGbJk_@5PR|F4&zA?eIETMs7snEmt9 znD&(mhZH-By#q*Fw%mU{nP0i_FPO~#_D@z^!0c+_v2s8@jq+CX(34e}mgtK<%G$)1Sv< zhLP+c_)LFwd44wx*?;fy;v`r;zWBR9?XNEH6U*FRYTN%smsgvLyH=^rs8RsCSWb=A zOSh_bYt-r;C&=(**3Yq}14QitgcrOtlGyNW%K<}hxTB!s+aMdWbQ>Mik+2uS|9HFH!f?q`NzK~Tw4qR? zU5ERUAcS^4Y)$b76^Vgi0|8N&K}n}8ly z6hzZ2F`Um`R%8F3n^xohJRXz$^p`+wElIKWY%*E(W@Zhc?w&rGqJ76~Jrx#+*{#L? z^fX2Fmb9xQ^zw9OGQ-MWhg2Ky!v1-@N}y{+#vN?G%^Zsd!<)IDgM3?gzP|-(0h`rZ z1;J>6T488vrBhKviHu8e42ZV^63_k7r37(fTCT=!HbQCq{0{w2g_eFGqSA~nmb5DG zxo%noQA$o)dTrx_-4{w`sF7stCg$B+D%URA0`*RF_kx2=`%1z)bp< z!{Wu-)YC{B20;v9LPG0@CUh2g*xj!83H=6I7u=7A%Rg2S%+No?{cu3(E^>?*1Qc**en)&oqpS9*i5ALiX!WZpk)0e!nl?@5Ff!8Nk1GB+>??3UJ#kuxB;Q&;%2Oz z)>BzEBYqNZlzgOdTR>O~RJeeRk`cS1=2K5P!)ryv$J<VSzw?90oeyz$ci0YGi{luqQcV2kGVv72eqRA_BCjxaD+a4pkfaN=EAV8=*U^+Dz z^ij}=;*m!=1Sj!U*Jhi_IV)+4VNA>vm3%)no4UrBFlmg%_Ev`}eT>nRI06vmzEAM( zE-Ax<+(k+<<$YCBQbo@!1aXT6(1y0 zroQpZ3ThvlJy1qIlOd=ZjmTFrDByY+_xfksJ64ZijNr7Jo5z`lk%DkiM*L&$tWMlJ zuQ=z~GqEMIdI$nVxe5SPK1DIefo}o@-FI74;ny$tO)8zxJA@vJ7sX%&ocy@{J-v_*(Es*Oz_VzH9n}Yau_UUk>i=+#o(EIPgz)Zba_KfA?Mg zSHfeJKe}2yI^qNF&qJgnHNM7nBxpRLRd5{qJlzrb2KG~DYm&pew=JMa8@Rl8%`H9S zj*o5%MhG5nWhtItqhdd7Ad>&M%7Wv@Z>H%Me~eI9Hpwe=vnuyx7M)UC38Y<6h%b5# z3X_?8{q@*O3q-~w7+A(T`>-<_<`P#1g}iC3`FC%ZK~8co%@Q-lm9Q^8xFMl5<|#G3 zYPeCw|FmvOzI3t7U-I77f}XlWs`clk|Iv4ibhvou|6kwrMWcmw{af@~ic+ZSbGzw; z|E6sdDd?(??jJ3G6BJWmKn=Vs#)?bZ5{0||Q#W}`$p8zeZNe(o2}J#$;j#Z$-9((< z()anCnnKm$(zf$qHKdKJ0T1FWHXWaL{9m+f(CpI+&w427!=e9a-*xs}cUOzY*Z4!f z=jR@Fci(yNztVR-J-0Rav#z7#cy>(x+h2os{nh# z=xCZ?#;xdS$lE>ET5s2<#yuS;iA#H_A4=-Bc20Qorv;CQ=q{vP?mPAU?E5F*lstpu zF-g0dE4oUzRWaF*Y7Y$*mh|p?k>-55AD67OMsvFt$(h)_@#o%|dAlX?9PgHI8|xas zS(oldT%)y6b{3Rs8wPWJj)ITB z5rv#zBcXb~*CSP^sDEQ@+h6UX@9>Vi5@apSp!~2x*zNH;MFVRdY?19=AcgJ#i(95U zOBF1ax$f}-!oxt=Qn9)J!RLj0t&bsq*EV7FQW%vlTEqtJ00Cn3!@mJH&@)&Tgrv$lVB-+#D5_qknftN#z>Q)$XbDZ$D+ zP17x`|D|goY<}@Jl}mkI{nSPX?{yM45aT3AJ6GI{Q@bXRJCD0$t+02#zGz7&;hIpq zi%*A1i20h`i64OuHyZaSWPOf%@7isvrVl#ppa;{U&5flr>^n)T>-gjG- zb&rkkN8wy0I!7<@H}R1>-d|j3Z%vP<+`zh}-zSKBZ~BV%e=`*A_5o(2T?AuYhbyw;q#F*KhgNGoG(V+a3^ZR_)j$dOfhK|RkoX?HWYv!gB>?M_k{8cp)w4Wo?>DXYU)!Y0d$x9t%byPIgaWmMdKRJ_ zV2?_E0 z(zpE5d>_RA?3z{>kh(!T!WdDg?csS$jV32G?Mrr8Js`?Gj(sF6LckNrRU|j~4seOg z;axJuwNr5KH8cI~Dul+-sjxe+y)Hh?7&GfeH!7tbbAT4rul;B!3CMQglRNFB8fGWx zrN@SFB~pZT^2w&3k0mw%SpG%y z9bGmcRg>-`9+rH^eH8>h{d7z!30t(!y3XzJl@|%oTbA0cq9H4t5$$JYDPBF{TsjS^ zZoL5)Xj9Ez!BuFf9~5vM*lZS>Y3f|%H@Fxf(6{cOaTG7$8mw~J zYu;YN&70o|V=u|v9hJWr?&8kx;4OK%SZg8<0aGD_ILeU3(trZ)eJ!(x3@KxH3b4`j zS!%90lf&tp`!ZKu;)I@-Dt`UJ8wJ6Ybs@(Mk#=Xf(E#zZR_gn11}p+Vil?C*#VZ+w zKItRkZLuJgkFc}x3Bw03KO57Wn(|5c#Hu=I|M6`l8jKBs zLLAT*efLAHQ{+VQ0f-XY4`~`}?T9s7xKU*tpV1 z@R$kGajfWT&9T)X4WB`GUf&stFiT>sRuP`&wibjM-ijPD)iiCf*cWTl_UYFyKc!zx z#VM&v`VugNnSR4?yS7#9`fB{vY6CA&(=F1_dCU`Rw9VZ3*V9m7dHg zvJ!_r?d&Ea$Dy(*TQ=c*M|?ofvIs#34+^>4_8k+!8sAnn4?l?kX~i50GODKf`)jCy zj^{8uAMc&dEi<`3nCjxJtF4<1tjgJ4WKvYB+^bz>NW+kNO5KsKo#6Ajr+L^Rdu=~+ z02y{_ct9!mU}=)9!S%2I`mXw5xk>ZulJC^$0+}w+N0adKfTU(77=M0rg?kj-+9ED_4ms6Co2@`2G6_@EIwO2&ct29D0y&Otzq!R zt$kvBniAV0BLZ>SJHsWC7E$NV`~SEJv8I1s1}g<5*^AFHi^z%Lyaq%F=G$-yzXs(E z%hh85no^R}x>StDQydS3gMCIoz|Yx<6u~$2r2Fz|@(~2gKkq`b@gZS4XW}>WsdIW3K2XB(n^d@ugjo;m8>%u_`c9X|&-8dVIQROk-ncelIoextX8FCD z{@18w)(j&zRqf%@s6dF*TeH@z8wGP&mc!-k!efgnP3{S>o(_}Np!$t1>TNm{PvXosKD?a>+ZrZ}Zj?rw+c5zf2s<`AMZ$h;z^)2{Hx8cJmiIbF`9k z64mKoh0mV|x6Kt^PcQTv&6ioCPJ5s2PCwfdc=k6SvdR|e z-96hqnMnGW-&R*3R4VtxE)P;C@(nFKTgUARWcV3lYt0eg2tq3aAucAmI9L2;x0o$+ z?sdNKbL_cg8KDiL@B**M2BY}vgUp0hbyk!U=pv$7Pl0>(P&g0zB6btvwHs{88l$ zuHG@Jes-|>#lg^@n~)Fw>5Unp^s8t((qe;i+ZH)&n{``g-ax*-N7-Z7n@I;LB5F4+ zYPS#8{>Z4^yt!Qfwo^Lj1xVEhy`#0NgB3|xf zCIcs@dAhOxmV0fXNa1h7Phb_>FrEmZI@eNOgTkvSS1<2f8VUx`y`h%5E|4_q<7nNK}*VQ#!eo0GHx{@D7^P}o9ld=du2zO z=rt-o#CZ!L+l)}kyoSuYe!UO(xe~OtcU|dsXSCdnnmwQTpd08;@WCiV6#0gy5khxC zsk#MyfA)sP`9nLL5!=isff=fry|*DAV_=K`7)!7AR5QS=2hQz4&d9ahuoQi(ea*Hx zpu(h*qx+bq$t+m-iA+Pjm&%cg8I6TpF+U;xYj815vL1vD3}SuwlD~ z;pm0#siWPjFT;_)hb8rHv?VENd>JSkz5}mhxM6)i5ctjV1aAXoi2x*k4LeRWJ4Aqa zVfhl1z)eGT2}#f+>(=NbXbBq@fDGMjs^)jQC%f6`9R$J52GGj+;+TTR*NtW)M~mIY z04)BnJ>E$#AbDkIEn02+$L;I)JC9g$lZL$2%zkDPbl`r|&a37Pm&v?#P!m?Li?fd3 z?5#g0H?nzo;zve>dcjP!!;Sm=k~rG$iQvE`(cUC*S)(40?Io=HDPvr zSnJae0fC+A=j`L(x&*tJMkyxhZl@_8u81oO9lmYVV-9?MbQqHf%>WA&04)#2HA2gI zCy4@Y39w6fT`5(Of^kt9@NNaGtHEtNiR*l4{#cc%jecL|>uUgwSMj+H@ZV;FkaSQr z6N&%?5{WY!@RlY9=YE$sqL1iPDl{Mrlwy~`jZG$E|M`UR(tsW~}T#)=A6 zwSJ5i7)9{5F=n(qJTkyOhnNjH1aKc)RZA@(WuWh5(e+b{vx)#Pi56t73xzQF&DLRO zp4pi*1p|<_02BIr$UBk2lkbiza}X>61jgH~JqQBRi%to2&=s_sQ8{L}fuCaR9-jo& z0Ull+7!Xx>EcT%Kscxeb>rmgUXUW~sgv3Y*}D`YEN2s)e26qHtf>op{GGbGL-2KB&X(3=!mVYnu!}=beI@z1}K0D zmRpB=vY|C$ZgGIMHWIpY7Hm%EqbKpbZs5^H@V7F+^fY&KHeV|mqJw>|KQI+H*nakJ z``Ldt<}?gWYa2*K8{)ozafi^7)NgAP{>yBr206MVySF$-Qn*y4&o0Ka^^>w1`mJgOU-Jy~_e*(AskHNCDuDXr zYi0L?`mXWBUD?>4>R0%_sZ~3n!uiw8L~Fmk{sDM%=boeH**6RwwQmCRx9r|Bmgdch z?)w>aysJxpI$V^RUuY6H65#cvXEj*c9wW7ByMLIHc>aaK3cE-S-vwk}! zPcNSB*!}m;3ww=EG}QDV1nP}Y#+?2c$CqJFSbUSS|6wEvXXK-`z6mU};R6$UOW z?rprPCt25yFYKvU?=i3aO!}>Cv-&e?V=A|#lW836gx;G+ z2>n?P@mjQvi8|QVd91Cu`%3dE&b_^upx=r|`{TU^qE8R#=?uiw{=4HgpyD==xHmiT z=y!4FhcwuqVcQPAv-67Q>Xg5A0PnznC;$~wa;PALivqS)4!_}yT6@ahy-%#x8xrb= zwH>k`vMHnabPY$k9^cY?JOb&ImSo`*JtL}rpmJ1u>4Qs|ViMwa!{^X@IeRE2$4b9X zKFuE0m^`@ypZ(enba=kL^QiXTnLpc(Czh6{$}}8j#O$v4e+}wB_PT!G=JL2&j_j?V zvB?r;4BoU5@Fx9ev!e>DY<{`3bKU-|j6kCL#d@4)O}X~{(coK0JRX`_<@`{n+?uYj zRpHZ!PhF3H(Q)`5Rq;^w^Y+7>odW`2C<&rnu2~$IQtjhes=~2oPQeX6S?(RMb z*W=HTFKTDDy`m`t-Ajqe-?w>0YR`@b$>SE zpbC`~mM#R7xpyK_&|36 zK6ZHG+H%5$c-^y`b{gls_%|CF?m=6Ss+`sKQq}d4Joh{q|FAn=X)jNjg`_WhJ@Hz` zhoDj}sE_6Wo&4Hl7M2UwG!GL!6ZpY6XTYb}pQcPTk7)V)Oeg3r;#TXmLq;EZB1>#x z7Vlw^Gn2~k*Pax%UXRlA8^5M`6Qz1y#AMY9(3o$njHkcr{aADDV6-eFFJwHX;acw4 zS)tE?5%`STYE8!7N01; zkM(|R?*G>Nv(D&R@5aHTug~4jJil#mcptvk>cYHEZ4Tzul91IJ{(bV4R?Ff!TOHb> z@cvf%SVg3di{=Gw{fU9pr*2v{J7(QPM`hW+E>>x;Vr*yqSue+JPQ5<$$VTn$PG@O! zTaqz;lzPRtc>HR9kfzMx8k*9@ps?J*y^qx|$1=X&&>9!@UGG%?gAe9w&f4m5w$0wT zMN|5{M!p)2n*Z2x@89$Ed)24@{=BhuiY*!CQP<;ZTE1^m+f*07pq^p?Go8&9dFE!j znG17UCQFp&L)P9&YS)6;JTP+`Ambh)WMCJLdGq2z*6wV9ZB~TDJ+hikG=&;4x+Ix=X{^gY z%i^9@{wAs(nKR%j-zx(*S~f7BOMYB@oD!+9!d>j#-lu%5DpF~u#~JgZ6DcoPr3|&e z+e71{XaOJ4 z1^)CU$NiTvyI98en@9M z>_&+TubP;D?3i{4q9A7%#DA8%;P1o2;)?Fq2aLrVNFgD*?nLoo2Fo@msgSQi6&!^G zOQeeybde%JjTKn)pYK4xbmRw!aj5`SPmqPiZI=Mwu)S>HSlqM%YJ(q+%v z8#~NV_hj?x^5%+nGIjh-+#W?3n@Sn8A%Ny%5f%Cf^e@9+zfd&KpROW60HCsac4U9- zQz#*jsFCvSfG)jW(gjOKdvZ5}*mfcuguSlkx`)M zjI`}O>y?0urK*Juym^PA{mCZVbwbBb-evjj=!Mehn2SwQZ5b`6=})V2+M7)_9y^)b z^Q~T9j>fDfmyj0UD}7#^uDLcfe0ud&b*xir-a-7ndn!lj3#i-Wf5-dr0rOABPQPn1 z5sG{L+++F*>~@-!#~m-){4=T7u5IBh@&1?gp536HY(HXiH0b60i#y{dub;eoH00;} z%X_diW}Zz#g!IDPgj3qh3wINu%@$rgIwxs@NGT?zg6CfR6IZ zOu4kM_|fT9-}AePX?GT0f2W=rSg|>t`EudS&+$`(J9m$t`ML0x14|!*Vv;x{=|wi& zIekQOFo|lm_)dhDKB|F9E(};)lAcH(HyKPmcdCl6xt%`gD4Zx?e0o{SIb-_3V9Lci zi!1wS88b&PCn{eqelVNJczAN~M9t5|kGAm4**r{Yz4YrVdNHQb`-b$MDi(PzLCzzoK#QyevCj7HkdHGAI zE#7i6`CQMH!z$Ue7v9{y{*yFQt&puX@bdY$lVtSZMo~cjoOEb<&kY}0mW-28y=ZaM zv(C!nmnLjR^?%$67*yO`hub_!jvbP2++mhYT>3top6OS!&09yaUGCg7zr(?-9c)*t z?e`QpJ*4>k-l@};o1(w%)zsHc9sg}1Q|WN~(jfA9&S^`Aa@tqc;kE4^=O3@nWs`~7 z+xK#8j`}N?8gNRLL`Cm@dA}y|Db!YRc+?7bSSOjX*l;Y1TAhujE!}F~{@pkS1|k7s zG!kmNPA0Ie3kmSkJq$bm%OcQPDG)1a|;xAkD{kOct`wIiGYANlRFVuJuusz(ATGT%{bQ*#kRK#LFF0 zmX=EM@uQ|=u@d#PGzJeLiK5Os%t=5|Ez7A&y7089k<+nUM$OsN+?k@lwFRk|EO_MP zP#~M+Yo5nt{;~=1i+b?nAzA{KmLfy-ad6@KaIqD%bAHt3dQuL8rgV*##)N0!VHsGv zXmdFC`i}O%GQ(h*>60&H;OXm7Pasb!AL@h%p#Z># z0rDY&j-W6CmbrSnG<_h?WgQ%z&%FRra4OgF1IZX`B%@&De3JPazAAtx$t&<&#s9$twcsAuQ61*=dua`o?SHLY+LC!KXYiku3 zYq*Y#ry<(Y5V(JE6{Le``(O>pPNzlBfsKbrf=y>LYUKq@n2@?N( zBfGW##VjpjQriMmc+Z#`JPVH_g0cughD?ZZQJ(%T%{K{RfzQjqlIwJMLt~-FyKsvn zD3An+TZaOxq`+8M3O>&i?c^5$i;@7#PV%5yeJFv}alzhlST7Drh8Bzk$04C^NH8Im zd}fjq)dNpPfOJr*o?%qqS+XOOg2&VJl5Y5?=lbr_ZoV(;b_3}o-bZ4+;!*oV@DG1bs+>7^0{lcVRl_cju7sbSCNGt`T9CtWKhh z6v5moDADU+=XEj$3C%9d!{GB!6%>vXkmtMVn6nO5=@^%0LmGM@hU>Nja~?M)Ydp(6 z5>1^Hgk~YhIJWhS18>|j5b6ua&HQ>`EW|sO?1m*Jbu=)d-4{}QF0yx)(VzKU@kDbe@pj9l+Td#wY0I0V)+z?6YNGMj( z09)z7by{&*cy|sLR3`v=@+SN`b5A->QWDbL49)ZWxRk@;*|>aCRytgkK=VWRG_V;c zG*xfg2f#aNu7hQfdAtt1%zn7mA;^o(`~K#grfAA+5hR-p3Y~<0y$)eq$Yy{L90Bn(DOum2CEGWbra%2{iZ+-yB4Cm+110F*4 z*%VAH%oupheYW`_;QBof+k7aH-*NOdLt{TBhLhsn!6IgGz$D z`Rlo&5d2sHu4_(vO)mBw5wWmn6g+e?_{5;YkuYj<&q`z>jB~0YFM|=Y_L<-|=aAh4kLDJC zv9PtmyjZ4VI2{&V0nfn1+6K>G8{nTgL(1Pgdf)a%kJXn3 zE2vkY&T(t-K;M4&7Fv4CKx@m;Y>Q*$yk#7)WfHSxdTPszwq<^4%i`nhi25zJv#9*O zEj%kfFW&Vu;#llvwawf1x4+=&`LJj-H5^TiM%#0|h3LO;JISlzu5R}arMmm_TU{!2 z*Sdq1hR=wf^ga$dfhx3f?q=6*Q`o7InRU3!#%-}X2MxQN8x&V|;YnfJ_ajp;9Nvy5 z!qF)gWLSBa$_H3Rg9bHnuapyB7D|Io zxh^QSwlz$Bdy~wOF~T5f`Pg$6IOB`P~M)nEm;q+A0yp zi#zD8QTz(|uD9(n6ZTu}h}BmNbV_PGG0MAnJ`4M`?2allLOwtgHE{WSg7VLR+MS3~ zl8+jx6T&)<9T@U*T_%dLsJ)i0)NEaB&zzS_W<7eDLVf0-d0T)MzyZL_B{EFB6YV_}&tbU0z&^Gv@AP4|oe<&h@{>ol1H9))6|Q#G zjl~!zJ%$3DQo727`Qa$LF(rHA&8N}YeNdw06JFf7F#&(oS-O6?ELS7@tEK`YSL&l? z9r4$RQEdP{&WG~GicZhE30IOrt&_o<-M5<}}XQu1FXO;_A@%4RGU&u}`CCHNiw1e|kil zDaY3_f)BMrFLjgV(Czqh{jl@GvP%-=<9bn)3xyi%bv%Id_-GlwL`!O?hdRTZH5Mvm zyIqO!8(`-f6aKu%E41{WJ*3&KO)qZT6>Tv+epI@p`+4$yiirEc*;!YEa}L=evMmhn zr`m?2ASfz0%1A(>Up;wBgON1C2QWs(&Z7Kh${>E{+*Re|2I*sYU+^5eYXCgyfkBe_Dbnor7SNjE&WbrRp3?&q~H7ML^%abWkn&v9y}~iH=+shl zMOJLM_Cchh0zjnM5Ip5Q)P?7RURuI})|8iLU5wVn3-FCg%GqoOk?>pEgtdC1J#$A1 zl$O1>yQ)}h5@mw8%D-<_O*(@;s&`SN=-$e89k%L{35KTfcDo@U$X)(W`V(q|I#{A{ zmHUD(t-JiUL8x(;CY2`IcK8oV?4S3zx3Ef~qMfc}3ovHVPH5-oH-dzIR5(jF4@(o) zcyzKWX{S9IC9#5B*9Qr1ty>kpqB;Z}!$1`nU$CH<$a7%zmxi792#mZT$7pSWs8%xDNk5t(UoMVz6Wraft zqmj~FM#*4TyugJma)lUo#daoKIICzxl}&L5aB@%WHPqz=>{|BQd+!S+3IgAf@@)$r z7y9#pm0R$RnAzmQ;CwZ?=<`l}{~i}*vB?tsLlYQvA3^WYdgZUNR2R(CqJ=*VGC#w{ zwF@5?e_etpuNG?`&+1$}y2g_66N70tdtc5`9B)bxdY0(B{Wxb5O!*l&@#_o;kxY-U zc!`8^k0_T+&z((=t$?5!9bfqxs?M-HgS7Y6DPee34tGsC zdsZYM8js|B<|}#FA`-INAj`n!W1>|GlVz^STJyNVu5@+<&fu=7CMyCjHjA_V)T`W^ zqb00d4wK-qRQXA8GMKdx2OL;3<3!^);BRH+pU9^%S1z{L2$kEumc?PUr@Cs&;(cq6 zJ;v6}9PK%(x1T#N@z`PG!U5~}NN=Z?O&Is{xl2dFxrp#lgBPX_k)I=P>^;Bcsd&!b z5T)R;pkgKL{+Uv(7Vf65dK1Pe3{Uqx|9Us*1czr24a z4t8tfV_kWWpsD-`LEWw>6+X8v^K!2y&EBxvz~#~86Qd6W=YHBDvKr4J-)Z16hDssD zF;)HSuR^B^Scl()RlOIRFi$s9Dt#>#vm~iyF}6SP=svkBw9+HOM8G%hn5xT(%1yh| zF&@%|V8?0Adik-^#MBb--499|#p9>Nw~EPGpDp%wr?xuf`x+mb$-I5=(x#^2`cdl@ z-wAV^-yovO>yJbH-KnYXJR#Z4j(N|Vj-dN>WyKF#W%kPny#9jO8U|-Rrr7>@E%NV* z_||yr@?cBU)^XW^}d}tCnZ20h%J?|@f zxyqaeq3;}(I38hPSf9G>x7^%;nMh{Igb6i= zy?d}IH=Nhg1f7I{)r;3I(>@UQj#-9bv z;;bfdR(fhirVU0IHDjj+V^1{`{|1u~HPh$@(?m71v<9;?YUb1i^K)tz7aJ^UBF(44 zs2?g8+G>`AYS!Zo)(_QeUT_+0-l$k;B z%KD?WI_eHijSimbj{c2~gOQ&#Dy%}(ozohf?6%ho>{oIvWv&19Fh_fCcCZrzP; zgX-=ub(f`=uBHvvtz@eiFt^uc4iGJ8$d;{S%W<6bXrs51hL2{GkEvSMJ82yDz1Kyu zabQrR3CpCMWz|ErLag|tH3gi}2-Hy*S*nch$$$H+`YeiU9;@L^syj5O5j@`Xw=PP% znS7;-75MEU!3P|)r+CyMsIi!A#lTq`k6M&3S(sA}d%nU|;VdV~_4yF*Hk>s?W3Ln! zq4Obv1c^%g5IxOVDSy6Fo*jLtkrf`%jGxnRJvSPEQCZtk6Hw4RT*itSY>uq?V2^CZ zRk6aUn(<1_k(HXqb?U73px&*KQkZ7*!1*R^oH3pZouU}h$(F#7Wjm`}_N;9Wj<6JE z(F(Rp{b*18Xw&*0liGaPza_p6Y|S8B4Y90;VonMxTd2z(Nz?Kk2ZskmTLw0JwSjFG zSvJg;fTWfjQuvV?C}9z2ISW3f?~s$G#(jioVpEJPsAq1YgbY$-#wTE&^p?!!2MjTUjAetDR+uUI7DmV~OL9PH%- zK?f9vZP)D7%t_AGVDmNHSpmytnFErTAxZ9XzgupmiIDW1+Y)c? z{xuxKFqCi;Y}E>03nIM<96!Zr5d0~EQh(lxX?3ys2A1h@3PAxjYg zFb;Xj3?7qKL~5#?G_T!>PdGIq$Yd8J84Ff&up=3d*i?vUwYy6PkL=sE)7c%i?YjOn zBi4|?Bi9A8Bn73Io-xri!|Hr7tU7{tYDr6+k(mPc$#Ny=3qi9oyGSUaOel2j58 z_d|MiN$;IN`%`&jDfUNJTxuOj#&w)woBU6|UntxN!AUH#p3TX~E`udwk4jWL2&WIP zIs{4mVVNq}weI1hs$SU!j~uKfVV?P+=wR)cT+FDwbQIZ;$nswS4+_8iGEO#2C!3;Y zSWJ?7BhDfVY~}aP@)^tY&-LP9djSW#u9?Xq6pQ=(+k8Woq@%SNrLs++gP+PbWGJ?c z210ZmNn?)#TrJjkM7xTJiWQb_BnbxFt5=bfN7p|5g`f~1En|?SdafmLM1w2-8j~e^ zXzx5d71%S{0|3`I#q^A*7?TAX?Im{M)o1F?Jk*h##b#wZP^cos#qnrP+7(qlSNQ{$ zM1daG^3LJa2aI?a1!5`J%iBnSq2OdD3dpC4{_$5ylNoygt?g1AJs_a*Gade`i<`(JA z9~SQ~``7ll`)BNR!t9ldaj*-swmn*V58AEM!Ini}9uq;`qDkZ}98UbB`Jd~1tm^@-cyXc(DB$0aq70V?t1GmDTU6Xd^F$(0O(n;LIOEwC_8VO{{ z$(y>9xo_t-*-K=!!?0IZZqqKg;sfbds-4=Xs2o>OX4n~oO(>Ovxqn0S~F6pe2a{-L9WC4Yh;@79hKWTEv;4 zZc98|D|emO;|)L|ZW#Kp)OBxI@sfGBNSTjV*1Y6EUR*&h*a!u-nIRj*9_1p*7$yb1 ziz|MGGjL~N1aT-qoJmrg!Q#>7j94S&Wt;MT^c>4rhE-w0O{a23?(wor^U3IC*7@iC z28|%=QG25V9BLF4<-8vC0?M1qy~hE^xH7t6k3l}pYjE-gcg#HZ9Al9I)LfojQ zqTiKeou6cZ=4zuI=&)B61tV`U0fxck$gL6mRdOeIrN*}b2hTJTb0XJ(wf_&=?z^qY zc1;)f6Kd#HdP(SAno1|3_a-VJA|O>n0YN$>)X+n(Dou(40)hl7(h0ptSCp!BsY=hz zyUM(4X3fmnGsoUJ@(J=sp7Xh``#yhl9m-vVa^OxSzCB^u)u5tqWtLypRywcKjwxw$ zj#uj|rFF`GAxxfVdK%erEsH@YPeJ9pyl#-tv-EyYrnGeJDH_Q zpK1|G6?94Jbn+=iw2--&EOoY!yF_8 z)tzzlo7x4P%3=!fJp#rWca%7yawWP|h+b)+R4J+m6{^Fd0Yb@h0+lZHP;#wx8g69= z_2NmL1P@9Wi|ABEo+3a>_u^(&;$nLgWz^$xh-k9oa{8E+fy&Ln*`OyMe)e?re+WE#3^4$J`hMzWr zCE72!+_U#^!uVBVy4Mwjj7OI5@Yfgk%W3Vpa}}mTwy@Wohu(XA3mbGzuC)3XYFMk- z`{aIe&K^2uGlq zONVf-1}f!Wp4eLB@ZS|Lg3fju|1erZue&UNRV{Vo%#l4kbUq;*RZhoRIdewN*p)u_ z*=I*L*Q9;We(og{)XQ7)m9YBbQcvel`|~w*7;EwE@-klVpkxqVnH?w}>Ubp0aR`rM!-2yKM z883U zjE}f-U-fk9TzE|2W5mz5KgKl<#^?*Y_slrSe9}JAgt|$Y2;R6S^9imvUv8@LWT1ND z;$hv>Pv)+bJ`HzF2N_K6>K8_j-1jHCJ!2OmKJ|yudVAI}+kI-*xgY^=w3b&+&AHWR zG9ex{ZfDH$_pxgKH%9B;(4B9=C)?BagFCyU%}9UZg#U%nx|{^3W_1V(IPYCaH8ryQ z7e?#L3*isF!Du6^^;g-C=hjOL{=LzfO@jE-Xnj=lPiMf^c)6^Whp_fK~7_Cpf?DazbG+IZj4~G73v>sxUp5=IS{5Ja2Xr13= z%d}x%e}8l8$FundKj;5uw00Zab^ZKX_?$av!QYuHm=-re>c3R}_Uq|p&B)hBb4kvh z9sCOIdb0MiSxHaV>y7VU9EJKSK3W-bez`SkSkdC{5hd(&z8A-;!xg&13x6fI1sw|Zy~_P*ocop^`QB3Cklh4GTGx==AHPkqsx!{%t&pft&c zV@Sntd1 zkEyR_KN7hK`l9ksPHuji7Tv(GGUtI+1EQ*%3P)o|M;jcGIUf5A^o`@~q{3 zk&-DGx2pPRT|p`_nftq6lw^nc6LeH^O5^2L{F|K(AT&Y5&+~LBB=H6!hKNg6%jhWO_Z|ynMK)R_d{jUQlOI$cW zQyu|sxrge=5>n()I+;;7-09>#mFreIUN>>HCg1=j?IeBuFol(p%*h@^G79U4v0OWn zq659;nZ9G8=r9IKpEX4gtDMX*y@#kqxhC$704CUjpyZvLhEV>Gp_`CTakv>`VT@gj zzJ?kLZe~L%^>>n&bq8JNsJ5*2TzqJ8Ax-6I2`^8iMBcx$ZZ-TE@|JoNXVZF??0z_XO-lKVVp2B>B z(Uu{)Ln$gY;_!1zi@C#5+QYWfVP5Em>V%ZBiQE$RG*(+xR_{HX+9HR)OV@s}CrvPh zkfUd9<614;B5;r)ds>Kep$bXuXY~#-P^5O<0h|=d!o$>qFMY@F^xf*ht6yAWmH$en zd>?~g%*bz7l>1y|jx>NQ3nf(mCW zrNv*}AB)mKL)&m35!|qL;^2G`V*!dtrVt$~B>8|YZ$X0@-PkmfFvf8{N+O%TMmE@2&$Z`|5yY{~fqS7K|1 zwa~~0oFqx|^mQ_6mL)dRH8n3Ou1#VLIumYB5;LTQAv0FmcmNEjtJY0S__$}Nq#HT1nkrP>dy?)X#5FsYaf@=lug z7bJ{z`17{t0tz*3w=BwVEL4MlQNXQJc&=^uF-DE$b~S-ev1f$woAA%FQ;(SKJ!6>< zz3H1wh=h4OV|Bsm)HMrT1*ITzHn}itWmcDJPCK!P1_59K_%LD7L^dYZygsIpu(5f@ zTA<O1pN{IyTh6B@4R0xiqnV#h5Jw5ytI+ChzT$O8WXv zjcar?(zBQV$7p)&r~2K)L#v6mlQyL?+!${^4y_bR{8+sPXq$q;vxwPZ?M8)G@CTp4jaLZX4qr!wk!&23a`}NUmHh>5{THOn zPEs_YUH0{PI|NDhtOA9$-g76TB02EIUv}v9npISos?Of2?r}I}hlhsPA(Z|yhEfMk zao$dUsY_vxTt4sdxGeElYh%$sG9Ds7iWzd}z)8y5ILx5*LV9dipqO@-8=GG|XIr=w z%ZRIJqcZ^*YygHolgX87^mSHrb4T4g~sj8#LjaHoO8ItYs&u%sluo1^F(MKl$ zWdb17X6Z2JnghRi--1O+yc-mxRnJ)fjCBv z0%EmAwhwLG=Ogqwpeud0G!g@JM(x~`AV#(^I{f>c+%{$D_uAqDVzxza1;FKG$0UjW z37~9;i?osjEXA}y7KrL_k*mTMzu2S5YG;16$fyBNG_zxxgIq~7;LZX7YdG~G2yaVp zFF?urL0q4sNrP#@fpBmPZFPxO^$eI>Y;9-`U>IDK{<>Dphaz{O_*h{}AF;qy2(UAw zDPs#L*pTFY1$5Lq^w#+WX-E>ABp&&8n%G6~>uvfhPZ}OO8kQYg1q^#=!dMGt|xEYA+$DGHaimNv_~%ul%5m$d6{lmF3eF+WuGp$gv_!`wR3H z2!=$+mFhuy4J2h9lG!7fQm&o8s-4bhh;9ynH3N}LBFT-QSIS`2)S&%KI~p@6zT$xJ z=2LnYoaUlH;^`ti@R)lppXK@;iou zl4xatJ_}BL-bN?q<<5rfLhEodp-A@@NyB%Um)bdI1l(GSUC5o;q;*)Wp-fw-(0C}< z3kK+UJInB5kb*etC6qM+&eku?3LrRi3VLu^Q0`|1%^~Yt&!AVVK%543Z?cfgR*MMR zI$oW2=I?#XMj-CC#plo9onIbs#~18&6|fi;uwdbp7!do~B4dOdTd^HS%2N(oJ+?L| zw+1zLeAFF-yqK+fB{V)ig3v5kmn6sQ0uvpn~ z*w!`##F9&=JNR{M8ac7==(4F5^qiYB&a6x3_i|+|-khcI*sn~fb*a>`i`;?Ag76pv zl*!DF9W#M%_cNfecW(u8hk(Gi@*U%K{c z;UfogA4iGT_e@KSBgyW~FMD{1IF3)+EZ09@nY7X;v{{@iG$XNb)w?G}?m29dwNr0P z`u<*@4?6zm#@Zw8}O+kRHbfdoH7{xbw%jT?(PeLRK&@Mep ze|>z*e+S9xkikl+9+2Z>c{0g2)nj(@L;5(Hm975?03>%EHP>QYXqG8Qc3rM+mY7Vs zBxSfh*?`ca9u_^Ly}Ic-Pk8H{OIpgav=6`Bx~E*8{<`*9Bq?vot>E?}#p`a3&s<+l zxmNyyy~Ezr)mRj&;{5~N!pC&>5A_K=`<}Uf zdjE*7koOIEGeke$Bg0EK%>4^e`cbWPv0db)lgo|Fr=~Z2ZvEzKPIPRMaP{x-G_`+N z|I9}|Q?+0!ya)SCw1GEMnQ3z>Z6(;6Mj z{2RadAXxcd%+ML%(8W6;%hS)!G7-2;uk7#MX;Gnse!-bqp{Y@Pc_p{mSP(Cxr0D%Z zgtHKqclbpt!f&tyUD1xfQLx|#5aAa$!g(#i3l0L78^XAc8RQ#WGp4=i>mn895W>U{ z?T^Fmv!Fm(VU5mVnif%Knc?u6C{sCp0(}I3RtTecY=WOz#rMc?46=wsAxX};sl?5k zd8l^gagRlGUy+}+MU3z9!+yDH7r(GYr}#;%;1Y{_Rz3gCnYbE~NMxzbh*rX9zoMY5 z#Iu>Om*G$PZ#&XwI1L}!FwZ(t7dkk9Pv-Y`VQfr!8kHjMpK7O-s_6ej>O@VD)rG@9 zS@|SIR6b?zN}8r+@-6=-oY|?4{*FeCjv2*Vlzf>!{+a%bnZYNSNO}A@&#aintb~)S zWcloL|Lp9>?B^%hxB~f{SN=KW{yCt0ZWV`o4X513##|{9pjkc-N|M*zm?s*QHzfaj z(lU>sj9cPR-FqY5y(HshYWhHZvQNpTn!n4Tf7<=17ta2v+^qR@1SyXNG6)0G9ZQlw zn%fLaW-z?Zca<*?4shO?_Iu<4``#NrbO-$#BWNQS_Y=e4J)JPkl6a>yWP>Drawcll zqKM$ccP%rzHS38tONa8lLi|&olc2c4;f-%X;+t+^3cXR26#E3n?Oss7$sy`AEF$IoyQ%UadI z_nwLkK8m*@o;3uYH6Ynv-2IJI`hZC|!z2eHU=KuKbLFXLjRlGyUY$J-T6#`H(76VE zqWhyTys4?>tO;4@wY$hx%MM+$W3R&haR#=`Hnq&3wJa*Ot_HTQH??k`weBf?JPQ1H z()97->?262jX0={thtTqyp7_VZM=YrCX8#VovWF@gFmQ4xVc08yhBQ<^IA}+d|qep zYWu)hyJk=qPPe(s@Vv`Zsryz?w`Ftpz4LB6r5?wi9@pj`_wyc4rCy()UjOFa;PYPX zFYQCQT&QMj!Z|issV_aKFT1(#`FUS~Qva)<{_^Jj%JcpjrGfgOfyU;6mh*vjrNQnm zSoWa7q4U8prJ>27q1oo4`SYPgrQ!M@>}vDy_WAIh(#TQJ$Vu}^L*DR((kOB8C|S!W z)y3!u2QWvAWo;SbycmNjkMjqQ3%87mUyMKD7^MsTB;WE$`Qj7&`RIVsgl@}(;l+fh z^5k>tPq$ho?_EsVDNiltO**zrxnE3qDo>~8P5HD;2VYDhpMTO;o{4FhNw}DC4xUL4 zp3QEV#XS%1*Ik-@6+BmdZ?33iu15KD{l%2A{pXg8&+QkV+5^AzwR{=6_%fzEKN&nf z+cH0YF~6w%bv5|wddt`Ci?4gi-;RR6owR(rxcCNASs)HsAZuNqx?G@BS-cXm$lAKd zdASHxS>g{_5^h}*zg&`1S-uvsEZ@4Ue7Ou)ShEKJI>0`AMa^cO`U>_2V8VZV#%uzxP6k@8iBW zZeL3E;9BUx?@I^)!JpKNDG&#Yf%yN+KGDBY(WJPe&i_EY81Ecp*8b5a`WNcuyKbnM z`(G-{M_$5wmni=?{Gff1nnui*CclI6h%w$CZJq!^3hHJO1e+d^2lz!`deys0x2azk zWQ&Ux;4IWynoqLSA00y85*8mH z>@Ft}DLFViJ2^gJpL}JE7pbo6f(BFpCKp?MIS${2Fv>9R`{A@&I>`v49p1%A7Lf=- z;M@UEy%73zu>Y&d@?UGqN&iT_l;bPQudlD9nrI2HrkUS%T}`)eDqqd8ezv}f?-LdN zp5>6?`aRpFq+9@=Lbv!F_V~Ic7vNcSvPiusJi%!;+d`U7{kYXtFy_v&e0o86h=p}w z{NqKEA~b!mZE@P|hwHB_Ne+78srDPIS0pF2(Pb~5okUP80HD(R?evX}H`P5jk_40r>;yJ5AnNAEsq>5IPu;t`K(#A7`~ zfv*9Iw6* zcl&7CHd_4Gj6{jTQH29vFXTUh+zVtLV)=XvYn1_;4cjZ&iF<><_EZ^N_uP1X{{q6Eo-0x3=vMVz$F*v%p z9#|E;jo`65fsG6#M9f;=0xy>@XWoa_VwR$P1e`c^_j zr#$q3#t&xVMJg-3NF#5G-NOI7%JKw{_#%!UI=u>WbOJ?pQA+vaiDBR*o?s$<2(L7D zw$C9+4_>TJa-tpfXcv;iF`zuUNORx9KA41+6d=Mv085%08xePbH&{vF zW;%RV%E1@Z=aAR$Pmo*{K2msdrgl<$?Q7D6Vv=m^Haq_xrR^E-X^(&1Ob8vs;BVFGqE#sQ$cUk<67|wlfCC7~lmoNwwkL*rfPiuc z_VlYME~%<346@^*539@{BDj#DAClA&8--->p_X5g@uQCD$5HwQ1e{j1Sk;d_qz!WR z&nX|`-{zh5>8;fQhY!iQh-y(WECfJl8>#xo4l>ndVg>@J`VC195-;-N5Jv&NV6?syko@jw5z0d5vUpM>8^bcc1S}M_Q6heG~=C7H>))muR7Mi z#XJp*$sL%%KPA}>KFCto!y&g--1Pl=Ygsp=Z!BI9xyWH}$xEKXytCqqWgul4F+ng*40YIA; zJl60a3gCp&YF*_kv`lo?aDmWTH6R$=N%TYkS~6`+80D2Q0*lVN^&TX51_I_41fbsh(2f+oOI2fD!nwwuEz}%MlLm!q_rLmv(8KY;j}!1yiTww z2h!!v){TbMrJxLK^fG~$xFX+(AkN04k9TlCqv^k(UZNBDbQQxw()T}XBx^mRIFVZGLa;HRPS^c`JOXOl+|00Oz4<{W3To0tA-qf~6+4`Mm) zh^H!_rfO>m({Gs5+ssQ{JLUJc-sjP7*>E&Fopi1`s$vFjF?*lRe7^jJ8EM(^9Xb2@ zH|pi;VV(W&2R-dSNBa9Bg2eDe(Va<`@DLE-qVqAi1$_y>E)#T{GU9CfEs3DYU;$mM z`GrJPD}|iV!O>e;9JG6CasQ_@j-+>atL1IW?vZLT;vcw|zh)=if0doiF8(PyZG6u9 zGdq>^1)n|odv@~Q_{99bp_{uc9Qslk{SG!>mGhFsC#nA;=MuA^Lfl9KtU(Lk830b2 zbO@gsrq;3HH4({~`ovNOPo{dD%BGxD#aP)*nrGGzAvNMJrQf_TRIHK+>ylQkAc5eo zIped_oqzyaPvAP`rA3*Wev+Val>W<|cUXI*5#=unH6poAcA)SkuEeNS$v{vcN{Nid ztL5bPt~N=A*m&Ui*>O^befGzXp*eDE<0GL&OfxBry{u&mVO+Dl3*oe86A=i&n+czt zc=$9US@BFB>?Q5NzvN#2x7lgkgpT_4dI{VZNd89aQ-AV3*X!%QaW5nyYxxmO5Am&} z0RsVEV)9gL_5dXFdrL9{SwF}likE)-WQMzP0vv@lTPm++DC zLeqE#_21{}Y5)igBo0~J%}AY+7mi3$mPNzVq;KU~U$-L_kebT6!yGG_o4Z8tYKZuuHK^To*&mr|q zQ~)Y&CT*7YRtfjsC;d<8<~sRawKcjc{*3rNLm#UJ zhg|Z$?kK;+U2;NBH8_BJ3t5pvsY(cCyrJrfASHv!0o4@9L3PMae7(d3GSLTI%yE51 zmz1WEhE>6V>sW}?0=Ko8<}dj`La5n}`e47q6H_fbyBm3xBo+QVjW>eyq?Zu~O>~OT zMA7xxUD+cb7Xf!g+j$bhZPwBy0Dzp5u8^rDOHBO>nu5?3Wbs|H<+@TaO%@~)CeTh) z!@*WQJ^i}I**Vsj1R>y210nQbTY>>psq%Z z#rqc*a`b~EZ{^U%vC|K+%ma>65q9x`gJB%qK(~a&ofq~(yiCV_j#5FMI+6LFA}$7e z8Z#~*YG~=86}%;cKNn%a=YyPpkT!j0M^9Mu125yQ8RbLxpy#t!c~l^0od6PqZ(5`e zlQdY0Y9FWO{cM%v)*xh%sCFd0f|qj@!oN96M^lRSh@w@-@{^7yK7~n&(;8U9wWY_x ztr-DDZ@qpMD>Ry?tN5v9FTGUXc*cjrSCR?k2F`l_#N-_%_4R8P)9h0VYb*E7a_zTA ztv!GNkcaSi5xP*@cn96*cU0JyMk4vd_*Xl%Z!4#a)KYilGOfR^`>@zu*}q!A>-rjQ zKSmn1Lcnv0CKbGm?K^Fx6Y#o%V)d7ulBO#ZST@meZeGL2?n28*;DmCO`Pu-AhsOb< z#RufK`LDpmJ>rSXgMBrCASNIKjin%}ont_BRN5`734JWSJ%GakfE6uRh?<8g0`&lr z@8SZ#F3RNki#L2Xs9)>h-RyxVzNZ9m&b!6QlUDfj(C-JbsOPsB#BU*14Pk9RPg=V=j7VQ(nu?d{or;BOeiz%X zjCYT1qlLoXYT95`b3l! zfjM-l^V`G03?kOp>VnQ_THZg!>@PZ=oV`hZdM7u%9^Ll%rWr(X)NcN7Vz#{GHkYDuwg;aY> z08x0l@DVw?urZH6hxIi?!uZ~SKBjuH(=1Y;$i6&V26+37|4kg`4>4Qt1qC^bwOmIq z#RW-;_;wG-;ZqqH#8b3YGp8V-=_q|(@h}aVm0n}}mT5diJMCZbP1Phn|M+!7A_uSQ z#c^NBOdtj?X2bVoGDu&_8YJ6z;=H~a2lya;OJ&4ft2E)o>?>S9A4p7=t7HNiKb_BC zs|J@!)tLtoF=fqLt>kswRkfC*H)NCtr!s|-+;&-vB=ICf$lw-uqc|K)>=I32R1sIA zgi63)Zk@AEvdcGtWtU(w1dbW8a^F#`rUb-}6V`;uUgSV&omXsd`C8dZO0=a(}!i%gn$E z2_#?Rp(sNQOzsRW5?3N^$Ye|g&J;=ZdG^OF64F^w`yM{sWz$Unlv7apB2S) zy#M1F>(pofA3JB4Y#7k^^t0V)U8Yd}afd54a6ITT)kQ1wXt)#XtTdiUmXP{dGBcZhIO+8>4@?gW!3SLX}20$F`h z4b(y1rd&yO^xfkpC8MArzS1aBeOrkJP>3O{c6XX);8PBob=$f4z3?x^>{^TVrqHaD z)BA5r7~9Uf!N3VCN(z%g2@2pR&(|SX;J_3IT|tYo6xn7K7q_R0{S*~n&_F00r)gpw z>95mi!?WNW4d?2tRW4AY>bfNM;O;0PGVq^sN;CYNauUSzFS0htKhG&|l7IPO{BLv0 zk|Fe^)z`ndN8#gx!vCABZFn4k`fJuEE7Fcn()c55`%wYc(f~Qou8?O^bR5lBeuGA@ zyH*4~aA{wuq5A{*>bXNikQ$LcvbF^A!lyPzBfXm2c=zawEm0=_GYn-L1CZoS!CiHD z2)joZ$`YT4&Po%M3SoF@H2))2n(!6F#GZrhLezDD5eKR+{%~?29X+#VYD0?MTU#Cw zWc9=9Y#$tKs=n6$c8LSN@)3*Sh+Gzs5{n3qFv{yJ^dZz*LUx*jOqh`f7AFiXHLzQ> z7!9GH(0u~^?`g&VZPqUTo})vz$C>LPvGP1b0dwM%=SNR;|8KP7f0ecWGN;UP!e?}R z>G*nSew4^YS#ie0jq1T4FvW{L~wER(%d&8X9W+ets4Q#)kDM_jPF!P=Qc4M4;YD5cI zP)Ca$O)M`q9}M&9HITn1lL6$?T*`xXdHZ^=`-OCiIu^vypvmY<4iPe<)rcU zR?V>B(Su)Z@fgZar-d6TPwc*Vcu`OU2ActbKv7L#Q}{_CEA04EUb(OE-Qt;gTDcC%zy$!;V=++A%wsL zhtO+*;1!mVS!>lPVnuf*<`7jZ1j?UECiEwc z1VBuXlOi4*s&nu1E?JBVp{<)G9FMC>Rb>|`gOfYx&S|^(I0|BzsQHj~@da4&u#ZHE zPhvx@SyjrkVkJ*`{T^yijOg9gP6g%DB>)IXjj>3{B@+m0leMb4hbF;$Esbavb(SG; zt>m7m=V5HIMT9^cd2NM*HZSS8OB-0o079?x^saJ*@L(+6yR0M0DJilky|81_lv=(4 z8CiJZ?8T0QR%aA{EwM&QLA=ufrE~YzHFRKpa>5uT#q8w~O)00T4^C+HOPB6QK!8xZ zIw7ogG#h7BjiHGk@P9Fm7LaT3+0H#;{4sSnNsXkXy|b(6tlC%Dk3=n5Rmy2<$>^co zT*dBf+cRs{YNCyqT<$P%4)E&tzs=Zrh*IH2jfyPMc$LUrJqUYg^rZi0es@tRjOw*X zwBAG^+fkX0;cK(Z{)rNWqjHmk*XE^qldr9gURw;kzTMD2Sru^f#+K@hMX%meZO&1J zi{Trq>HdGD6}erjt6XB3{*6|os<0*1|5vnPQ>M4aZQEExWbfqi6fF#*tWO~bKp^p;asXTlhu zC9kt*Eyxf1$mnL6hS-s$CzTN0Yap(xfqdCX_}?>xp!Z- zzS>gURwu6G9+{Nw2q^Xo^@?*xwO$mlT7rlmD}FesbxRJ4wm?n4b!qG217H<_qj1rP zo&Ec+5L!Lw?hgQMWbyBZwn$V5rwu4tCC7C6LoDHgaY-E+dnm16p5rHD%Xi2HYcvJ? z08*PlR%ute>azVow7SHsih18nmHli6YxKT0b7;#+@oe_r(TdNE*YS z-+=(xE&@itR!ayRMqqNhIA^|A2g8g~ngMMe3D}c6F;Z1FVHQiHgza^ha4N+0yG{IZ zBUsyi+-sWS^THH}{9oh+qJN&v-K3sqF#X58aQ18d?|ETvqSUx-tVkzSZDQ3O; z*Z+}XeqZq)C}#E=Yzn{k!N&aEo7$8t+|j$723gf?z!NSIhM;Xo5K!O}f$J1kuMT+J zBBT6OTGlPDDH+H0{8x>=Me)ry66cr+nEhQ9R~y5oU)J}CVjKf3s9=;p0X{DbGakW~ zfk!OoH73&;T*d*kFO4`|=z0jAvuxEw=-_)%0Ug|1>y~E!Y$I< z66Sj@nKDQtM15veAkU9n*7^TgUf?-0)>l|9-mGf=wSk|_(evZq8|XDhE9>p2Xpq24 z>PY3^XLIg#1a#drDm?=FY^q@Kzt84~nDi@P$GZeYyp<%^%kgeNs&;MQ zZR^DjyGI*tM{TzqIQ#rojO5_6$H!rh2h{p|_Rrjuhnvk}gaMcRSOKo+^SxdkH+wyP z?p$eUEMIA}7gqA^xhH=*$FhOyso32bo73H88PyeRVT>3cw@e9q*M9i`_uh zb_IRHRW^)y|7>aag5PV(e%5wd8dOjr%zrxf!89nadgFmzTMTQb4h4W!?7|qVuQo!_)6n4mb5Lf;M~u zL%jKi4;zB-DyJUAijC!d+j3}^H8ipF$W-T0#dqrtD^mq#gumF!7mRaeqzdeinOl_> zi2JggBz|Es_tPX=K7NtL_1q%@5<&`ixQ21Rl_R-E9$oWbWr^jj-<*UEQpyrc82zP; z2*5onsN+Z>jQ*5LOf$dQP7@U=B;S{zl4lw-buz@Nv6)4`SwLnMgdpP9Apjhp8go>J zv})=oh|6uXG<7k37z=nKE2@@B;*HR}7mvkbpWYBTbx(w%6;rnWEj_IUt-Uud9IT^N zm|O!%Vq|Cf?5FS%=@zpy{=l*;y$>@q@5=cFDEjM zuS&dAWAya@9*8i{Aqpo0w01#2E54o;14lRVSGv5<<31r$OMKH!1?=DLRmkeaHSD!h zSudn4U2i1l7TQ?m5_p8i1i-3O_#LXfH_@rNujbvVWuIM2zO#6emPGQaPt-fVs#It9 zA|LV#UgEpbt;%H2_hkG#a=S#0kjCZL-aZ8}mPpF@%C4=aMHDWRvJMC|3gk?Pb`aRG zt^WAbXvdg;E*GsF+JEyyWq3fxm%DqCvGPT?)I5)6?+PTbF@-MB0ci|8faV?5NzVk1 zA9B4ay}lza5)(NpIz{)tDzrD;_KH^%V>iv#xn1M^Q%#STcL3Hi)1$!TgbuEFaIME8 zMLeTMt!{RtN}ks5$}=%2--|K81v9SpwC>e44p&qCxygRRYA5{-=T3S}3S6YeJIqk! zW8Z<#Uw7U=`Yrk9y0dZ^`cS5LZP}&Ad^ts1fLPj;Q zcLtZ3nvT0A6Kmp~4VM3;nDN(9j{hUY{3bPt|6}(%qrc>ZRgt?V{T9Qu84ZK05`iZJ zw$$&kdJVoy=bj9@7`@Ax9{elC?2-5`Pw`cvUl$?Q0V-Ny!jm=tXd5v})`kzaGs9^D z6cCS51-wg1-d&Dkq@doUt+C}po1XC({RDudl=CZC0b3(1Tvj1CO&4niDTG`zJBQP% zT1Sy9WJF!$o2du>6* z7e?`_4+@vlJRft2Wai^G$w0RUJJ@C$So1S~MClP1sv^TRxbo1l@CG!J^Z`%?BXYarg?$X__%}ptBxOc(2^Y^?VsZe0RO>P91#35)+GCH$C`gX zcEu-WTill_bn~@!-``e;X>$1`L%DKK|Gqj5C+Ganj$J(*&bIjLSabTVZD&fI-oKA0 zNwLrM8>;5<$F4S7SQ_4b!!ynlTn6~DW-SpppF|tRbGeJyJuz+YH$I+Z$+&$TlrLQ# z$>(GcYLu&6|5VCfWK)TGw>e$?VBp2QG@rGxYwnxW_iAB3=kq;3wTe~q*)4iSi*mim4Aw_DCUu_ zOIs>mM^;uWg@zz)l8k`=Ezcr&<4X{|gYQj;x9Lo6WT|!4oNNq2n0yd13e`i#jZRkg zCYb;`gGf-=f|s+(YtDJn4p2CSKN#zr|2aXYz}IAj7J+K4?^(HvaolYu5gzga9wAe!xq{qT#GS=yytklEB5t_cz}vD0K0 zOQ`_>3Xi?^NY+uwcI3UfHeyx=qER*G+ZvKcrrY^+JY){oTqLb2B>=>6=fiu*h*(fj zl)81EVIWftI0+-+3QQf)_NMDb_r2#|EMYL%Z6|Bp``up5z;Xg7A=c1;NWvO*y7~0p zxID6SP1i$hjMe2s8+fbGZ@Q<;nCx5D@5^ejvl7##0se0ByyL9gkRx4_H<#Uz|y_PUuHy-M1ioo2jA~C zOM-rKKl&O?N%2Tbor1Q3y8GFFi}I~ZK8^VfGSj{%R-SW;D4*c1;fmm^pZP|7e^Zpuc=XB5;^4ZthrgKcVb)bsj5%sHXNs@Ns8_ z)yY-&)6J=G7^ds5O=-;eTtK5@j(JyRE3^*ZSk4Sjx9=yzw8#3|C>}cI4a*AnMdKR@ z_#&ey0SKWvx}6RONFpS3@+p|rX2}XYq{JN%6s=1gGzA_6vMUgB6A1DO00D`jVHBx_ z_}amRH%!L`PUZ+T_RCdqiSu66FM>9*6i7JpN}G|ZcQVl@`Z~%-Bf$(N$*A4m^)wSJ z&PsEZBuqN8FOJ74zE6?EBSWhg6Sy3TDRjwUv77}D|A%`?{(=OmlR z%b1dvt^)vZLqZ#)X}v4ln}gLg)j# z&CZTyO&kgDVigrPfVjRnLm_i1#__>Q!-5B{ShoztcL=o>Pd4vfc!YNi+BNXCK7k&2bOEr1hgPyezRBR0}#!d zT_2Sey&(%R20BAM9i$Qmg`!7Hc&)Nm-VF>ldmal0jG}c4`-Si4Fgr{YAkY; zuBem~13?IKBDv8#X`qM9y8w{geaKxa7#*cq0BoOb5Q#7YvMhZz4hvyS3W5>LEPx&L zS-w%X8G=^DHHvzWHr)L1ozh;Jtvh-8Tw$G<@uZ}JJAKCJoNR?)vb1&VO%6i!zHw9B z+)&7K#=Kdg-ck~yDT(|Iu1E5LYFFs$4YkNK)fnilThiT=VFaI?ZZei!cR%Deoi$Bo zDZ&Vf(*tU9VOrr@`GUw;?avp+FCzFM2M-OwvxGvxuO1$9@f1Ds4zm~FjJczoZB;b# zRdBPz*PHy`&1XLJ)xRJVxUpEQ(jqiik{^Ajb--xMMvQFAIS69bUw@TvXCXB&ADJocGvTsdj@Q}@9((!kdowgV$8@On(d9&oK^f9}aMuHC z4H1nKIZI!5bqU7}Q%o3~Tml-E3D?mX0n)1~>~n(j@5$p*kDT@@v{dN5q@o7~g*5C3k9 z!|-mTV)G(xD5i_oXfNh&^AgKPOpna)UP55=G6aXgsvGSmyM6g4guB|TxSE_YGJ%}dN9$32Rdd+4O*6+z>Z{=1j^ zS-wFW(jzCsftLsQG%ah|#;4=CmxpD>EgN@6PN$kKkE)Yeww#U6=KlHERkZQ>5HCn;cx&8f@Lx8go|2a* z&ek)LHh9LFCCWxSQUl`;_rqfvQQZwbL3bisd?SN=eV8%f-g42;ETaAV@WtQJL73=} znP|jubQlXNLJk#WfkOGAVzW^37*rx|28BLGrLe@L$;D(?#ANx!`sV(K zY9@^iZ17hsi^4O`uQ36)r%5!kkWNAo@;b2r&ORA#aEXsUb@=4=h;O~Bk zYgvgKn8dA_#GPY&O=Qx(T+*RM(l5WH?=)ucr7$&8lCO#aC%*~x5;$sDuETqlY2vkBylzJ+Ch0UnWeZzQfBCyULd zNSvfdvZhMQr^;HQNz0KGILnkq-xO-gI6BKz7;BoEe42)3npSqQOEsF0EYT{Ov;mW% z&6;i|pKflMe!DR_ZXsqdD|KPb*H|~1-aq}j3)=p#jI%KM%S>uOX=-D1%1ghvlNqpG zW1{FfI02m)2&5l_!H9(<{0*M%8L(ep<^$b~i?z&smJE8bbf4@DG;4NBOp>K*gw>A> zj5dkVOxpd%!~_p;!YDY(7Hndf=nl&aZv$BBg#pCu;i@C*R9^T*0x3 z+=kg)j2}2|G`B-O$E%vOupGSU0=9WY>_3_lVwsz`0FGr%iYQME@qb=Bn;4g$P+*x^ zV40XCpS^^Wf3a+tZ5^HczBe^gFmoLY?h%&OwIvoG1!G+kS5ZcZK<*}nRNO=`aUsXu zme}7l&jld434p#no zh(A~yre{404xJ?phLP&R2!-cJ!}>BS8x!IXq_POoMhuv~yfA2#B$4*zoL{2oEZEbQ z7&Alc;F0N?mcD9Hw8Hwz%qqhTf5FQ#aDz44C_8brj5KkSm~WRr0uADWy`}2-C8m9t7X>5!xelg&kQZy4=Vg*BF)C?^ zv&{{}|2(kFj+nR}2GYa6SBa4S1JFP(zXLWy296++&B-kO5(RmwqxPALI=Y>Bz@t>4 zcer??c}W6o@N)U72YJ~Dr0S*_;Gr%+1OJH!j_`C;-~#_?sfIbF#(JznS(#Qki)@*9 zooSAM&8DqS~I0fFaC60)N>EAR+{jAOxDSM4Lh<9}ovG z;6A22}uwy8Q=n1(5_uTCkDGIB%lW{+9?@BCqm#KG!UQq@&Q@^1)K5$ zj{mR-2fGN4Km+;;I`Y!75|9NR^#Y49oydB$NE?$?>UURKdvLjsxA>QY00?{#t|V{- z9n=D&1EJ6g2zU?)Nw5Hxs+fCl2wlKGS=9)BaIjv~1|doVCqM%&Krnm|up~gUig35_ zG67Vunjg>zB*3dtKm{3K1uh^jyXpdUi?w-61)Vyzf4K*dFaal!pBCB(bJ7Ad06{Mh zw|?LVROASG@Hw692yaC%WDo^OP`DYe2zJ{BhY+`U00mHx0S8M5FK`53m2PEJKhkF80-~y500@aEJS#Sa_ z;4qGG0$s2NB;c=B@B&?s1#n9RoIt=WFbOXUspt5p#)AeciLvft2z@{WWZ(w{DhJ{E z0gey}Q4qIlnmmVawMy5xj)o8i*~2hPLkHZG1di~+BtXbrKm#-|2_D5g{V4=|O9GKV z0#QH$Tp$57fFS4uI~kx&Nzl3OBLi`4yP*j|M*ustOt7e|zVf-qnf#sD_{`88&C)#0 z)LhNcyp3A9bz2;JSz3zO+qHhl$t2KM86X3qJHB|30is-=R&cx+2n7P&2vEF(jXE%*+0G!E zt?1YY0JQ*C;2#-42lzt+qL~Lru&7_ksR%*?8IuG@;Lloc2>#3k1^=1^P#_0TAOu!m z2<)=ZeQ*Rv&<9G|2w#P<_-xSO+6H~#W2~73?ji%MdBsva)c~2r-`IOy9G8Q62;wW6 zEXurupo5pX(R0uR5jvZWz@ncEouQeF`PtTlsR*F?pV8R}jDVMN9Gy3-v!ThYh56PO zZJ%+#2aTYg=BS%ou&QxD1zcbV?t%t>sk6~ZtDi|lcT1Rf`I&$^*LAJekvhtv8J&F) zn$1a@n0*L}@SoADwtaxt(aFwK9ow=^k5#J8M970)>5d6Hn08s6;2gObOuh!mnB+^o zhbp0m8rFJnsEVKmj7gSMOSQs1mgKwJ_Q|7&X`vWIqY~PE zWI5bno!;4L{GMiQg1n;YusLO}Wjn_q15Yo&e5|34V_Y{*ECY;Q_AOXKJ+ZIN}!G z;x3Mnwf%`24tu1SkQw-sv(4f!zT-R&lUBWy4T*(V2#Yvw%|?FYNS@?MzT`~acjzU5p_kU!p*U5N)9h~r&e=4O88_Nc7;9ps=$7dSdT&L-y*sOjohNzzEs=n&1-s-N7cYs&rt=G+cXX>GT z>$sllYrg5a-s`^p>+3lOSgn~hSnS4r?8u(%%D(K(-t5l)?9g89vfg@R;5(Oo?bx2} z+P>}F-tFH0?F?A$zxR}QUhd|8?&zNG>b~y92-n;=?#?~j@;>kMUhnpP@A#hY`o8b{ z-tYeY?*Je00zdEsU+@Nh@Ccvq3cv6S-|z~bj%Wby#fs(>U-1@SkMEAvDtYl7-|-%w z-xB}vB0usKpYgr7@g$$}DzD`cukl&F@-QFs_W#}Tyr+ZYDDya<^HOc{yod5SKc$Rd z*FqokL_hRKU-U?S^h%%fOmFlm`twuD^Cqd1>|XU&?~J(E1~ahrGcW~Q@AX>`_Fez= zWFPirKlWyy_GrKMXpaVm00>tf_i|s1Ql5iUKlgZ__qzxPhtLKaU;%&602VO#f=~E^ zZvlmm_=lhPjKBDfZ}^a}_>a#8hcLBzfBADy2sGdGFAw#QS)ypL0TqA&8$kM|U;3zj z`l_G$tiSrM-}PTP?j%tHZ^eUB8Cic#-7Fwf}9u#2j1qZr)2F0`h|w>fpb{_X^xVFgbGN1D7wy z@O-pj!~$9W?wwux_MNnEf47~R`*`xPKMw~?!GxC*6)H@rLBWE1`W5E8zmH#kg#--k z-_NfC6HKtrpzF#*Fu~2d1FylgF4LnV2`8kmLJKd%FvE%fX$mxjHlUz{I%ZIB#0_eY z!U7Xgkb*!IldB;{6D){v0~2JFA_W0!NCATzrFhQ^0qg^C{C5>&jSlC1p_9U?F^KU3srOPucly zY_)_MOem9#8N$_9(<#{O!p~LxyFy^95k4+TvN^LrO z6H07Xo}cFIW}F?>8UJdl9rIYU2^T1p7r zrn@emvpUJ9{g(>qb1TcH?%i>ck)SD(k@x8rbJC9|N2QKi#pfeQJ3h0dr@FIB?-ib*j??%|xdOMv#JB z096TuM1hmN>i=XElwb%!I6?@bA$tnUodFN{s0g7@dVOd_3}rY&8rCp|j)+f~*h2v? znJ)o_A!oEWCR~Zl%8(6M?`dJ zqaPIs$2}GhkGGj(BdG|+t{lP-1Y!sW1tf+#Fd`yHN}eQ9c*jSwB$A@6V?^rksg~8s z3xQOGB2c+UQkHTh;F~4<6cIy1prH?d@FXDe&s{mbQeKlcYIK zYF5*l7yr6qAM$_(VG1)3iZFzPmU&DG5n`NsfYLS9xlVSDgnPEE%qg3xz|}1R5NKdT z9`u=q)zMKX=R{{Q$2k^>Kxv+EdFEv3uuz6J)S(ZBs6)BQ#C}%Pq8G(zMm4%oj&{_e z9|dVhH%d{FmeiysJ;@@rsm*=X6A+D9gbig%(tgg=rZU9nO>KHop7zwIKLsjK(GXFh z7PYAE!sS89vWPaIp$$)kYE-2+wMJ!?Gibr|IH7-mw zsQ+U#!_+;*OR`>p8$4$+x68@}vYmwtWkLIu#o{rkqeaSRQOg+BuJ$OUjiMf1tCZHx z_OWdUsBMV?+ZEO|vA+dwM+jlq;1<`o9MNlKkGtGRP5n&2X*uoW#upAn3hz$dg!x3)8ggeYje>QRv zh6wQ?D2(9?x0uBd-b0E<{9zBz*v5`fFoU`Kp!~*l5qq#g6sRy{A{W`nLxutrsQ;j3 zCL?*tPiC?f8Zpm^&|%3@XtI)_{A4a`*~?qb@|MLMW->Hl!EtS{^JF{P)|7w(Z-#T6 zx2=wv7*$p=Q%0ROUmZf?$qz+Xh6ai{lW5l^Trb#qwy=#-4 z1XM&j8Ea{)gJKf1!rcTC(M!khMXN|MQPBSIWxO{gO zBEKxR*^pM6>J$dxT_I*8!T9ck8^kom`}t`W5^GsP9F;4d8pS~ik$uaD;0Rgfe4a?hnbKFwZ_yYVD*p>PLa6SDJs7=?AiuUi zpi=DOeF#6O!GN}}e)fBBR@}{O&95{Jm#|FWR29*;QV6nW%lVhTykU-ZKL}&1zrX8rZCA z)t(#8U~5?cI3EVT$IDyaTO=45fd(|LDPUk+HJE{gxRDa@ks81=RZ$fHOpbq172yMs zv9mYs>#i2kEv6#`w$r24yQ3uugbD8( ztzS!w^e7WQ@q!$P7Fd}R67iG_h!Lk#jhp*8LI^%05eN#%!v9qXlQJ=Z4Db~7=z@Xq zmg1v;;sZc1sTDh9j{@>8QTEFr$tuF&Fwoc0|go6dORC zNv(0fOahGRYdBs^xrk#)Q%b#q!oaAjopiId#e=`9gGvQz$f)Z#yqP&{OSiH)4ufb) zHqx=Vyrp)_E)48Dsq;BAoFzWcgW%)Kl4BaVyGACIKQwbpmEf!jj0ix`N3XjInyXCS zV+2$JBO&@p!sN`bd%z$%iLi{q(LBVsVmd&GIsescyZcFquk^T1R3M26q&nC-;jGQo zue^;WE!DC zN|8ev%ly4XSWbBJ3+BKa%&EC!lZwFUPt9qWSX)n}lFFQ+%Gp}I{Hc!z9T~VI8~cDz z`mlfm;Jv?8pMn#l_J9BjrBM0_Q40N!mdQQ8sn8Uq580an++NKlM}Sj9*q$$*hv-?OZ-Gb8}!j5tegcGK;zj+^iC8)WF?b66P>4t6 ziWAc>XDz(ml&;lLF;;3NT-5_W(1ZWt*4#{&t`MUUnGqZ5w6{PKLCuL?t*>T6*TRF= z%TiTBaD+baf-k9qAgVivDAju9iT?mou{!t?FMz37ve$EM)hRhxmjeVoV}v#kqD7da zxTM(q3NV&3S&n5{kEKp^{jPfACb*>1b3L&ul7l$NB414~pdGJ|m6AqF$>mC^CTWDd zLdm;IRE131i?||c!h<+yS__HVqfIQFAlk+;R2i+#wi4T?;;OMVTd@k+*LVxII@`8& zE4Fpps7eWd9VP0l&aV|Eriue|+5^-QVSoMbHD$RhQWn-tE!d@8Dhd@m-DyUfI3for}}dESkQ-d-VI<29D`9o<?F&pj`U#+kG?Y%ab zgOTmMF&^16CgU?Uk!}9GZsz81_U3Q~=T;);Z8qo6JLhsn z=XF+RbzYSqT4s4sW$vmHtrafSl>;u&XFA#Eezrw_o&tat=zk_?ehz3Zs6&Ld#V*)q zhF<7~hUkZuX#X@pXg`o8k%;4gCg_bm=#8$EEZAo&*k_QoMUnnzkv8cr_$3XA2t#n_ zj^=26_UDh5=_w#-TfFI#mV+q`i9Be8aPfkM4QeqM>Y^6vqb6#kHfo|~>ZNvSrH1OH zmTIRa>Va`bdqyrOSzbtT$@X=@b)=u=+Ybg9>#`!c}_6*P*GZ3;u9 z4>J6pyA}-FGYtK~Yrf8F!GM5kGyyZyO`}lGgA45XalT8j9|&Lw3vg_O2yC*>pT(YR z_dtW4911YX14lSVF+hRP7VXg{?b0^w(?;#oR_)bh&KAXEUfF8f&|*meCe4(&=Y*YL zv&Lx4oBy9l8^R_hBrEyN&CUBc9?4BTQ7%WQy*Gmu?Y?ReLuZT@Sk^u&YnY^pHrwcl;!2lETxIDHZ zL+I>HDZcnN@e@b!6juNSV1N}@fJ$sp{C@37+3$GjYIOmobrd}Y=W)GM58;k$4nYHk zQ0};^P40B?7>e$%h)qBk5wv{Hw(RgjD9NAzRuOLm@}>Y4=khL3aTW*j7nha$&hMS6 zasSGgBCJNP+C~9V>+v`DIl*3xkVx<%AMlbRq!?md3h|^msPG+MI1V?VaN-DF67gBJ z$OLF{FK6^dPj4`1@fUxU7PY6CieRkfTDxUs@_>i{M?pA;^WetgItS3(Ch$B*G_qJu z88C9rl=94e&7rs=pVsn6hxA*=^<3BWUFY>)5A$5l!&Ql9Bu11o{~pNPnc5CX6m08e z7tFSXx}W3Dv{8=(=Lu4G8SQlT?u51^PxY_>z8SFaXa}J4ly=Z)1F)3!Lnme)DGi}?K*1JnkuZ1|#1*~?da=oywwE6mZ$Wn_pH?OqZ=I~`P0U$35i133UM|zTTk7zf1tvHz(*^9+PK?i^C zhA#@`baIF%4#_T=ko&w=mr2a#ioeA8T2K43FZ+-G^|hb(1bBD0_jQi%_5YCv`Cz~A zRAzbiv3rVP^Msq64e-E$S?iF&B(-)AyS|kFXcaN&f*}#?;&V_R36qc%R{-gL`&;~i zfBb_FjS7$zhN!);7RC68e)SMjGK_wh$#Y`giTtFF>#Kn-AcGAgQ5XaW3N=bpC|JRQ z!3r1_TEI{c%^^a72vMwP(V`(kc^pldA%#K$1tLX4xFGTZgOm(Js%+^}rGg7GA*_69 z^Cr%h3MhD)F{RPOi$aGIEo$^A(xgQfp~2(yDb%P^r&6tI^(s^}dKM||>h&vFq<{c< zL1AG-L$nm8OhLhR16&gpOr+RQ!^;K?HB4+UL3cw6xq$gz@VlXem;VwoyilN9V#5>) zDQZ+O5vT;;!F}n<{fnXD=M9a=f*pGZjl;ZWD^REtxq_G}b5m5fkfKD58jS~6kTL~x z-@p~@^8Jhft!NXC8ujTDc4%`(fa=URm{xR0#K1S7HOv`pV7?X_j(-?2sL`<*^E8^_ zk-|s?3=){AksyJT67g%w@6W$w0yV_OSV$?!XJAb(v4r4(4cbJ36h1A7-g6aNcp)K7 zVYMNL9eSu0h9QdR)gp@k!blwioi&~XJe5GfaUEfhm}@gwAw~&PbRmXMVu*nT7mTrm zqmL#~P{KzhBqoLx9sSk?TQg8Mg$Z0tk=PWm{T3S&<1y5t3IC*ZRU#mKoR->g3vJ+I zV}7`orF&B@<`bM(dL$(m`NhWMiYqqe2qDdh7#$yV$iP5epS37OZf)gf0$U~^>7Rfkz#j+djR z1=TP^jwpyR5TraE$yNzDt~IBYDz-+(A@1?m)1z6sb#G*J&ajpY@0M_unqZ3Qm1(FA z7g~%?PQgTdR{E4d4b-(Z1CKM*;FeDmG&u#wQ&=}%a{rB#_$`JdN=Kb_$F(>G8B~aY z!bd*&?DKCq{zgHjt}5yfL=P7=Y9H;rx1Rzf)L{h| znlhH#UIKwEkZ$ftLADouCGgU-(T01sh#GFYH{Vr(h&SM2iCJc12cb3ITE5nhofjBD z+C|BU3C-?D9rYyXZ^t2a?_%{q%EZ4&-rMuy2XFnBLM%5X9mHb+a^}RKVZdW-bkf?9 zZdqFHd2U3DJbL0VDw-Ui6uBO1SbU&(XrhQyxfT<@EzXmWJ}FlE*sgkMp3*`c-`qyA zf;7^6^%eBd)iW3=1;;t&&_#}^CLj>#x``o!d;cVRlt2c)QNZ>LR%LCC} z;H;kfpqz+YEb@~H#6X6!EM`aUx>yN9R;i#x<~PyX z*>4ahh9f1$N^Nn{2z}>5AEBUk9f4Ap7NV%txvq7v%L`f-@|*1ZPz+31m)d+L1}@Z# zN4Q%{2|(vW79poGE_2`myD}E#8OlpGTZhf;kcJ|cO{eT;;H{2i$=33$;Aa&WL0DFh_DJSYVQ zsvEZ$i3Go+K>q4Aw<9nC0~lq3XmY@W3e3%ub>l-ATNy!9qOzqN@|H?tDiIW^$c!Jn zsXbS=Ju`j@AuD6ZEEiI+S8j(6(KAN>Ud=EL=+&3 zAuVf!wPwb=s$SJ*ieZf`$1_kXnExe-IfaNhjk2Ca`0-TnxzBu1g{u49M*)2mNnb-U zw^RM~uYR>_d?0|>yB^4-SaJkPWy(sHy0o%>+lpjcNw~Jk&a2q$)8T?D+R>8MW}Tg- zTSJ@7vNmj~&^)3LdAeGLjrO!y9Zv$%6dK~aEN_b-qYPG5+GY|nwtYgB?8O4Ke)K1nv238~cDT!4_T)++l%r_% zp~Nh{+XPdrW|*ECf}3?RoQo_~BFDMTp>ddxy$5785%p*bwr_Gl(?#W!lUj@@)L5Zh z)FH>%&r)u#p4S82EH}u){qbi`7NqG)OPA7~rtXMCnddfF2*ql4>554mE;2EqEGs(d zpJOfSSvNB|`!!;an|xndla`A~hBR1YHl1`5xYxxVupJ}3!Sy(;pXAdCe=hvxX;T{} zbrY|uSDoflpO?+q4*wS;XgXtFle^r;Zj6aui-uhS)7-Mougk=RXrk7+-sVYnQY03yQkjSW!LZ(6yd*sMoNYWQRTX)R(TPtaJV9R$uxDv%d7?C}I!lwknI9ZUMEk zJ?(BEPut;sQw9vN1kA-JwaP>;sKfmr6`;G{0gn*D|J@;jH@wp!a1cByMW4`J?591Q zl9Kv0K_xBeeE%k|63lac^PbndwXqa$qmM}FL+_iyNsplu$$<$XbI-b7FZzM4^x5NO%!o z%m82j65ZdZVTfb|Mfe~cD#9GrAs*f#9@b%oaK#?}As-R~Ao`#l_F?roha&u3QVb#^ zHliaEq65icwTKBFzRb&H1XpB)CT^l3WMU^$L`ICoA}B&A_TL;f!a&pu3aBD0mcS~y zqGG@zEUqFg%3>|v;w&mgEzZC$_986u;xDq|E7r?ToE#il2phH`>S53^=A9`vqf%6# z28~5?h|(nTAh?L)fd$CT?$jyHniH;!XClA}46I%>%`qN9&YfgAt@G(JZ% zD*xl&yx~0Nqdr8$XNKGG>Q=*_}~SGn*%N+0&ZYKdf)?6pa@Q+2r^`N zMN0x=Z2v9VAGTtb1;G*P+*C; zj0i5max8)a`eaWcAW#k^PX44%^5jqcq)@tyQUaw;GQv^%oO7&XQkdRJa>xZyrB-ew zS2A4F00MIW#ka^zA~Hf*CZZ*hWm>K!TN)x;z9n2LVpkG^NnT}#z*Jo3rC#nOU-qS6 z{v}`rreF>xVHT!g9wuTYW?}ZEVm78@J|<-DB}G`JU1CK_&Lw7MrePCvzHwY#OIiWMy+sCv{fmp!g$pW~X*;CwFFNK!QbaLMLs8rgfI5 zd7h{7j9+)ICwq2h>4m3wrWZbjjjn*iR-l&e|XpW+RkILvAgc~-F34D&|e4;3lCjTi_HX#~l zffghIlt!tPPAQdEsg+)-m1+SQFhU-D=TJN+bRwscjwzYKAtTIzlhObUU@4onshdXW znkIpoCV>_RLK^^riR2lWLT8Cyh}j7aAatpTbg78^X_+2sX@b#Mw84|QKoST7q(-Ww zPAa8Vs-<4)r9$bN+NpR=i%}G*e;%n(EJsC*UQrZJX)MA5=D}C)0jXBV2%0LQ&T3}5 z4odX_A26z%Mrxh*sv!6(u>PvB1}m`+tFabqok}VRJZc;G!9N}asEVhU4n-rtC|D5! z8BoL?{OPuKDrivMf3GUK+MtJ(2n zlXd}5lIy+FtG3E3z?$p7{wu8>tcls`STMqqKB}>j0T~FwmQL)iGD5^&ti@*R#A+@?65{`ohE?`)ae{J>r{T~h;GQVUW6Vv!U-6FszyNokUf(rmZ5=6oW)NB`g00}HY5|F?L9RI-woB$z60OwkPBhWww zB!M2dzz4|b>4H@w(7*%;0T~#;1lVjAEPx|e!U?!Q6hJ{ExIh=Qz~{nl7N7y=c7Yb0 zzz4VhSLi|QGC~1l0TpC`3pfH5d@ilB_VPjc4!{I_ zKmpLe37h~Rbg&5<0Ox*y6{zk92tfgeuogg;1k*qVfB&!vFTe@B02xd`4KMEpIKl)# zK>@gc5G+6vOh5!rub1@&OtM0-f5a-Ttb`Mr^L;Z~ZFd zp+&6SDx}0(LAc@Z-P$k17A~{$LE;icw2Eh+QpDqu03(0y>Mj5yyTGzKuq8|Y6-a;+ zimn9z@C2A831k2b2yF#}0twK73(&vL!3ZyJ7HDr4gz*?}GvJgl z$wI0Y`0ezuah>Msj27+*2m%#6DimnJj6y8KGXFx8YN-`$sTO2`#ZrNjy0Z)D^O^dy zlkTm=vN7ClX&?ODA@k_~9>wD>FAV^I7Fe&+V^5=}SW?0FVJ66mFvm!UveLrk*l5!>tS8H4QB5rao$vRszYwHI!CD zoeC~Nn`}u6_F(fRMJ%AIdSuzMpaNp;0xDn&dL-2r&w&T{WCDt-y3EZgpsJQgwA}0n z2DpU#WF#nHBusdPi>-h|xFVP>)_!d{A*hL;IEtsZW8$gne080^XkSCB!w&S8ZmJiX zcO{U(d4GVg3b2n0f&hQB06XfkKL6^F1G)UN=p3-I!-i{K(j|T$XCf1Y9@rrv4B#SE zd4`y!St>%f*&#FP0U$8rmGgm>8)}%FogS?DC<=v{dwC@`Zyhp%9++j7Qy-isq8_~Y z0Ghd3^1)WDIa)$Dp-1;WHW0c_(fjQ91X%5xiZx5KjcDZ4k5%Q&RMt&!6}C7k!9 z13)QP!kl)xutxflZ|aujks(JpRZRI&G#4Kdq6S%cQPBEiws}R!Wv&-GuUp9R7=l-$ zdfi5PU!!r|^1;PUY9+9-q@uB~W~!wxdlD==uL=Sh%)#_2`lBA2k0rEmB5<#V``VU> zJ}vn-<82$vfpt^tiy}M3_Wx?K1}nrKtFSsOyo2+vCTka{`>8uD8h9y1czbHLthg8a z!LG-WfA^NEyT#_JIXnD7zbK8zt=|H&$WDC3#_d4=>fFvPA3!Oy4`~6jI#dvRSC*@} z8obJLwIMvHS1bB?FFdvnuKn`+9Be6!%k!`k`ycl;Jlk*JZfVcUsl(1emv%eJONFab zCCVG@%0K;xY+@eB_*!$k&8NG~yQq@4sJg2$i>5o)gMHZN>Y)+4l7GF$k~Omn0{ z(#t1d8+_BxJ>A#6-QPXl=e^$VJ>U1e-~T<}2R_OJotWeS9(XmApYoc_2Mk z3$h@~zU|vS?Z;{D@4lu>Y8=?%sCE8lF1=RofgYef@+ZIYFF*6|{qfJe8kT*=Ra%MwL31 zYE`ROv1Zk}mH%tks!73yH9CiEn>kR=nnhEVty#5cm!9Qgwr$h1W#_hGgoffAI&cnp<_D_pW(N4?^b@h;qrpbZO5*x2XaZni?L_V-neG< zk&D2G7eAhSdGqJdr&qt8eS7oY$rI8upMGiW_wnb~zn_2q{jsfcPrv~QEYLs$z5DJk z{}@Efu>>KEP{Ii*tk6QpFsqNg|1`9(!4E+UQAF)JEOEZgJ{s)86p$w=#SDa)?-3Rcr$i7nPxJ3H;vQ#`KJFjSlx!2^wHsjb%9YprcV z*kG~k*4wAN4fk57rX`~dT7#rR-F4Y**WGv7%>xZU8p+Mxd-2Uz-+lS**WZ5u4p`uU z0sqOvV1wNyOX0G#+EyxuA=Xynh$)`f;)*f8SmTU2-q_=gLH<}|VWnDFVR#P?m<}>b zZrNqH;(D23reL-T=9;;3d8ujZB^X~c;0;=6p+kgH*Q1lU;m z>Z`HNTI;R3?s{C3m(ppa`kpPR5p5kIq*U-=J$2N!;WqWvxKkak5w`arqY)Tw_0O>b z0S{d8!O=5vGL}3IOz*qH<59E{4~<;%$tkbg^2-O?qtlnjbUd<<&PF53QNz325b(ZZ z+$Q&275whc3okD+JoE;sKtgKm8$0fh?p?>}mQEZEQKV^R8flP6zL{oe^$KLtvqraYd?7ipS`s}~&p8WH}PapmD!Dl~w?adcoed(vU#(w*$*`^gd z+Ti@evel-oy{YYNZ6Fm$3~@Ti@W?$R8P7;Ul^Mq!DNZd~1nmZRq1@?CP`L8l2dlK9 zl{5_vz95G-!~qT!f}=!O}`IF1yqkdvMC)GT|L0;h7+%vBW84;6*LVXhvG@lb`+c=RW}&P=OAV zpanJPK@plzg)UT};IO5%#I{BNhR&H*NP;6m;s_daA#DjX1PRDM1sOPk3|%-x9=Je; zL!hAxXVHQmsIXBv^x+U%5W*qI;D;{c6b*im0~zEXhn}LL4_)YjAOG6Wg{6=|239y} zANr67kE|%2d~4@@j22I=;)GW%sV6VS;m|UULz4_O>sis7R<*8`tqgT&GUC9O&B11( z+Hz(TF3K!N96^}IY(xuaK!!e0p#?37f)-@Z0xcBQ3N3hn5U4-`8nmDfjo`u&gb)QN zyr2byr9%>000k?YfDAN%0%K`#g2vK-1XgH-!J;}?s3`rR*B8kG%AS=AV~7YMv%b;fN+E(=0JlvG{U2X7;I<(D}=y8;RH~i zK^~wGg-GNf3P*563($bm47k7%ClJC5G;3a_3ZVr;IBg&1@c)9qa)AbykO38*8e0}s zb&p=z)N)3(75#?Idemu5Auxo};j=g!(d1~iai7v~5gS<4z?J@1*% zef}pn&=_Z?=tNm5VIy=?yp%%_!Vrz+J+WzZq0TY%^R=<9XIX07mV$0dL{Xxldj&AQgz(69^(am<7(%L* zEtMY};Rin)g5HhrgQXpD2z%Sx5e74ayrb!eB+%fs(X5FcOV#K+F2ZO10!d@kNg;MB znPH{t9{NlaKc(k>}acbLH0SJbp4*zys-2-mmBcARi@FVuRTXJ+WZrh0` z?|=gdnKdYN#h{tZjdy&SukN%tM{Vn2{QBiFPtb9Q!T`lc2MRyzP-9FUY=sVY+sS=5 zMl6C6jaYr_={2g?%YOE(XFWr3@A}p=#P!e=5AJ~GmYA_H3J@5rdZ)#)^1f^yULSp-XruuX+ zXo`l}sxF=)Z)YZN{Bl7ZKCYj}D22p9xEhL|@(c-|kc^Hnpq?=EM6Mf1Apo?n6)Z`i zR>+`4kEKlT+m?k{=pzEbLlG3g=%Na?JX|p z!>0_!r{o|Hf@-D=aSrz|4;gV09Z}x)FcRY~N}x{h5aXSG5RwXMge)xUN{S4!AQ$9e z3O7j{wt*Qei5!>#g`#MM@~jn)Fs#I=i)M+1y5SbH0UM+t8L%N6RLI)EVH~>Q8ZL<( ztnlkJ%o4Pa3P?d3sDZ2sN|VUp9RF@;3CV#J`{}L3Py@-(&?Jd6KH}K=j^XlUJZ`Q) zY$&R(D@H^9RkV^16j1mSc7Yv8k%i7-7ia(!=m8wG zKor^`9qvIL#6ca%>}0stW*8Ao)p#(jgW;-~@Pq9Fo8i@L?A~ zAr`hF6?{P)QlS~5Ar-D+9RG?T6;k08nBf#iVH?oF7(#(AnIRTpffSe_6+~ekK%oUv zArzFs9J(PDNTC?eAr?|07pCDHZ1N`kY#fj$7FuBfgn=BW;T#NVjFQ0-P9ZHFp%{`f zpqLUAcWMlqg6#l=61!4Yq)+OyDmbl}z)sBD^ z$iNYN;R8e=6=;AN?12~zqAO|=h6Ci7+jMyMGhQ_VH$+N6of$1DmopScaVc-nC|w{HXh09Dvk_bX6po+`E`batfdmf0 z5xO8Aoq7Q57{lG6dQJgX6~1MV+%9a=`_Jp%q#nJ<&i2IH3_ZAr_9n3L=3EasU)GQWTD$ z955jY@FA!sK?X1(5-dR!Uf>!~6(1s@3ntSWia`c0K?uIo4^ANp904De@IukF&w^12 z5egiP(h+hY68}gcAsY&fHk3o7vVWMRj|Oj1y|wWqgiu9f2gy}k<|Sb2r= z-Su7JHD1>hTqtlkyFd%HzzTAq9)c15ENLBL;RJR;A1q-4I6)L>fD^QU6UIRZNT3;@ z-~)aV06@V7rXdo9ARnxN3xL5%xAPP}fEg^o1?mA1s6Z4ZU=F(A1$M#Ip41nFpb_rD z8V#^!ZT4nyw*KO8|1QZF96*5h3 z^9%#|#nw3n@$8+?c_=^*DWIUCC{0g}KEH`)kC|p$)aS5t;Gkkz2tagwHK&xQAXvjy z$s1vfcXEPrG<&m|>I*4eaJls3flmW(7Es`qDsR@h<@td?RyC7)u|fQEW}7b|9zSAr z2aMSa-I-#gL@e#GJ8rQ~6PpHhXCpy%!wn50+)F^~QGKE2C<&vhLc75DA-v#*sMr?1 zm{Kh`h~MnP3mUfx?yd_>;sp-YvmR;)F5w0C$wCLBf&x$CGhc|BFt})FxYQ#b&@)o4 zHJGw8f}mlcIes_)-jD2$)x7W-1DTW4HngDlYrQFs`+5rVO)m&m$?8-{k%%kwV@Q(g z;)sY^ejS2P-YP3uB2tPt$(fB(^!{ z75HU_+{Z~v?D2%(Getf`5<9d-~yNko(|L!l)C?`z-E1nalyH~VQJ~$T^ z80Lh%DHI*7J#Cm0&}Wrxz?`4#iX(QRZoErNeMmy^QRU|AQvYPJ%9!opb>k|7?(x-CCl<$Eh}GhcIIh!hE=W7( zYal0%#}`jl^XRdHf2UorZmFtP3p1D9IQeOu^{%t$tdL&;B-O`C5TWDqMzrHtaMqJ2 zB&HJ*>n@IIS7c)e2bNl^X~(UJxDsGi2(GmnS1f3$kCD{Zpe^eg52jm#Way@qD- z=B;KMv#f{J^&U%H=l%^%4`9u{f%RXmMKm2|{osrL{4!BUQ?Lx^MOy`JWHC}jl&y1- zlr=gj0OR0=fZKd#i7zXOTKa4atg3y0KcDE9*638%=(?~VRTRh+3$#YD=wUls;&=Ff z@bN|_`OG!k)fcyhY$XBDz1HYzP#`HBxM7WB63^pdDu7yw>%`YT1_BOt;`gOnSC?8k zZolgOe~ojuTNXzQPad?cMKqqOUH3)$Wo>!=qxIeo+IOoo6Gye{a!vT$1NEyK{1ej*dgb6oetmfP1nDk63xJMA0_U9OM$fzk$?r3pBlEhs3ZR!- zr*6N@OyfiGy@uRQ{=3ArzBJm)KW5`P)?Ge!{%bVCw#VpK4_TiNrO^w2m3jGI=0;ib zL{CxQZ!Z0%*K_=%WIV4#AEbW?qUa7H^Z`g%*3C85x_d+X-eeZ?^xzcvQ`Cd{ts5yX zS@m=n=t(_ND0=e*(C!-8M}dxj0{M(Rj&6SD==i}sfwiLhovTaDM=b4s(u=KwRRLt^ zA3DuyLEIlcLPA9DBi?p$qGAwFCTwA3SKzfqSAuTW!{ddo_ZHvCEaF!e(>xaQdKb@& z1mBq{zI-JrIP9(e2pH3%-THfaq1)r#*Px1#p8~UF!If%(;lC@Z`eGmS1;^I;n#=k2 zuT9)L?w7_flCZCnv`fBY-^v*v_{fZbs1FT*p$9osH*i0%S^q>TjT+fm3+NoU>~FRP zp`buZB6OxAbf>91k^2yV>INUKVWVEBI3L!)K7c9~XqeIW+?8Vz_}}4(TFd&IJ13Eu zqPzq=H()I?{@-@N`cCQk&i^#dv_whbZg$mff#_ad)n3Z`y$AnxYd!aAlIPND-h^j7 zC1mL+p`9>Ko@f8ITN2|b|Mn*m<0thF%k>Z6B_6K6K3xBIxTW{GRG;sLKF@iy=ogyC z`D-HgLm>b6GQO91zWvvVS8$BXIL3VJ9E1BumMPVLx@+fxjG*2%`0H`zzt2VeSaGtC zzioR?q%Z@>?x(01%K%1>z3YV8kFVCi2O%Y~pZGmoq)+=82_j4z%!~wp*L6If%@W78 ze|+s> z@H}Dg(VvmKw^Oh1VaRkkILP9MzaOsr)5S6qYzySixJJp`h2NjP!Z8ATa*8E9w%f_c zNN;gjH33^KeK9j}G>4pPPr6F&aJGQ9zOv;;uopl?9f;9x-G-K8M~B0TEjC)FgiYkm8%G_YYPV z6R2k5muD<=PvZJp$f!gt2XIR;Lg$j1WYK}(56@zU(KKU6rS~s#66^Ae5$Y46C0wb& z&7%S3-1!%+HR8L?9^v_teBrXCE~&i!(1b-^rg@U4YsNuP3ZnejGBX4 zP<`<~O~3pyRVVjH4134rBULmwXym2tvBx%jBPbo`mc$>c&jbX8u{4z{~uxYe`p`57%arlCAvi zTMgq`3#|eOb1R7gs$B{J`pu&^e6^l#LNAu?8@ka2^(NqXKfX^0RT=$QR^iaMXFPPW^VsXk{%(Cl z3tNN6T@L@Vja(brJoQ0t;;;P{FFm8Dovt^jbpP?ZaxxaS%2BDs&)q)%cm74WRR(cU z{%BlkSh)w}I&3Ht?5X^WI_nI}2z!Fa5J`4u+dKrCV z`4xXe7_WBq|BS^mx!|xI(Lmg9y!>6Yo?1Dty>|GW0nWsIb||<{6Umx~nPuc=V=1K= zsXWQV9Mq{SIOd%mgEL2--v41Z$NEGks%*#-cB$pwL}>8!@|A;!8ZY*SFd6xU4-M;O zuW6b%Ke=8Bd^+FR>EEGen<_AOR=kyH_Fwd+ypj(GkFK1*v$6rsW{ihQ^>*@16xx2( zZH=B)6J(^Oo5$2F9BeRh8_7kxt`|No6qTD9og`+Qo;!o;$^fB{Epp=N)natSIGIb| z^1x^AaWp-)ideEq;wy}K#59T)yad(KG)KTErVX+)X6iOL3IpqkxI#Oo+$jS-jfLXp z#u;-@_c6Iyx34+z1{!+3<|w(ha*eSl!|~p5YI(@tYwu8Y)XFl1)L0#i%4I&(!xmfC zviC_^lwq+i@wnw?$Ue0yI7NNCU&vU1NNc-lH<>%uNvS{3`F8hd%K6zVe zZqr%^KhSV_VS1xYsX1B_fz~=P+`DAoVqX{_;p_imdjAHEH(!1=tO%l^TKr@Ko9aBh zS+Xg6vwJ+O`T7H<)&5Oe8}Vsp#q-nBsP@_W56-hMuxpGgAE{42$eJ~Px;1t#giCbp z-15O}MK<@?J#X1)YQe&9JFhV=qyzJfFXjW+08DXxV8vEEOV%1#E{@C`-kL1Tybh70 z>l;B0%gZLOGl!JWc`wpm?)=@?CaY3X)6sHo!1VoW6?gB&uT`eF08VG}%|LT^dx7t_ zHUzG){ilQujl8bU^6$n+zS)vgwTJjk3Ay-D%kXCf516-PEaJ!Po1Yc6WNlrr82FFU zkaGV&<^W}JI^HcADQ}z@MW4gcpm}}LM zMb#@kVXiE?UcbiPzEF_&w@(7#V@XusL6lGCAHdRcfOG^N5tbIV>F zUi_cgEAJb@j!*7&m|v96%sB+l|1&!T@0%nIu8<9;DIFFvm2_LAwYOod)e~34rPB>Z{w~t@uet`Ls0$OEhU9`|Fa- z3KOQsD{ehRABzH&P$0I}8;(S<841$XC&#y=@!$n~EfRhuj)y&3 z&3h`jT{^65gn0(z7YIaD>=1ZIuGH$&4nS0BAg;u@Gx@4LfD*di9p5LX$LVA+YvDP2&hU-bX`klN73I6_ zv%tKw#hhtCUK$X=Z05%{ns>CT%-gLj!@#veV)hfEGs)xJgh8M(>DzNKi8T<73~7%7 zM7Lb`nm>lpccu z{SWg~1lCX7V}Dg!Z8h$4-ch`SMZ6D-||95KPO ziGZV^5E_V7cn!uS15~3zvyVW+L~(R0K(RGZUehfLcV6Uj51bRp`CZER87uVP0;}I% z?CEz_sVITqcQ;t`pegt0&Fc(fM4%7Evhq+_2S1T!t@nq{3SFqsP&0a3>0K$ZWL%n# z#t@XCg0@ZR+=)D4pc3B_$ZgGD#HB^ z{*pJ(I5oBT-YxUXejJYpfiT3w7v&uHDn`5g*|Z+^yZAl*nM->djy@(Z(GkXf#s|CR zxz8w9n&qzI;0u_vcL2mVijMaPN5g`iwBfQuVztd7YWk(RrC@0sJw`dZ#GK9^btkqI zcuNGzonCl{3bjXa@=_sTTLCtkMb}9%sQLL_MPh8*l3=z{aL99O? zrftVxPHk;FtECVS)uk+br&kV84{wbn&=*x zZJ_xx0r6E>bMd%y>Ublx55B!@w`qLFr5LXef$J!kXmGKi1KC7xdlEM`Y za>?&h{xx<>)GT*7GNn(|@4uSVe0J?t4k*f3b?${<( zA~-toF(wlH?*@2AI}*p=6*mX_dcO#*+}QCeI5Y+6z_0YmT!3Sr6>=s7S%`3*im(UU z1Epi4NYLvjX#CA{@k9N_)V??ZF2aTtnudiXu0aipph@$vJ8QMs(d}VUImdbJo2sEo zg-qTcX)q}I5Ae1~O1C0ZGb&%S@^%D0RjM! zHk287vMG=4Qgez$458?4AX%H!GO#wSJ1ATj3W^d9{H;aKhRWT(4@Id!z5WcHam6@8 zbG~nRej&rcL>Tgw8S|<1?t7ls#%)+$`kcICJLR{s(-!|VkG`btqd!D~^SPyDp=EcS z9u&53UGAc*H8y02v>~Mgf2fIMc9TbLO`Y^754eaMrLg#!T3h-I_$jveG~Nr~RGIhe zDk4+9pC=wn)#e5nAC);0Zwj2w2^xqhCjP-r-rar~KYlxD$O$lEf?A$QU z(e5u#7@c~W`=Ela+TAzE-luWgv?*cSD1~waG;>S4=JY1y);KGmz%6YgVl#>Uk2Z85 zVSEFU!(IR1X@PT|e1Ffi(dqHGu0|8}_QGj}#{C>`M*@&B?#A|_lY-uFUSzRt_prW7 zpmcnD(Q&!+$ek*E!?tGD*S6@b#L8Py1((@BF5g%!!Ie`NJdBwpSmB3M>AW{wz|chk z@>cABQns(PvaLu2+fmCa!DL(uZ z!|}N%`rD*t(=?xZEDuE617j{ADb4%rtx@*8*6G`MoiU5mxrj=%d{f9(k83I(tjQ~$ zO}{*UkAz3|x?PjE#Qwdu1qKw#i3VjGP@l?Y=uVpmhJ&&v!h0hVE2pEISQYtI{4w`U$DE)rE0Vovdlm5!1DCTjStwqTzBU^0SNS6bF&`jZ=@?*? z;E;A5F^n-!1&^y1P1Izsup7PM)nC|kn7ekbSaa2;)av4>y0AbcUq*`D+l2W>L6t}l z_eyJiD^&FphUFkqd#O|SwMqZ0=>F-Ar4_F0UAl;4WtOkh<!8%=Vf`CN+t00qD> zhOybfFyW~T#7M?@D)SVIYZkCGj%qO84U-2^v5n&@(@9S6=ZY2Pt~Q@5I#}zrAU?Gz zetK^GsU!T;i=0p0il3zQojo>Y6u}0ZlZ*Zcm8cVVqcVMwC)1}$H3|~e8F|nci6UZ{ zU>vZHRz{+-4#oPgs+I9QYV%EW^hzXR0>D7ibNYzxg}nEt=+Qq}W1!#|%TYU(q_8j9 z^0V&33*&~?Y7s9HM?j?`I-8@G=BrO>u;kbJOmC0ix%!_Cbe;d2o&FIcTaONUs>md< zTw4RaZoTwy{Xkfp<*b#lkw_2qW2!{$bm0!Auh3T^8O!@vR*L1>pTRGBvJ4^_8*$7* zsx;LCV*r+(mT7+Xp1~J)5R=0gw8rd4w{ILndvWedi|am^K9?;&JaTFI<|eGCI<>Ov zu(c@uod?LtDtyIlnm$9-Tv<)kAp02cwSOawrCC{LXY!zK{h$$x7{D=&dhS$XnNIcS zJNw`ReV}sOnJQO?sPaJg#q*C-IHpb{qtadaf$OMyxn~2B{i{|AwpYw8 zBwXb_YWcSOvdmj6{kzi0@|)ZC`)v%{iSH75ay7zBW%D)T4IJ|a%;D&fO7!Q?J2|L< zj|`pIjdCQc;tKuhYsPQXGuaXNN+fDGJT**nulz2mD)OXr4N{I}Qo2HarWajz#phw7 zqOXDOJp1o2ci(w^a4i}9_ATQ4$6J0Uo8Pa-(VQ&E?xl0QxJHhfz>;5^s=Tfl zwf5R*pks{xnFH^G(WhKt4r<|>eOt`8a$L9-Jzf&mGw7}OTceH!S!r{QD&5T4X8+~+ zL$|J|t;u?~h0h)@2-K3T<%KU^eRv3q)B$&Pl@WnMDPU#s*q4$gY4gzi-HHFm?Nibg zKUChi#eFpJ5N(8g5%u`$RsYqcZy}49>oYQ6vdUnhw|e})ZfCn|L@gqWJ*1nsN5z4PJ09iIu!ikE#6x8GGCQ zF996c%q{(5Z*+8G5>9MTH^I@SXeP*k@(%#eP(^BsW=d;X+8sc4aKKNe->4b1T$Ei_ zj#O)6bH{XC`cLhfJ#@Y9i9Jh@+#K0%VMTTB{PF<%#4tb5fa$8|?WRzSL9zme?LX#t z4!dcJ=^Lj2(dEz?;FYhlV{`_(*|Sczb2pYVEjPcr@r2Z~+VKC}3|R=6@#k{(UT$hJ z{VwmZ>8u(+C}h?;@|D*;r+&PtVli{aaV${3wsT4GDKc<~o*aAToi6@R##pf(W~1XC z!4Z=4T%9RSoY(6DDS_egYkDW??^vbaqqTbv`GfqX^*9b|Sw=YiF6vrc`q&Of^NH4F%dt-y z2`1ZpHS_7>E@KpR@Mv@sOUCg-E5bG=?+u;16wygn2AoJFhw7Y!`m&lleP5e5Jd@eY zdWSbxi-jU+dm4nQ2nQ2u6e0wOqwL8QCnJ}*b#wo5jrt-~b2NPlwN5AlpDeSsqC)Fh%&bbs5G6?AB!1I1k-4r@S)5k(&+-HI0H zsOHh3(!!LXbZ}29y$NO=thQ@#E}oAukaT$)iw?vyQBY~TuA(YYB=QE|6hw3rkGQ4ajwYprZa zC!S;`gLkEYa{kp!o6AF*CEnG2KxLn`uHj31yB3h}WP<^T0F|`IeLyx$$*@E~FbswW zHZ|aXBOnD(jML~kj^=}86@cnh5S~3)kOWQwE`@4VH`IqIru)%9i?rq=_Av?*lM4k{ zZDcJ0$Zw5a{8Hzn6c!0l2Bt{7_$f7YL{gCsW7;p^i2}(cpb8X~QCtH0=`5xs)?-UF zeaViHkxWuZEzZD9lFVq9)z9KSFw3``ezCGw#WVA))NxmapuJ=v=ZC8D`DIGqsPCO$ zFG}VOI>NJ1NlfgheX*QdAXWJdq;M-*Vt6El8P(o^X$4(1Bc^c?*T7*i!SvS3KvA{+ zJDv$Pi$sb4m;=45zEl9p3(@QV<@vVsIV$AuOZ~ODPW~CwG_{R2Yc?2}O<3lGi`X%UZw=2JC8E!5 zO7m8TMv7j~O#t$m;!;`Ed=SE@WxZ-tssxo3rFhWK5Gn_j)7ia5#|CMEhF zq7S9|pwBy`>+axq*(j#NEDdTQrq}Z=yl!3ma2(1SR>CTnOT7A#H9MCrY?G$xNMa%B z=PTe2BU|KFC0f7JL5AoUc5g4sBor~*#x+O?uA9gidRGs|;*qp(Xk+BY9a=8N71sGk zbKD!mP6RMK69GQ6?t?tkG`aX^LHR%QfyhE&s@jB-&Q#kK+~pFK)z@5O<>d14#v`1U}RQl(|+b^6in6f9FQJ0 z2@sM}HoV7J{leAxIN}O5O^b*_+$jX`isccwG|{ZtnsQFl75Mb`-|6ti$xQ92Wv#4B z0WWk1(^U#OY`fNa93sgz?|w`Cc;!@`S1v)P+o zSv0O@kxobJyNQ73(f6Z-Db1-bZoXx=*PK#71}Ax#!uaHK!8*~OaO2bT8>%(U!nD?L z5H(|32t1;7!#P;3JsYU*TfQK3K)iFoDy+YpkKHm!b}hkX z^bu@UKbfVY2;7=JEIG)2(Ao;bnkrJ|-ZcpIi`-#|{4&`bGsxtMWVjM{OEtsJLg)`Q zU8RZ}k+U{%XgEIq{fX<`53+@utd_~<`=4O@l3F4Cof#HlAH+UVpUG8u4KgFb5bykx zq3%se-~$ws<8w59&MiYWL$RmQ*v=2{#y>H@Vp)_-lOm3D1VGSFA3NL%m%ab z-%pu+-`2dE)(-`&&_AuyLhx4MesH7Kw3NYAa!*GIpAqG-0DPiIqEkic)A}_7Q?w*W9zMSDLNy5gQdlUIjx!i?Ycch;H*)Sa52;Hv zl1O?0Yr<|2{g?Q?%H-ddcX_fwlWXMxJW?bQI@ut5V;Sjgt}E{jr%yt_o@CHwV>&@} zQijRa`g961yhdvv(KB(Q)+CAaWCKc-j3!9+{3uxm+bt$W$J<3lZ9Fzu%P^)Stxch> zXwq){By~-KK_J*ao==sAtWF2XQttl%5T15FvMm4`W5Dx47hs{{j<<7-l+oo&jB-KR zS0b~&qn?$0b9vxz&*ned-B?>V+E%tdT5&DL_+XFwu5CZimdyyo-_Dxt zPE4cP6_Bt}H$qKrCYZ!!nZ$>hF!D-W+LQn2Y$7{b4tFv6XeuJxLmzTk>K^;U5FZ5M zxSqP98lggpPcXgdmqYK3U?Lj?bg`>p3Dy_tjhC1yKaJ2O0_HARqbg;!W|f(;$efEv6jHuBPyA!7Uwy|+j7J#kgAc48qg?B8l^at$m zOi+b!ml4VGQZ)x#O#+KSI$gQ>Sgl0zW1x2IUQxsfv*VL|xlxcUQN+7OLp&r^sMcz{ z|LM}W)yj(1@`2Ursnz>GR_n~x8(`~?0+S!*tvB7Rw?Zd36Rfuh);oW!#O35asXZNi zNgtgKad}ykC7Ssfb$^DLqvO15$nDSQ_{#XIcL%*+rr9W6Fzc{p2`y4#^ZThyBQx>8 zMN0C!3pz5iQ3?n+0a6gb&`p5ARv3r}hCU1fy@P>eV;Cwij7=D(UJUaDhMp5sZ)lEK zeN5L@;&#k&qHH8BDdmTI`96VPYybc|(e;vHxjy{5pz6y?hx{m%< zjy{K1i*Gx+b|isUQC|i*udCE!92~+bv+OQ87~Go*gD+4P%_A%FW#i|7Mf1WQ3zn60 z%6AqVW1QksoZ_+k+u<%S!XBC`9tQ>4p!O<#2~ZsjHwyM@<%g-H_tNq^xSKrVHZ4WI@oJ5l_>R+aE#d6x`$Aq1X9eFTi*A zKfT;;z?Bw^{!c3`#1l&&zIH0;H7w(`T)9etc`*e@HqLqc+Vc2VTA%R~I}Z0|74l|N z^k&!d=CJnW^z`Nm_vTLY=E?D{vn>9#<@xRJd#27+|2AfZW)H^HtTxK}(JJM$E|zl> zi{XVM>DPI}eWVk8WO95iRQYhvKRz5{kMZ#m;MyQ&CkwCp^aGrh1erMGd@t(xs#*J9 z^7K^?_tgmhczS8W=CQYFskip<2gzYy-AP})_r6y?`=b8&>LdKnLVgB{eujE}M%J6? zb9xqSt}?#P_0v1P=FNTapr3FpJ$3iw%qPa$ zeLQk!MUu(p&b@+%K@B;8H19Xu2u|}1 zZld3=v}PuSPgSW~#)dOjOR+q|Y+&up)k^5Z-Uq*+&we<(|EnYaQD^Y0*C9QVpB@hf zzy3UHmg6P6SJ;^t5}>%FIhQMxv)UHGd_yYJm&`czv_uh>3E>JIliJ}IJ@{61?R9Yo z-RDp$B5X=1>@~uDI&nK#_i$2gshRqz`^J9IyH&B*p$bwgUpzjL=R=PM={iI{uFU&* zcV=Dxyf=i{&-M;!>-*2omV6s%n7dt~i4}N$!M7Eat6D{O`7F@l)@LnL_%lFI?)hXm z(R%yl`-0E^Z1z=rwbtG)((mZlhS799KaH_qW45BO;A@i+lg16%i4lJ%dCuQQh*$0W ztcvI|W_#Q4XkUt8y%#=2N>-;N8v)eJf(UO7+ZvARjCb2%=M_1L+B(h=S)TjMpTmit zK`UjUokC2VsUPm?g`U7e9;8MM(=)G&(n+m7%B-(FSId=ft`VVRfS0P zh_BZaugYoSm-dsm&)&8GzNklXv{Ju<^5{fewe6BVUCK?CAhpViAo(wRjXpnR*2s;Z z0<79HWEsW#f9)lmkB26J2%2fKs7O&6?C}!o6Z!olF3oN|WQ}l5vUprI@(a`IaI)4e zof%SGHHl7w2u3A`bAQ-eC^~-4^KSGgbJO@0*IEa6E2#Yy>+XCqb0i)O%~V7s*QkG0 zq)7OC3$dAkOi;KXfUan2>D9Gho^aPRbKB%4|Edisj)<9}hwC^icRvR)oR{x=~@5; z#sZlEaXc3_DP{k^0Hfu8OXiJ^L+R7 zk4r37-(#^R+m{_aJIlrXZS(n>L#IoUeTJ9NdeADG0jd-Gb*F~*p{t`NBb$C1sEd;} zeEy$iZW4Q6bVW|IZfjFfX7bCl|NdR4A^2-+(2c$4IBr}Lg!mOg0s&r$6RyNj&l9Ft z{^F&l7@Q5&;vTV-;MjiQx-R3H({)5CxTj)`UCXy$hTwlEfgWc3`InqT*-7AC6diu` zs;dAWuliDpn9Lq22`#T46#YB(AhA^>nHeYeB%`78#VNCL-RU_|n-584S^WO*Q<5p^ zNp1I|*`y@BR&6#mSqswb1ZlkfW=Y{{FvzS;3j_XoSqX=#kwFOR#BC1-)kcaAq(m`q zh)P6>4P~%Rp~f4c#7A<3t|YBAKxrdPE*tY%&1;A%~^_1;gJY{pB0lH#?%RFGR(A-$2!bDeXT|kf(tkd8x#7;gu;SwroN> zX&N0*uMl1P1u_TCCaSRW#ZdA{0@s2TDwA0{RZIwS9V(0r4p?UhTlSjhh(0X#2T@-p zFWuHux~9Y@Ln1GZO^Depj@?qBT^Y*jr+Kr0aQWCURs57;-IU|FW2)ai9(4>7O(poJ z$46U<(ZSIPL@(aTS#o1w`{aL^F5lr{j2I^pnKQg!JjSg$+SN4EKUm+&R<& zkI7=u(W0DiTdL?oQZk!)Dra_}3ZC=(xgfV&s6r&!C{$Jc1do)!Fr+v{=dJZKDN&Ar zf(jTj14P;90HewsNB}JiJ>^Xy=2#k``J<6#jp#rLBTs>d`4mqpG_{qRv%n7v;l`}c zQ|z;OKoGbKm2%I)ow9EF%yGpG&8;`NH6p;2^f;thdw&qd#_PD=FB4B`v+E8~S==y_ zdQ#HzS~kZ%zn7yoZeAd+T~wU+_e4+%S*xjV1S*0227+f&RLBellA`;p3i9!2w#1`f z+YG!!{S#5Snq;>-3Cq3IXi5J5j!b&9B8peU3(kf$bv*`qy5kDIOR z-E~smWJP4ZWRyttDTzo(io)FSASE-2)1}B%C^5#jCUKsu zks)TS+F%P12P~CdfoBtj!I98MBI>G}K)7mpQg#h8g_f9b3M2AX(R$>|#A=pO_Em(x zh#o{zCfyq?D98hZ-VoGh)j?Bw_{3_`7sJKQrUiwskG#@h^ATscz;hg~)^p#lO@zVB z)XdTc`FwZXC~r17UF2tt7GOg(n^gDLaF$*-G#XJL&y;K)GRT(Dc`>1YkZvHdLru4QqFT}~Af=M&GL|l%6mz>vT;cGh#o7?L80QR@ygxdy zrJG-Hu2i$ySHUnArnn)JGiV?M#J{mn&CLnOyRWkB!d0*-5!53AM$a<95W0k77T}=T z6z_!9FtA{KRzmrUSuw2RVl|_Ypg2|Jo~cS*C&5oDUV~}RxACkD>jV0p zvX+iHusR9J$3oh{PKj+WqS7?QV3RnlXeeu5<@PzC1O1SGav`gqd^BF^^gb1V zH?Dq3`tfSTO8RTYZ^y0;R^pid=jii5SMO#C{qf}|5uZXn{N7l|c{Hwc_jib!?^yT^ zlD`rjKCP7flC$VI`~GEyMz?dcWPqw$1`rRO>u>IRpm^Q+YA<-+zX zd@s+Gy;pmreYj_ne0jD;=+a}0uwZ`a`_$-pnMSw6eW!uT^Uta-HHCzIa{G9B;pO{F zEw>LtmQ|MC7E3W-+%v1e&`Qd>JRQt_9qIyST*kOpT_VUtu_0HPtt)T1L zD;q)@-EYD^Uq4@3cJ_>YTDlQ#K+=AHQl-)RDeQ}5g-jybQ_zIUy4rG*~IVYT&eheW(lis8kE4ATwWY~4Q-RVwd`}>R6KDu z-B?EK^XqV}BJ$Hc$uO3@JTj}rZ`6XYRt+nM3t@u+A7fxB==!C(LYzZC21UIi*6~R& znp0`vYFc4*Y9v9Jgt#&6=66y6)%~Pm)m`@+cyfoR({t&+vubw1<7|^Z`70Cg%jdP= z<4jENf(`n#n*YPJflZItzT&M{;&*mpZzgVVd*9sD{_ivmr?>HQE#d8psu=>!0k=&} z`FKI%;0pAP2Lv9Dy3CLly#ZgZoJsvS(=4N~+y9o|Ce>(De~U(yTk#O5l9}4cqB5Ra z?fM)jCQ(3=xO|eGvS;?+m3OPFLgUk`wm^;*!IQl*GY;F0cD%3}dRi-qQ$Qa$J-Moq z!lVk>O0R%TlSM@;#bNr}Bs@r6_z*V>QLWm+=W~Wa&J~iJVdS?Ch#rWyslSL!SpM6l z2kjDMp*2#jOwwCH(8o)n`!3jQGjHyG0Z|SM#(eWF3IhiKy|{Xn3k5vqTS;LGB#Yr7 zKt!dTM5?%eCDWPdo84-rU89dtsX`^Zo~yf_d42eWs--%W~vg|K93h$&?K zj>V43@GJoIR}&OZ<87c)x%wb{2Fpv>U%Cz6s>`25bftiyIn?2Z{jE7B}pzLm0${rtIPcDg^}k8RUrq4Pqaw zX9X|?3YXDwfAYosfI$>PcRySpEJY!B?IbiGy;7+lL{Ku$;cPdKwX_D+;5miByf{1Q zUjlz+-kZjV@g5aWZ4JRv`am5j*iheT)2!x5SQwDRY1(&AgA}sn8HaQM7&Jk`IJ-Fv zL$JWxfBt>JF=Y2Zg!tGhAE;lZ4=7-YRvO<_8YfS&mW!Led$VOLK8VjEk!jqO*rRH! zgQ0i=K*SmCB#(g8kc1L=%g|BssUde)pSkC#m;kzLZB;B`li_F#+Avc7#|Ya1jqkB4 zr;Ms?^Ig&(AKJvPRN&%TQ<0?lyQg4y))sV7zlo=MXitBY*e8m?Gxy*)QH&lr{&uJ# zFvcc9qFQ{{Si%s*U}?mCD#p3V5VBZrj5fLpHiae**}LLLXrxBd$*DlZC=5Tem=?S* z>hcoBPX%-8F#Bx?im;k4$uml$vSmB*=PyL6xGJQC4g0YOY2Z@EYLUrRAu_`z4%tu~ z@Xv@}IjKSuEgZSb_Z=@TAeNc{_$gY69^qLg=^Y9g209*Maescf=!T#`YNz4)l z1e*yP;++iZp0@+|MCe5r$wCP@&IEwJ-6-pz$(DB@IllHq0#4YF{7BxMJBD=2uMhLo zcr+Bk0Fx17PT_R+3MZlj()}drWNg*~V!_7zp_VlGARL^{WQa~A0;p#uG;SnYrLk?o zn13{0-5OowXfn)9J5_t0csK$}y+uSx ztPMp(>Jx%}*(mxFo5m8T$Ioi?u`&9w6sb2AeL@(00^iUrn7#xL#8!E@*e@mC5?%Tl z#r8*bPzHT2flQG+8XjuzW3}w}5&+3@3ExAegS+~`2fe!lyE^mJQ?ny&G-!0YBTT4t+ z4E~|See?QY;XgHRi$-z-Cr3~8ivoRPH%B-8$nMBAuuQ+SH9&+b)mlaa52c#VWaF>t9s3CkWg=Y>7qxk9 zlL*-CGG! z1PX`G6_YqaG1+_iT(l}@m;|>xh}Tb_!<4{z$i@+e5qCc_MPj)K?k%yvyk|DtDB$lu z!hQ#jq17gkf{#oFK+aH)As58tEe2>~@zDXEza~xo372G34S&8N*JdO~;h^;YF?NcQ+!^X&~J#A|(RSJs{m(Iug>|Dc#5jNQw+0Dcw0Q|8?H8&e!u{ zzU(iv_S$Rh_1n*LU)N0+ME-jbB*qjJGQfKoZYKk#zWD7VQ-H1es*7FjA?2aq5x%!= z7aQ+uvF>F%%4#KnKN#_bAUZlM%;LfKqiifOwT zWEEODf6&blfKSlE3QA9GcTwcwMflXJ8rO){5yv!kd&QlF#CCQsVoCGD_vW}(f!};XCJMU z*K%jM@X;SPz0i_>9miZX&gaL&OpwWpQP=1Q@%7K{PZ;E?SDAjjs6cx%m#{d;laqKq zNEdLc-+Fw&;f5J{9IGl*C-+KN(OOvHS>14sg7Pafm4U}RN!&~=N0bw>vhRh}*yj$b zg;le%{@xBUu)~=Se!nE14;q^nxN|l4i&}ortsr9ZnxM4#KGnz9CCee1RhWJA_%O_`6@}k2$4e`Yvt&Ps! zScx{iaF5qh84U z{*Wqp_Ob!uJRsk>gR4+9v_X)KU#UX+n;~H zxO+q`25q`~MxA>md3dch@Od|SYy^4Ldib=S`}BDDj-2~WdiX7z`>lHT@0|M|-&@`r zeJee@eZ)L59VVTNztdWQL2ge?(- zeisQ(@{9;`9}O*uD7}bG5|31N39a>v9`Uqky^y|E4_Wn$-MNT8_Kdr3dIwu{xK3ZX z^-Q3-Okna#)`MR=?DnY5F32nQY~iYL=aZ(6_R`Oha61x=Mtbc%^4u zX5=kk(#a_IxxKPlFSB~QvPUHP9X*+bE^}7BKJQ$9E)>n#7s|x(MvfF^*3PKF$-Xdo z=W<=;3Q4L`wUl@%y;bqf*Sg9#@-DEtDzNwd=6dzb$GZ@5RT$-6lyp^;>RtNQd+hOi*`#;*!d3aIcg4ve07 zPus|K+oVtX!gc$qPsh%6$Fa}%>+A10zMTX&on*dUG&fyLzTI3m-9o-SPi}hTeS6h! zFuhv7_Z!eYE8l+mn|@c{0iT-zgzsR~&0v!6P}a>*p6_t!&2X*nNbAkWeUf|RW^~eb zY~f~X)%VBF&5vW>@#~xMB!eJ=TNIh!Pnz4GOnwtww-Z8slTV)d;`mLe-%e>gZG3k7 z%gS%s{&w2cZ^q|#2JzHM?{+rHZ!YV0F3)ei^me}1Z=v;ep~vs{$nEb*zr}^y#Z|vQ zJGXz1{g$q8mvH>i1b1jM|7DuHWhVa>uDcZ>|J5gVtMdM9>UV2e{(p_`{#yC3+uyCb z`fvE$Z6N$NqwY47{I|01w(|V9OYgR8{dZdLc6$8(jokg4^xs{$+g%b8d(4?@z_}0R91(C4 zg}F!yxXi*_<^^1pVy`7uF z7fL`S>UKe5sSrWNpZ@l`&8T*Uj~JIw<14AGBQ5ACLM-HLSUy&u`@mK!y@pI$w3(66={ zN)_=TcQmZGpKJJdP3~me?7C%|;!W}1wB6_O?DU$#*}MyZM<^SGn+cH5dP)@$^C?Bl+>(ClGGLjo{d;)3u20N}p=0s7dQ z*Z>p*U_ohBs*qg>C>f{mVAa>2FcK!UY?bQVz9>o|yWfM=c>{59`AB9J^ZcPCcC8ZQ zp_+n`G=8h$WPO)!V_D*^+rNiu3&+36An+fn)fN5BQxPLA%BU-zEY!$T%TcQ@`Bkc4 zYqvY(RytE@-V^y)y`gNb)^@VQWTc^dq0xDDI7hv)VzJfpczbcAv2y8qAPxcD^QNlh zo^UcQ)6u5t)q!}Xo)~y@&EF9LA@e_@&9ws{5GyV~ViB}4S)@fk%kS*A^Q%H<%Mj0C4NV5oVfSHzw#y_R zFrw&UXVrEp_;&?J7(&fMul1mxYrpMe+J3+NV!d>~#i=pj+&KJ0y{=Wy6Z`L^t^pVs5w;Q&00`)H6k&EaT>y|C#}^hP^N9P0IOrizg#{$&1qRRCGD~NHj9s0&Hk@AZqSh!KG`eJB?f)3ePzLUK zZ-YNN%7O|@d1*EQeT^2ms2(RDyCw|p%|S24`c|{Yvzf+iE`!fn#skH z*#Toi<2EbZu1c4bjKf-nym%Qec1-qIRpPN;zH|evg>R4+b;jw#vFN(!ftLfa!A(2} z+7H>#C!VBa`GLU?1Y~#BY)LR!fe$z{=m{8t#e>5w;2}vW#F%^y(QsT8Q^&{xG1pN~ z{bdzA0TKR?l_h>eKp{Z|Z!V z0WzK_**qGLq3huRdpy-c0Y%p2Y^-IKW_s#g+^5l2@(N)=RFYM}iT1{FbhGu7A~mk~ z5)3Nf^iHDm3il`@21kApMTGcIhFmGV8+bzr#FNv{U?oi?u0>yFFf=T$>G* zC=w+YMlpX7!dlCJtMHTKl{H;$?k{T@L7K>iP~*-#_zS4Yv#XzoXyJV3#|+9*nh*ic zt^$6);^!8IVV~;UzL_3aywo#HCPj7@%6wdT6@VZ375u9RS72KMt5N&29W_j%)r){#kvM4v)Q2Ytk>w{8>ZOSh>>&^#vqtw-&%3QW!$> zdzreiX^^GD1@;pvFWe3L5xVD^w__}SA`34S;ew;*jpFOD09)Hfo&#CUM~UZc>mvJ} z6x~q4CJG{3G!A{u!eXU{1>6_y%&cNv?)R+b=G zL*d<)y7?!5MpwuK1sdEgXq9_YkJt@=*b}K0SeAYdJNVG!Rhxwp6dN!k2`9&P(3J;D zyU9CvG%Rlf-`huEZsxcT2LWp-6c&je9Ov;B>XYc&*9VQK)rE}<;nKos zbES%B?w2I1N`q8$13$RFT^^XoLejcxUWSuXR{v9?#SUvzI-@)4496H^;YXvesn=0p zsVN$wsM-6dWFXj|{@yigt3ca=3LQNR0vp167@!RMO845~oV}_9EV%6kvG{M?2MV4dK4wG|MTrB`@s9Ris9X5Z&;T!Pah!C0axW=V4fpHmN0T*)KakI3Kz2 z1W4`^B}T7{YyUdHj63{K68v0x4^g-fGopRmhH@lrKS~?FS$~4LM8)~9sltHiqpp6H z^}__BWpBf`ZTq-$HJB(^*5Mz-(hbhC2s~uRl6t4>&@Qp#X5$s+Y5{YX**IhuRKU%U z)kaj+;N-et6^MkmeB*S5o1N%dmUr7bDMPhH-@yCrAF9}YgjisIwRo-sb?S#;`s_mh zV~5}XX8mAR&tP^HFUham;0J-906U*5!vx5?2Awzb4R5O44MlA&rHcHtKfQ|t^eR5d z_lg8_c!sE?hp35ri!s;?=W?2Sa*jqryC1#PwG9<%GCT%ZzG^U3YY2!M2-RV=)@C&` z9n|%e0acK5MhE&i)r2@xhPkANNHW*}Xvp2U8z2KtShw+KH}-Q5^&$yJc;0KfAbx@2 zk(*)Bn>N81%C|?qIKQsg=_wi7bbEQnM`SidWY0!q6tQF%1^|If&$r5 z-h+{^1|qA9B9ShU5QYyF5Z3g~h?dO=WRq9SN3wWUE9mr_B>iZW4M$;R*N1x1y-m?S zHlqh--#|s9v44Wo!2wosUadt@04hRpCPHn63-Z%TJVEwPTF@rcpYp;Fofi9XCidfb zEX74^3&aNqkIDOJnA#YV9S*s>i1R*R{-S3n@xX@a#AKyDtZv;B=yViwW73(9Cw=$E zYBv7<;Qov?!A}{y875!Q&)P?x$avpLVBi47GGmWOG}KJwzBCbg0O9B0!cGX&|0Lhn z?+9XMpxZIe;x|N6<#N@~ip_~T$>O17Kb6rrfdLP6ATgfk}k~Hy>z+H*z!4R#C z6al=H7jr4%)iwgNF&RzPDWvh_@80|>Ou)DBduKpm8=-D9$NH7k>vMRDVMYoNn5Ku9 z0yIY`HbSga<0To4Lk!YC4RHm|#ra00@Ngu4=uGsW%1D&RNH)kw^~y-k$jEHY$j-=! zy3F{@9!ntP^~EbA#w)WZBeSGAvurN2;xe;}DyvE&Lj%tXFwX+z1;4;c`C#t-YcSIm z1@4l_?l#Eo^~&zg$R2FY9-hk{z0CeWm4lMVnJ~zi^2(Xc$eG2<;o;zlYK} zWOz{}m1mf4Dw_Vt_`Esy`QPQ|J*qGFW1}O3FDG7K&N9ASG=CYLOV=Dq$)NnaGGyc5 zoE|5Uc(3xqAO1qvf+U_tl3XE4slOf+XK(3bGk75}Tgm8%tXpg^&~O%`L^g*(E~|I$ zZba^Vl^XYaF7H(?KXsmoK36;hyyV-R?dLuvaKZsBSF$AEu;iO}Nl|7=NlQuDd`ZPsNfmWz zjbv$^VQIlO3}m;JaZLs6GcNS03- zmQQ<^&t{g-x0L^$FCUGBHMf*f4X2@t`I_+3d*_RpRl%_bu*)jg0d?h(WaWur<(YTo zMP}tyOXbb{{Ry!WpsB)sQgw)5(ZX4rgnvH|uSioX%iN4(rZU}Ct9ocuP3}`o*$TS| zgzaZm)A>|il2lL{I`9|gc>`r#EyaB$6%2T0jwle>b+zD=T492!J4`%`CJT11Q7g4j z$xwQKj?HGauVFXhOBg7AJy+9x=`65N`|`R@Bnk$gh%nBuJD^_Qs0!1G2imA%RIN}{ z=TmO2;kM6yeho9oYOv#~x^sq&$zXRJ+@rA#uLvr#;qR^aYudL<8=-tw*U8Za4lKi< zSQP9&0uXLr>8MVOMFNZ-!1S`3gzOs)4opp-6t`bRSdqtTpm{UYkbXloU0bGmeV~}Y zhQzFvupQVLK#YTG%12j}L{;mlH|Iwsu5Ool+vrh}H*CwL1=_z4CNRq{1;vmw*Jib8 zjI^LpO&}6H0NF-q->B={+7#8?^299jF9e8(bVTuXVs=V%)!Xv3Km#L{kGa~n?Q75D z2~A|cY%)aM=1n{5RqpDbe0A{5LY5rqTdZP(D4C=^(hfz6CUqLqKA)Cr@7mLa&YSs$ zF*sp291Dqpx$bmg5mcmUwC`V=QfB65&c0g(y&Fv9{X&qgx=^#WV`^9hEi$UCzpfbe z?vfg*9*pXuEF~I^C;SG-cZuo&e7@hyr>WG6*`C<2(DHd5y3Qr7H)HK( zCCm5e5ER(zeq7I0k|8y+*$Qha`LPpKi-F^({Da+@vFQ{ugrFyS+>RF76Lk|3Tk9Y9mhM=&TtHaJ%H0Sq{YwIRQcnG^aWVYR4=VspGiT7oolJXe-M0e`)}X9E)a>ni)ScnH@bVXO?e8VN(1^tlwFK|>?aJ?Yt%a?hQ0O-5fe=gs~4 z_4nwPInOlVBIu3ZGzkw86+fX%JdQ3Lk{^#1ivm-15@=L)@c{S|&iIKAcyd+s!UwP! zMSOZ^s8>8zBj(`u6#(R-Va)OPy5^uOH2&XPEL${`3XTuksQ6MgRWSBrixy8qgHR`{ zqw0Aj+77RqZ~;Szs`aap8Xko%7F#$D5|)EZ%%^Q1k1%i%(W416Zh=@hKD`WnAsRa8 z40Vjb6GUPEtt1#Ux*U!#_eua>YX24;-jr<4TmTN@n4^Ai@6;AivWaq$p8$-&2TE?e9TyGre?neMIo@40dhPm=U!5Chvl^V=I( zDgc6kckT$ya2OKxZ4wVOkp!_{FV&q5Q40^GD>vGPHJ_IpJNG4KZ?(3;ax=Hu9QyLN zf9!LY+yNDNS3hX&x9DJ%P2Tmx_~RAr^$8}wbYIi}onNz|eD-Hm;I_Ij%+0o?X=Rl| z&+*e?(dgR!mTL02TB4V=J6bl=5})wWV6La zHJjI}HH)dGyYl71#c*GpdZqRLiS4s?j5D4#A6n0;S3h9e=xHY>%`pMdy74{j`{m4c z{G9stSr2y|9#;q0AH6ei`o`xR5IgW$I*-L127CeW2#&^HCU*$>?FV0UUyp{3UUb}E zAm48#JiFw0R@dTlnP#`JmV0T2`D+1N{z7+E6W5i;hrTkpG~hiy?7rgscjdKoQA>YA zY!xec`*AcvgF6d^;U*o3K-6IC5ryF~3eTa!9SbMzq~T zyy{r~i=H$-nEZbC$mg(x^JxD4nEk8$KYSOCXs$b3y(Fs6)L$4~unsWjJA5+8Hy9iPAYtCq@jyE~#Rur%uX;P7@8 zS20Rf@aaz^)$AvYROT1}Kx3PaPdru5kq)KS+14)6DL3uQ)Y;LkFlqM((dho0Eqi{x z*_A{d*D3l8mMZ|yCyD??(WUfUVuTIWx z;*0G_#>Nqt`#N^pLQVI?cB0_L7o{A-k9xJXziJ%iSsP>l7mVt2+eyAW(}*@444BUN z!Z|9Gj6PtfNuW1NLs}yPfXh=f%B%@A`$V))qf#`Ea!*q5*t6%MVL`(_NO zCisvso{5{)2~qWu-^%SR2BN{(!%AHyg9GV-(EBB4ZL$iI1Ljy1`04wFNb2epcKKWq z>_Dk2IJ3fu5_7cz*(>Hsk@IOw0_izI&!7YtD_Wi@#q>y7;<3kCwK9DGuAmA-7;}vZ zQygJpZZffT4ZYvp>v(~zyDoWbQakm*a^%^4KwDlE7ab2%RH%L~G_D}@qEOpfAeJ0v z*8>7r`8z>^SH*aF0rLsp#%=Q>*2kY+GuLUz!xV)vuN5iY)V)@w4;9u_W%D~3e-|GV zg2SXgn~cLP{-#Uo#pG;0y}!-M?l*BlBz8Am(PRyge2XwM><56vQ8<`dtJgCN;MpxZ zo5mk5|2!BN4Cbr}U;T0eKT^*0A&G)Y*jM(68aX!pZ7_QO9VBM_o?|79-l$C+4PcRo z2by3_=;)bX>0hvYxyApz@lC~6MmLW5O;G%cSbPgu>K6EpVI zMCRFwj;G;fvwn%e!IiL1z+##)CI`fUH=bIi%_hWP*BZw4yXufgUT$e}A>jjLFc?@7 zU&aACjTD}S#VJX?dw4vEATHcWXDVv&-!8@w@H8QF=WewH59sYaTMIf=53sg6)Q&4X zajc)QY2C#hd7Ab&b>j^ECepIwd?>TNO7bm1!4I5xlVg6hcRes=Uy*NLJ{j7TaCI0E zaIQO_4Glw%=N-qyHriarpJ8a7IM#FxoID?R&SeK2#AeuVUi2G?j?Sm&y^{p6dZ&9m zHrmfCLv*6_gXt>u33&KB>}6sPshYhuzF>;1jb6T_c(b$ha#7oN|7)}0EYIB&p?XH} zn8)$BGN!nInK#w5H10k5eB6hB7gn451K+*2e)5?7oml=0JR7y(eEVXE^iM6}g$+g6 zp`ruF7Q!4C25FnAi?iI9r>obf#00 z;Oni)k@v7kONk$Ff0c-&=xI_>%4JosdPpbhe<96@dr#2Isou^vslLQlqIbUj0;%GE zYLwj-vMq=$B|Q{3a=FS1sgonO45I>1kO(s{_R=|TC7Xy$q5Z~(hJT+!iiF&vb8 z$er;Zpr|@&JjBLSm#Q%Zuaj&XBaTD2tRwbz89^`a%kt3jU0c?h*HM}y(K5erpSw5Q z>oWy5#{P)Cd^4@i^ds6vdakHf>odulf08+LI^mTA&*ieK+j6C>Ap9PpQ(uifB=HyO z<{$=>2n?DmpYpwX;JZDUNB?^XgJ#j3l8A~FL=4@3p@(qyCKCKT$ua`?pA;)jeS`JA zd-794$||FpfMRS@aI)!ja`;G*vZ9@4N{jZrMJs}_{m-xzTw|ArwIG3nP3b$^;P$9n zq1o6weX0lu;QKMRUvPb_uH>f=>1p2kP*W9U$(fWCx0I`kS*xl@4c<1lRKbE`gD?)= zZeG$HnXjA70g*qg@lP4Yn71*{NrerDb*F36`W$RTS`B`M*Z_}4!5K~yB6d~0nTW8&* z8xM7ID|lkEtvk~))92(~-)gewKGV9?&MU1U^1>}=+HH#zfbi-eX`34gbm1Fj^~{g5 zl%^WaK}^&(_`kXTI5ZiuJJFa2KZsM!W8nsoRq#Y{y&I+=!f zM_;(ovKMgq?f){zuln+jg0sEvedKZLlI2xeQ}R3cSiz$>Cu0QdYNtS~y)O~n`Ru?m zuuFWXlri#+9N)U@hdV?lq4fRd@pDs7xREgDc3J863>eLgoH0Cq!yp4!S$%%j4T+;Sg1 zww02n8qjFy7mBrvD%79`8j2LZ*>@SH^p?q(5g&)wvuj;_zU-LF=(%)`dRbW`QQqIf zp1p`)j>AM*(FoR1KT4HjE#Gs}A)+Z-ePV-5PWja;B4Uvg?0{F%oE~3Goo+$95x3UU zjP7%9sBd?4@@QQcX=mPqC*ktP9T%+AevC*WdR}u!*r&b4rOD_y+W-WzIaXwnTl0|G z$4xI`z@D8TX=hAuRAcxxM@fT|0urbBhaD#PclA7)PPmuB5{IFe@dW+QrjjPC^@WJ8 zXr7%nn`k*7yeoxsEAH(F+-|-wuhBQsu3)UUEU)b3!S@CWp6oze{6oA)FP*Uq+*Emi z_^#K}q#|;Z+!l0cXmk2)2hkBSz=e~NTK@;VvB%;Lxxvs2;6p)j02-I9h>~i}nFX;m z^H$Ya&22Cf()5JoiN>p?k`HPh&vhKIwZ*XkO3mg(#=1qQ!)*N$Q8dZ8B4 zi-SuY$VcsrMS-RmVTV#5P~G=qL6W})&BY@5rFlGC2u^Y=avzJ#;XI>En7n2Xgyu&E zRX=cOCUxuHXl@Q@3MmVgjl7JgvyBqpL`VaH^RFXoBqLW=5u!+(ym%aXg=~+7)++*D zjF;Ruu3&6oXL4chZpj;XJEK?#snDEcq}vshRg$ELLXRvr*iv|)5_Xm_6tv+^-X?~8wZUxG!3)0OPXl-@HdNlEn^X*Vva z^||ya*YI<>Js%LO!&bDW^Y|B4)eQAVRz(fce4>eFNMsFZ4S)QABy}?E7O4`sMvbXm zZv4R2_jHPp=ZJHDcp!caKZ3N(TSy`lyNVkbtp9MZ9f=p&8Aj}rSpJ0Mkh;nb_4)ds zDkD5Rl9~VUhe7Nv$d?n!s;DjMCEgp89g|0?Nh;YU$z66qE!ZHA8{?}LvaRLR>AkO4!j@JLi!RNY~CzVUDf zwLm03cX85i_Zoi5DxWJhV8-1TklYh^qm~#R0Xl@ZHidc*B^U*Ug$46e}XR;iJ74@N|2ba^Tg zz5JEVrLQkHI{I*U@Fc%+8DdX~qsbrkKJdPG{FBa6m=Gm`-#o|$73PBu^IeAcsHh`+ zp?d;hGUnxxQ$vozB>p6?@UO#cDRHb(pWjd-UI2kYn_=GU6vy0YE?6j+*Ml9xN}bWg zlrChe&k0sSG)g-Qlo{#kWPZ>KerE4PD7w9@%Esfo`XsO!B0!1bcLCNCxQ}(?7+pYK z^aNl34iUI-RY5`aLPFl7f4uYrs|>z8j~?mMAg-`rF$%=B)@N}o0`XOW{E9vq0)e** zAnSX>W%$o)sbc!S;m(>USNupYX{yn70rZj9DOFy0mt61xgO%WC%+NB5_%wV-JNFR} z#ctO_d;PFS-JyoF<3iy~K=^AT^tfb_vEy_gWnDN;3@BzmMI zRu9bx$9umLCV>9&0!{Z&@ssf2OQ$N(D<}?=IO4^u@XH)fxLvGP_9pjYnA#Mu$rXTO2KQ%7E@3;9$O+sbDUt?a~Ke0a0Rvk!lZd^bg zq+Jy%;0ZQI4B+gB#XHWt@+Q@~{A6Jg8ujR>KVvW=_8q~Je z4}Cw2YaAZ^9+7NpE3gg5#~NVIFMl+T>sl{lHhXGz%LyF zvM}`pP(GVtKdt}hbgQOQ4u2IM>;v!|ei=9}=DA>rX%(9yCUxW4e|P2=FYGcZ%rBa$ z*78f{54`ze@Q631?$?S)gkyVFc8=-#U&u_~i*(wtTYeQbgRiZ>VROHfmMCAa7UO;4 z=1fHDoxDMz4a^kn%uKhq)_T5Ph-jUoIfB~RSNhD-X!uz1&|S_8=?B7pWW+hJh$HnY z!MtOMyWz*T2EFwxePd`-)yUnzCEhFZ<%Hj1O!^>R3wX{b+2=o9=7iuM{Yilq@$q{0 zv{|o3%;q17WM<-!bL3BxzBFGz4xPv3lzghup;}gukeEj*dO!JpK z>@a>43HKjaG6=lD;5sG*lXwt$dNDIRh=aRrD{~bH^B#t88CJ6j3I5yuv zu~nExGR%LIl$U)#9h*Tsh#3f37>UnQY1t*A?oYyBd>uoM3*@2Y67E>!;9I33up2UJ zYTM11rtds%AUxs3JkUt)ctB7empz;qKm~U)NlH882Onk}Ib&%P+kL%bv5+8G<<9#Y z7|gU8KSQmL5dBoo||8iKUs6G|`0azgqH@OT{uP*O;bhv za;N2(CY$?Ju{gx#U>^fM04VP5><8Fl2RO^1xjs%+)r` z5rr5rMXmRnT*a!X2yUvsEcNcY2i1d9LV}si56L|~G$9Tt(hjK#52+guX$B5yXAU24 z9MYX1(vKe+1%3Eo`+=R`g()D%t3q#mPjjQ+oaDXIHTaL2E_X_FFth##a*ALc3T*0G z7ry-?K8j<0HdlVJV~oJFV?pI(5xry4SI1&+UBx|)#S4!m8eJs@jwQ#BpUfN!Y#i}C z3ucT9X4iMAm{^8|9T^K}+S|m5=+2WasXf#?q<9vr)_9^maPoZS?2W z%<`FwZeg%>T(9+WGo#E-wl5z|ZZrc$w(DGKRg^!lhX-42oH?DJy@#ATQ=ETbJ9iN~ zcU3-j(>wo2aqg&msO#~uLqbee@Z47hxV3nDDTRh_s8y!i%WJi|B!in3;?4u=AjSqUA^)QuV^~4i=LZ4`1e? zMQ^3#DK&nYi=d^`l;7^|jh9&im)SFyIUAQwW<%B<=il3MFRn^&OE`+2dznn}x$Q*s z(NSDX;7Q5+DzUkGw>3e(A?{PB_cGDG5 z$)(2rJ+r_Kr#G>(vX!3TqhMJgE>|JRXvw8d(fjAocB5}z`=wal{_?n;4!fO6yPYk( zool?EAGlqZxyAh6xLrKI{R6pMqVS(iYiJJOux4%$^>t@pN4(A9qwF`zkc4X{Qf<2 z+NLaZ9&-l?=f;MRa@!ujyF>6P1RXXH7<$7=*;wlYHPp#@sO#OfHWLU{;%x_!9C&Ev z;bcy|8i%bTmeF*!P5%oFGVBX^t zQq$oR{uNAbB!!UEzYBr2!9+H#iW~iMOWwyK_ItCb(F^e({vPo-UI}kcmFOLxT%VVl z$7Q!ZtSCQg*!|t)v9mXJ-MEkL3?txsdDC>bqLOCc&~AL7+R3E!r~kuN zOTJrU^&26+XV-0)Cz~^+@5k@juP+WZMk-%nI&QD3e-5Nd`_-v0I*P%AK-8Yd=dxWo z4}rjlbF}9JHF1W}M~0pZpQ!Ab7{VUALo);3$0!-nKr=lVBROouR_qyqp_aA`Y_kxLt)XsoTed|sL-ck_%DL3xS&N9ga=r!$k^LI{xS_<9I<{jZW@Pw+=MBUc%$PFhL3t$6}~n?R<7yrVM_}>r0{t2A&5dJ|a^%6r@{Jdn)qlqY1SL zKri!CX#x=E#sb)$qdtPo(+C0yR4LKjs;}ObGns3+Y=8T$p{CbpHt|8S@sDR#8y^t` zViCRo=*!BrtD^Y3CS+M&D7Eus!*Kz+(&S!<$rpt_)j^vVJ(E-@__roL-#~E7!|V3* z?ef~Y7F9CzSEffJF6Di+Wbv|tX{R0WAhowR=Ve*#cgAP2mk zKPx9uSFaLCF(&+jO@F<2-O_neA>DCV#^m6!vx8|pH*<6#bSEd{uW25@ILKFjsEf3Y z@2kn(kZ@Ckuxz?utpIQw9RGjJodo7BpWVZ~bzTy)THRNO7s-;R6q!oe;q(@HByQ#8 zJM#!A9BCGHKUCU&o1sO$rp6w!L=jX=ep;iu;VEsGtFgH13E?>wx|)Zb z2i1*^R|LU_iQKsj7ulXtDZIuG_l=jr1D!f!W4{D~urE6aOl86`gjF$)aZ+*w(C`Y< zj~h_j6G|dY9UiwFq@i`&jA}zeAlcfo>YC5D9plDE3FZlquPrqhSw`4X61fM$MS3$+ zDxFET%Oo-E%#xE{EW8EGcAY!1eMnR&Qo{n)sg?5d=c9^-4?%>2fKIxmreKP1A`7L% zkgT4jMrh`98DY38`HC|i53-b?lL_%ik`%&)WWZ0hmnZif07*y*vOA)l)5bdE3frzT z>mq~5xmB9M6$JP$NbE;zo$W!4!kMU$ZyIVRKNI-vZRqkyffarpj+W0eJ|^cRQW zqN+{Q_am{ZEkf_K^GRm|R^h*HPCB&{y{GZNDkJ)E7|7M9%QEXr<3hEJg-YkhQ$?y( zV+?7|svz~-U0&=Ay{hCE^Z82k^%XoMn#Cbg3hmYnTl3sbuBAqe__pd>kr9sXuUW)d z)Eeq^RGnX2{$AK?XkMC_aQQm&V@9*FMJJd`J-c*q*QK%b-wCg0PnN+>Vq@F-3p%6m z(m$s)X?$Bb5uU4DX8(>pdY$#9`uJrTrzb<(c5nFtbzIG^!Rg=a9j5|oA0e@Yn!1Q9 ze)!OHFXIVqcRo~l5&Wnu4ZU*KP51f0P~^sfTvD$W!z6uZf9}n3lS}C}%PC-Q#BDWW zGutbaY8d01jixzn8j!vdh(~a*F_1M6DoG0_CY7zR2sIDA^cPId)JEDhMMFJYW; zgb`{HE;8dK(`!!$KxL(*DZJx-#5csVT6m`Vu|g3}u8A}spwIQjU}Jf%d6N+;Iynt? z%kv0^s`WArJvN-by$F4S+bKgEqKw5{OSNfR2?M=>IL0**Z5B}x2Sw<%n^F;|c)*9!nXoI8LF0zV)P@%SE;sEhpCf>sct+o~N z@8bPJ6^AjdZL4$`@j-dsqlBckHP&Ym!&((bDYb2Xc>^TwCy>V(lWpsw-z9#yRvhOX zw{1vcBv1(6ldoj$n@Z0lCz2{o3WVCXUIs``eEc|Fe1aWPY;ZtiHB=*D2u1?^WLO=E?Rw_wP^s99NvTAGh!OW1gUK_%6E0?gysN zq*ll(FZzT!4r2qP)|mJ%hqOA5Qol>B&k0ptj=6Rmf5u2{%JW_QOzJrK_U!4lR^`>N z+K$tTfT#bg_^#(BJI)%uKizY!yk0!+IPbtbJwWi?ER%h|=zk`ClvH{1SLplYj{xbD zJigm4t?yUU-=)uLD{psQzhD2sNMH2u-5n-}s;|?zHy%?OwpMn^iu{<^7`h z?EAC3<4Vl!@%Q^q!e;;&2@u1v$dOodaBNm2HZL6KeqbpL$5le&zJ!Bxkswnz*aiu9 zfN26?j7rB}yQhGyhBb?04se9FQ0?>pH%u z^Z#GkC(@>mHRrhLp7u!>vKQTi%H&CZ!fgR$Sccc{X`fP4$E5LG=`yR4&o35^41g-8 zJ&RHnJfbBW)hW7{ZB2(6R#@CMoCnNCh`=L2B^SgHv-%(H<8<&ZSJ6c#7V{}nila+0 zB;VC+yuQ05eSLBKw&TUwrJRx%ih;z4L!glqu;!moQo9n_L?a9q`+v*$ zunQ*}M+V|1>YT{V{-T3>v*#+qbq9YLG|oXf)xu_VP>#{uq)bdy{=%sNOr|=y5fW$m zuOrM3(;zC^06#UAuZBBG08ZDp&v6<`94zu7fMp7KaI_feJ@yBQ|7f3L5`;c0!{A54 zjEHaP4h<5F2p$P$m5)x-@7^MQE6fy&T_)~9bTt~9 zW`6R-rxgQV_S|q|m&d{u1;|g5Mw;spcH6~8-%7Si${Mz}ORM@ZoI7PLKkatPC09yz zDl%1vcPdMdY$wH&Vy*sFcd{DAM|ih|hSi{y>`CHYEgzQE&C1a*0>4bNb{pGt2lMKO z_pErEhViq?n*Z$~oNBgH7b;r!_o(@*jz1gichszxR+b37`^xft^Xi(<B;S-W4qYm-c5&*yGCYedIPJ^*`+%Uz--a)6DhT@F&;L~ihX)tMw+XFxp z7}RP(uq~Bc*^w!zy#~h)VgY=gF_TIFh#7H)XqNBrvC9XX)lL96^4ILRACBTaT=vq* z0AQ6#*z&kh2O!%a$E^H(5ju5tM)dS%b_Zi^5s3Tk-vsgRt3GWv*%U4_%OWun3kBSV zfCd=2K@$Z1lcPuS_wQ0pMDG497r^}`{`mdSV?;O~OOe1L^>cpqPZ8HoMLv&B2?Bk=Onf)sYR8$R*64OWXS;dBiUV0xT zAqflEl~so|&x*KX;PP+ev{khP*8uFmg6$ucba6!1558^@aG6|^V5L`c>ty1OOu&*byDwJTCFhu&Q{Uf3+#fOF@_Us|_7Ewhidfp^_!c%ZMeyG$*7mT6i z`b_Hbq8m=1>8JdLK-ic?b*}*N2a*u|KjEKb9jft-039%k#0c&krLq@+f&xVLgDpZc%m1yZy=uMJfb&u_kp#ptlhIlMR-jCF{?^ z?mP+kz)5-c^r2pnQj(leJg>=EzmfYKtd(J1Fj=$HsveAo8@Vo2p>vs?6&V!tX%2Ne z=2YS#yQ}-5s&z1-m_pbrdG?QcETRnxLzwHMIWer(a-_3r&PX>Np3u;g+O`qwUg_*9 zBU{y52YI+sm{WGDqk=VFqdgSgVT~wk?gEYX7QVC$QZvJvKI8yrS7ic8AmZ9+GqVp1 zbNSYsJv8iq%cnIZN^J%Yh-@Rb@WfHedF>D+`y|2V+hoRFuH68r1^WlCXLTfLJHZCt z2?tSWVsjg$b}{rhlwG&A2H$F6kJy68|f1az;9uVIr|dHhNq2u*E1V)LiltR&T>s8E{~f?)CAqy&YLftM8+kR zIqBU_wCX(fRSf)2Zl0FqWxbZNi@eZ6XWIJ-`WzfS$7=K1(Sx|U`{oyT;s`wNa)zIb z;*}ttnvcZ-TPpZC7Mqz9!ZhNONNo-*2J4U7CJTpvnL{!| zA@^-U*c2gbFl<`rGsZDyUQdo#VcacQ zRdIHk1rmnh1|kKUWb8t~*DG-X%N`*-WZS0-=ZnAwLudT2{JEgm&rWMh>DB7A?@PqoRV zttXh*-aYd4>-sR_dl;h{ozU9zsJrRvQPkOOzO2S8>Aa|~<2~g}D~wI_+a{e&LBl^Y zy{h+C9H_13hvs$<)<^PHvj1&Kf75dO^~#b?GDMv%`Eg~O;Ac1Eo3rD)6?m)`wj?$7 zd*42vH$=(SJU^i+UVsZOeIsGqX_H?J6!_^%Lh-#4K^H_(eHbH3%dkS?L+Or;lRPe*6sbmN{w z=kXZEmFDRp?fxoKzuS$Ly*y$qdU3ih!W^+uqE4>8O4-w zCWZSJCg+T$9ee`>Fa!3FE76fezbxr5UNSBzUs=*c>J|QPmULC<%V(pDFIy}DSl7^< z{wquR{a~CyDYPYBR+j101Nu3#u}WD6u3wh)H}}VMtzUkhH1fEzq$7BbrY(~lk7jI& zUmndmtTZ`)l*IrYYhhsgeiAl;OpG`G^(5HMA*)D#!5RK9Cm{oD^9P(^aK`Ei&JfT2 zGR5*2oM8-W!WBwXdeyF-RjI`l;haK1nu+CTIK!|YsFmXi&X5}&_21zPDp{&ma0Ya{ zHh+FUW@9)@EP|1jRA{r-QK@|1_RQ5Vrrcs-A_(EWJNx8E&%8K!)Yk=@`XO5NjE4Ob z$2cC1SBa=^8{PR0kuq=YJlmS)y=mf~WOwxIBrs{beSP|EbG#hguD$tjytmSyt?};d zPjtKXd13h7yUR-ehjS5*MP;)X0A?>)3?vjrw`&l2&ZS@qU7Mv48mp3}PzLwSB?L5- za~a8&WV0N`SyZwdexrVKIfB27b0t!!y>?jQY_-H9NF*)ALK22knlAw&vR#c;WG`Kf zQx!(T8PM(8T7o8MBqs6fTxK~I^!o)R zrHwStzSNCO@1x$0Y|jhts>%^WF696YvI=5_soSdla?^hwaQ+bT@4D%&c`aNpi4 z&Iz5hMVUO}LWx1wPli*D_r~qS&s#6K?O)Um+1bBroG-I~_4>=UeMRd9w?kzIvAsi8 z&(N%0xyeP%cBo9atqO;k1DSl?lwmn<{YUry-G=#4f-jBBNh)8O){7#(G;i1Ue`%S2 z6yZoCUx_l4z!bxWMVI(~Q;WXXUitbDaE7Y)>k!&Kc1E|9n0z4Ld?@8n=#AG&KHTMM&k!f~AHx>Z#v?Ls6+Hpym zARD)LkNAk-HF~#pYgG)TGxtM>7-zngojo}s5gR*?9}vHs+pPb1qqMA0QmeS{tBB>T zG6RWAp-UNgil~wNwU15>!M8s#67J?kuWSA+ocFm5BBB@~dvu~)cINu*lkDg5m}raV z#HUs}vIoQBfc`w|RQmJXkxeXOE|g@>3U9NGFTuCK($aUkarwrsZ&A1mtrCl<3$}L^ z5*CutKP1~5;W6t%y`P$8aGmx@QhxBIyq1Vs*}Z3daULJTdbt=hKG)78doT86Pv+A+8 z=#?RYF71*VJ`6m)o`MvKcd?VR$^2&o=vx&stawSa}X zw@3cYK`bh=fQ>^*Ng02I#*7~c;Ijan(l&~HkOEH3)JSuhe44_0kGZvMm37Oi6U!s7 z->^RIGi*Lcs;+&^=d7giXuCSOg^-;eaoTTwc97Bw>EgmI9WaAhP}Y}(@a7mq*bx^{ z0hJ-QCAP$b89Cuj15=wN(}jREIC4{UgBm+;$i4Yn=3Zp+y$z*d@7ZrzCmqF9BD$CF z=(ZG0l*klCmGW?(f9XocQ7e(A?i&fcbC?V145wsCV~Xhs$U9BNl;0vp2zQv}qd#bh z3d&<~X@>-$J1sHi$n)Y)jj&gv(66x-L46V0w*O}$=nlE zBS5K=X0S3<+eFz=34vlAx?M}7suDj*k-RdKf1P*kW68qRx|aUSoLGx zWG?$F&d)}#VJ&JYzMCtz^J?

    lDk_qhym1MFfM;!6NdqtOi>eo~B%Xcr#4~2S&yl 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�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

    9wP~wipsVs5f0LQNxg=VLp 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%0A1{8WPvBHG(*PmRFd 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

    Yz6DB_f_}l|rTJ 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 b1fmKl@0}pEX70Qw Date: Thu, 21 Jan 2021 10:08:22 +0800 Subject: [PATCH 127/309] Get all the identity strings in advance. --- .../Identity/AbpIdentityResultExtensions.cs | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs index aa76241ca6..cb1ffc9d8a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/AspNetCore/Identity/AbpIdentityResultExtensions.cs @@ -1,8 +1,10 @@ using System; using System.Linq; using System.Collections.Generic; +using System.Globalization; using System.Resources; using Microsoft.Extensions.Localization; +using Volo.Abp; using Volo.Abp.Identity; using Volo.Abp.Text.Formatting; @@ -10,8 +12,38 @@ namespace Microsoft.AspNetCore.Identity { public static class AbpIdentityResultExtensions { - //TODO: cache? - private static readonly ResourceManager IdentityResourceManager = new ResourceManager("Microsoft.Extensions.Identity.Core.Resources", typeof(UserManager<>).Assembly); + private static readonly Dictionary IdentityStrings = new Dictionary(); + + static AbpIdentityResultExtensions() + { + var identityResourceManager = new ResourceManager("Microsoft.Extensions.Identity.Core.Resources", typeof(UserManager<>).Assembly); + var resourceSet = identityResourceManager.GetResourceSet(CultureInfo.InvariantCulture, true, false); + if (resourceSet == null) + { + throw new AbpException("Can't get the ResourceSet of Identity."); + } + + var iterator = resourceSet.GetEnumerator(); + while (true) + { + if (!iterator.MoveNext()) + { + break; + } + + var key = iterator.Key?.ToString(); + var value = iterator.Value?.ToString(); + if (key != null && value != null) + { + IdentityStrings.Add(key, value); + } + } + + if (!IdentityStrings.Any()) + { + throw new AbpException("ResourceSet values of Identity is empty."); + } + } public static void CheckErrors(this IdentityResult identityResult) { @@ -42,7 +74,7 @@ namespace Microsoft.AspNetCore.Identity } var error = identityResult.Errors.First(); - var englishString = IdentityResourceManager.GetString(error.Code); + var englishString = IdentityStrings.GetOrDefault(error.Code); if (englishString == null) { @@ -80,7 +112,7 @@ namespace Microsoft.AspNetCore.Identity if (!localizedString.ResourceNotFound) { - var englishString = IdentityResourceManager.GetString(error.Code); + var englishString = IdentityStrings.GetOrDefault(error.Code); if (englishString != null) { if (FormattedStringValueExtracter.IsMatch(error.Description, englishString, out var values)) From b15848d9a076e1ded952612ccbc601457c48860d Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Thu, 21 Jan 2021 10:42:49 +0300 Subject: [PATCH 128/309] finalize the article --- .../POST.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md index 1e676bd39e..f1e5dd3834 100644 --- a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md +++ b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md @@ -22,7 +22,7 @@ The following tools should be installed on your development machine: ## Source Code -TODO: Source code link +I have prepared a sample project that contains more PrimeNG components than described in this article. You can download the source code [on GitHub](https://github.com/abpframework/abp-samples/tree/master/PrimengSample). ## Creating a New Solution @@ -340,4 +340,4 @@ After adding the table, the final UI looks like this: ## Conclusion -TODO +We have implemented the PrimeNG component library on the ABP Angular UI project and used two components on a page in a short time. You can use any PrimeNG components by following the documentation. The ABP Angular UI will not block you in any case. From 898967c3548c3b91230c0b74f4b4f2f10dc6a6b4 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 21 Jan 2021 11:15:32 +0300 Subject: [PATCH 129/309] Cli: Added BlazorUi to ModuleInfo --- .../Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs index fadd830c93..260fbb745f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs @@ -21,5 +21,7 @@ public bool AngularUi { get; set; } public bool MvcUi { get; set; } + + public bool BlazorUi { get; set; } } -} \ No newline at end of file +} From d495f567e36b80c385eff08a578abfcba4db5fc3 Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Thu, 21 Jan 2021 11:30:46 +0100 Subject: [PATCH 130/309] Community article on how to integrate MatBlazor --- .../POST.md | 103 ++++++++++++++++++ .../example-result.png | Bin 0 -> 63504 bytes .../initial-project.png | Bin 0 -> 11549 bytes .../table-app-contract.png | Bin 0 -> 8686 bytes .../table-application.png | Bin 0 -> 6625 bytes .../table-web.png | Bin 0 -> 14259 bytes 6 files changed, 103 insertions(+) create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/POST.md create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/example-result.png create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/initial-project.png create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-app-contract.png create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-application.png create mode 100644 docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-web.png diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/POST.md new file mode 100644 index 0000000000..f30f31d541 --- /dev/null +++ b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/POST.md @@ -0,0 +1,103 @@ +## Using MatBlazor UI Components With the ABP Framework + +Hi, in this step by step article, I will show you how to integrate [MatBlazor](https://www.matblazor.com/), a blazor UI components into ABP Framework-based applications. + +![example-result](example-result.png) + +*(A screenshot from the example application developed in this article)* + +## Create the Project + +> First thing is to create the project. ABP Framework offers startup templates to get into business faster. + +In this article, I will create a new startup template with EF Core as a database provider and Blazor for UI framework. But if you already have a project with Blazor UI, you don't need to create a new startup template, you can directly implement the following steps to your existing project. + +> If you already have a project with the Blazor UI, you can skip this section. + +* Before starting the development, we will create a new solution named `MatBlazorSample` (or whatever you want). We will create a new startup template with EF Core as a database provider and Blazor for UI framework by using [ABP CLI](https://docs.abp.io/en/abp/latest/CLI): + +````bash +abp new MatBlazorSample -u blazor +```` + +This will create new project inside of `aspnet-core`, so: + +````bash +cd aspnet-core +```` + +and + +````bash +dotnet restore +```` + +* Our project boilerplate will be ready after the download is finished. Then, we can open the solution in the Visual Studio (or any other IDE) and run the `MatBlazorSample.DbMigrator` to create the database and seed initial data (which creates the admin user, admin role, permissions etc.) + +![initial-project](initial-project.png) + +* After database and initial data created, +* Run the `MatBlazorSample.HttpApi.Host` to see our server side working and +* Run the `MatBlazorSample.Blazor` to see our UI working properly. + +> _Default login credentials for admin: username is **admin** and password is **1q2w3E\***_ + +## Install MatBlazor + +You can follow [this documentation](https://www.matblazor.com/) to install MatBlazor packages into your computer. + +### Adding MatBlazor NuGet Packages + +```bash +Install-Package MatBlazor +``` + +### Register MatBlazor Resources + +1. Add the following line to the HEAD section of the `wwwroot/index.html` file within the `MatBlazorSample.Blazor` project: + + ```Razor + + + + + + ``` + +2. In the `MatBlazorSampleBlazorModule` class, call the `AddMatBlazor()` method from your project's `ConfigureServices()` method: + + ```csharp + public override void ConfigureServices(ServiceConfigurationContext context) + { + var environment = context.Services.GetSingletonInstance(); + var builder = context.Services.GetSingletonInstance(); + // ... + builder.Services.AddMatBlazor(); + } + ``` + +3. Register the **MatBlazorSample.Blazor** namespace in the `_Imports.razor` file: + + ```Razor + @using MatBlazor + ``` + +## The Sample Application + +We have created a sample application with [Table](https://www.matblazor.com/Table) example. + +### The Source Code + +You can download the source code from [here](https://github.com/abpframework/abp-samples/tree/master/MatBlazorSample). + +The related files for this example are marked in the following screenshots. + +![table-app-contract](table-app-contract.png) + +![table-application](table-application.png) + +![table-web](table-web.png) + +## Conclusion + +In this article, I've explained how to use [MatBlazor](https://www.matblazor.com/) components in your application. ABP Framework is designed so that it can work with any UI library/framework. \ No newline at end of file diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/example-result.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/example-result.png new file mode 100644 index 0000000000000000000000000000000000000000..89a2fecdcecbf08790ea1e549ec1fd25c5194713 GIT binary patch literal 63504 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/initial-project.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/initial-project.png new file mode 100644 index 0000000000000000000000000000000000000000..85e71d56921264d961def41b7aed6558ae86f3b3 GIT binary patch literal 11549 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-app-contract.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-app-contract.png new file mode 100644 index 0000000000000000000000000000000000000000..8108cdc60616785e5df1ac7f7c10fbe300618bf0 GIT binary patch literal 8686 zcmd6NbwHDC)b~U{cqpZ&QX*KDUp&+87-~Ah;29w8l;-t{+0DwweO+^m?xZp^* z?j<87d|R?frx2P8PxVxl0LA^xD})ZQ14s)50F*^joIEBW^vONcOr8P&)SrKTE_Aqm zumu3vgVj|)k06$~jDZrCwuBCoZMI&Qb}?|5A*Cg|eXH9|l^h4&@DsYXAw02ym}|U) zFGz0aY|keHy1Cfj$ZdKv1I@W3e!y>H@SwemC9~#L z2?RI!d7?QFqQM`RzSV*MnqQvvX4LvlAzMj0Z?#^=W_%furEqo4>XQXDCS?|3N)5=! zMV#S!O7d5x9&j$xwP6w^fAB<;YKtT|)JkCq0SbSAxeikvN_vXKK>=enLt8NSyY z(}o<=&N+|Bj^^|AhVravb{rY~Khmo%webpntA?gXUHH0bV*hw9DpLL(y3Q9~CHk3g zKpw1Uy;nNsDXrdq0M)2~ap)}smo(d5|F3}&!`lt{B)IvL_BMsI(q0F#k&qW-*BAW8|i+gPmwx*9OnRc zt(Jb+y&*iPjmGEf0n?K1Wv~?h-5O4hh^QC7a*z=!a>J+M0+=eE?ssX!0cCS zte#axJK#UV4$328j#y5+h!44q@hOFUFe5YNST0EaKlB>-xoi z*b<18q7>(Zfg0Yf|a2Qrga9NctpqDIpX4WHi5gs~?@DaOn zG`8*_DWFgrbm*c@4XAT>;Hv*p3E>nEszsAhVJ-_d4W2F?ibwMA-FGvzy!Qh@;-Sgst9y`*@e1gghcC(I^B80 zv3{1&ituu*v%T&BwXytyH!Rl>54JO#>w2!_Z``I)KU1%j$wnTFs-YKedIu{mVkyQNyFyA{4)(U^rkMzj~F9@`#D$)J@vbth$@ub4fhJs43t0!1%(`H)Y7y+dgTCl!)qT z%s34ou`h@CE-9G|0|8|;!6FDtDnYKRq{LJ$L&hNlBm$`Y1B2+vt^)v!e-Tpw02FpU zpkeLys$Hi+6uFY49Ragg?SZ>x;0~_XXK6wEr`laCkL6#Z@Cz^tJCk;8YwjbN)Werd zs72Bi+GGp#t;V^IXzd#-I-ja?1?5WmM`zWp7=Dses9IRSP@#k=6*mNw&`bRa($90# z5SVJeR94k1*(rAYO@C1K?>E(!^DmSSpnM)B8c}XVqGcrL*)sItC7(!gLfBD9!f>jXbNQ`Zu#^%Wc)@h_jab+e+h`W=j5}0pOnbi&FeABp(^44p#7+RRO$rz;Cj;fZ5gVkhtnM4$ zy~C{KWv=04)ojo*baA|DB$TY`BVBWwh`8m98MA51bveI_K`R8&zNTS&c+0`&<2CW~ z3OR*G3aiEE{WhFt8{TSCnJe(FE;ecP0sfOo7FedH2MdeWe)cV#D54jy~ z(tGiID?_k`$FlF*UFdc}ob}LYGi063 zDKNBYNnHSN1+|ZIN5hO*;MQWvTIj5^shI*G1K@B^END;s;2Ke>U!iZ{^ZZU7 zw3lI{Rp9PML0dz!UwQ3zD>q;B%%QV^VR#MG$wZVf6h|HwTJr7rO0rwvbMJCB&^dl# z^t#jOxbSo!9vf-0ozS%ZNSba6k*EN*+*|6q$pr{?VzRP+YMhRAvTHDNtCLV;YDZlu z=9;}4Oq`)o%xeR<%q@v(u`lBR#id8H-gS24_)-2j*%<9r=3kbqgGH!$vqr09?NFgk zM#=i%3%3ETfzSI0#zb&O(q3PB)Dt&fH!Y=GqN~I|k6>Lgf%#Xwc%~t&t`!nF`IMQD zh-le6fMX9B*&TV842YpyDel+5`*`k6WRa4k_95#W`+Oh@GJ(z-w@Sk5I7h*f-V>u% zq)3{;K&QiBGJKcbL2)!ZyZvN9(zb95vlAUj_pBpM_lTmNehWkH-5$Z65M=OuPP6Ay zTI)?>!G#Bo-u|AaZ)YR(nlYEl+Y@T6EL=$~LNVduF^PCJ|MIwLS^N@%T}fGLY2BL_rloITen6L426jR7vK!%@PeLZS@ffJ;mf zC31w=r}OgvL)&>DU77hhk-7zRYwv()CngdZ%_1uqn!E2->xv5)jxBWyIk{&ORwa2L zOl#*q#t4&ym8#uEwaD3WIL4y4<~rguQs)ET(r*Sg(9jb?sfMLD4y-~u`+btxRDBqc9M8Q>rLVv9>L~QUoAO?~%l39v- zN7jz*@eha=_mS{}PjhxKo;4q7I=xhv`wg*3O%ch=-W)QSkT_#B1BABM>$l7~mr-7e z9-t?O;!k~IePWRNZqLX~a?}TLW`q7^61EeG4&WG_wQGfrn(fQo(Un)4+FD!UtP?@M zM9u_alMjTHrjxra3S^f|Y^8|y6;^rSjL9dC2Z({Tp>Jl& zlu1sa_>I(Av=JuE`5nOI*Dl0&@Am`dHU4aP5#W3qwGBX!-cbHW`|Z8&^eHm=BJ6_G zAs}eWI&k5qr+M{1v>-{u^kG)khZO*`ie9wvZJKeiBeAT*-dnM#XDiMGyS4i3O!L!K z(^D>C#(ik<8RvBNz}-i3C5dTaPur$m%UezEhZk4MM-=6O%EtV7>y8Tz-N?$$B(U{s zXTW4uq!*OXJ1{N0y8OiK{VH+6>8;H3bi!>Go;5Uxm)@AJJTBI-*lytq$Gr&5m)wg!Q8Fz}0+5WQO z#Ep)ZlwK<;96q7XS?ZeO+krM4o00C5PUH=^x>tS|6fk?JnU?rRO}S8KdjXNT@cjm< zU{PlIr-^Hz2GNHo<;)MCuw=*!)BerlVcCh1Vpi%>nw`x@MaR*7+TP7U;-YXw*I zlb48hPEL32Z-VQ*8mWaj@WHSV+BtW%@~LWhi5*8XnEw^%?H{6|zbyokF`w3V{kOJq zJElshKy>gOU(;|4% z%B|j;SGiYzehS>>O*Cq2EMV_j6fv!<-jl|VD)SoU@y}+){C8V=J$fdy9LgsLqmvGg zd#0J4BL9Go(K7EQ5C1~jk=B9@!m`ea1s5iBN@5XKwyt?6IKef6*t7mvP7Td~r+cmE zPV`ItOvvj?(xuJOqMO=DCHJyEY@b~Uh}_P2B-U#klo&h#3s=^78yk-Il=eT)Rz0PS zr8xJ`8s8_P+q*vd@tAFL*0|0p$DD&y)?Ew^1D z%wT+fG(9!*gXp9F7m`mGV{*>}PvflLKM;GOG1~2GLn?I)*}TX54jC^&TSZ&y-K;m+ zXaD(rCCa=|KEY0e%+Ao|+{9_;iDyD7_Ud;9awA+)0#f_QT_AKPb-S`-V$e`MAPekT z3pFa1@og>2I-r#0{9op)sQlL@mz#h3RC*UcOMrGGRzRdvSK4lpDPvIW z?QGP?)YgA@{pw^{Q76AcSW(m*U@Di@%9^$Oin#jh!PeYQqebb4`F7G7RNi6ab>w2_ zcxON|%I@e4Udx=FH@tb+C7*PR&uX8L_68%zcYY@4iI?oTf1yMIa%EFTJuZ35*{AR1`x;0Je8-ent9-78 zwRc_I>zE_813cuDvI$06x-_Izq^LhFGu-o8t*vTl*glZwSO!CSxwSKRhP$Og1wG9z z4-C@IB3~VC*p$gQGtm~g-Lka*{d9EVo-?O3*VV1+Paf;M`s~o}b$7WwJz+D3`{NHu zB{ey7!>U_Ktz(TkD%p@Zze-mU`Vj6I(YUJdlB3z}1pKaCPNKzB=9+4iRoJM;Wc#)f z&|Tvhe6s!9p6khCnqnc9C6}HN>YDv;h?WHn_omE05OXqlHTOkekofK)Wor0<%WE+u z;gae`KCZq8@8aiOsU}J|Igj*mdh`}W9yCMPrkJ!}I%&4&Kz-y-n8^6^n1$U-#$O50 zm0;=pE&mAlnUyqMVEg))bq~8@%Ne#^6$aMk(93!^_$Aj2z6@ER-$A;^J$d-kSUY>s zZ-tBe*e#DlL?mt6Ho_~sieg75te?e;oC*#E`v^$??cJdZz26a-ZLs#E@rFT8Tk=ru zoA)^AYP9_xFh6&!-*%yltp;W`*O-lnsF7D}YXmq?_g~{OgUN!vZhbx7aiSjxtoTyJ z-Lq9IG?TF6%wbr=6$tJO{{VpNN2FiK4z18;H5UEbxY~(8OTSI&5-XXE>OXwsfAyJv_rEEU`D+J8 zOGjC<1!;jZ<|rO?Tu1?J0^RTKXUs;j%@lZTIn0RK?bZ__zBLvrYd%r>%5;WJAY0S1 z^VWuYra*DvkI?Q-UzBOW$SjWWd&$`ZT%MAUDE?m}_{ABL_osSaTLFuDlVc^j9xV1ZaT?tdWjW6IJ z);eCtlfrF6-*~8?2fYBfucL(p*<47&kGLQ6O&^YozlxBUh8!`q9kcCU5r^-@*i`Mm z)ynh>)X&&F=XE?|zbbr5(fR+I7(Lj!EVpQ;$n`kDrBl>_4B4y5zPmx83{M?hG})2sh(o5lFP%uVLy*cnGor?T99n>fe>H zuLdjB{tHxh!-bod2DdZPn-4mH5y?*Hp-KG#CQnUC`hc3I{9s~>o9{jj>7y%Hj$1kZ zg{tlWyVW5`-1XN73U?m#0WB~(8FP#pXDZKz+`V}q^a^RTik(uN-6?N z^hj=}t3*NysvCnO1}EAwhU6sL6Aj$cDtDLWd1WwkZHa+*5J1$rlv&KjFQdBH7)Ni8 zEy}T6aSlFpM5WA^pY&_A*Z6$PT|IP|E?6Mkhmd+EVN^=TC@AAWTu+b3q-L~ zC{R$6VLYP|{%&s-T*w^E7O;7SmJblyuF*7>rqfJeQN_mC z&3dOPS;_yxkwW4rqkiHn5m^yg^OS@=_||Duaoee8I^v3e(b`Uw}!RRg}g0`_1Sqjw}1@{hxc7cKcP1*}R&` zi!Spj18+`c(S|v&K5Mzx{cqeg{{8GO#L$Bu-&?)7DpM+6pqx7#y2UFn-BsXwgD1(Z z3)Vvj?jkkyDje4JSX+XrAQKnre?Q$I;6?MhmLY^sh%wu^0*O|7H8_6=I?m@)sqjYr zM}4H%W7#w2U1#Ndrpe-!x2Qz4H`rD@LZD9QdhrL(*3*w zSnW}xg@h2m`XM97@>w`;6L|ikNkKf>5WUwcYV4!e`-p1roxt%%1&$9Uc%)|fmU;~w zdKSV{R?+@oXr6(>4ce&y|~o=^PLHmAxeATGymMm*T}Yu zfFM5tRR#dWT>4c$`X_Zuf*=J1y^L)_?rXSxm>EN(!2m!D^Uv+p6r&$E*LrOwt@>t3 z|K$6e2%~+FoWIWZECdLw?~rH%awV_r6!U!Xr#8&5*U~(uq$bdT$*+HE!3IGKb`*3u z6A8sSCzBV*6?eG$z^MvD3Zoybda1Q;?FZe{Tn4!|V!&kri^?VWJ(Mp}d{6yW&O?*; zmW+?&)Je2OE&x=FBalvulkOJFoB~qaLmyMTN@3;Zh(;Jv@?gdPn;605t+p zy`A+z>BV{PTzQmysLJ#r+RgJDFBc$)k#Os_G~KPCtCCi99zbs>q5ei%K_PQjZ$cS8 zdx7vf+VT);a-A3d!G!-7ClTl(phfBVuj1WrQ4;#Ck9|OS@SHHa%~x0qYEyuG?bTS8 zYlmS*#hT-?!c3HYo9)*%k1ufQ%y<)6+nx0>8-;wfOHZ&T-C~2%53d#AfCWsS>E~W9 z2jB{wP6|WENwk1A&ECjkWv};_+T?4G6+JsH)&#KnEq)h;&$#R~<6^6Y4-(C9cP$NC zuh!p~zeh-X+Y&Gy&%4^vyH9ad0$;_yjeUqV+o$Iq*^z(sXvsTgw4;&BrnNA^D(Nc} zM>mjY;@arAdpGfGhn(+$7e54{J>HM{Q1= zxp?|*rj9S&;T`qbVEj|0^XQ3r1$=R6>}F5C0cKrz;S($U3F!RULm=&?Y%#bVVHEq!u zVBDSECpJ@rs;f#f_s8AV?)@HxgV^y!o%%0}PM#r0BzfWE%{sfEm^?ef+XlS`lTVM@ zXoS<{w;-tnPr#(76cbD3H&-cinhziW)u=3Qqx}-7Tm>8cbCT<>GFFHeO#EqE&*x$T z-{>{CBNi|BV(C6@LBT>*GpQxwB%P$AKt$9HT~l8OD{ORGPY;27HN3G``d}YYcIqT6 zlmwh^U_5pF5)nT)n#}E0xLQ_})kccW z&MIsDp)MbX%yEImi#$Fn`DIo_$^TCKql)Tb$xT@vljkZOx=4y)W1YCWPUnA{x z;}aWwp~{0B)LTT%Q*e~<&Ji=y>+TScorhgOyL;c-V6@23M{3#kQ((B?;o8F=$^u?b z7oRnmEGo8#e@t#_59e$`R?QKTHS%cJQv&kxF03Q}4iesKcG7x^JQ9mK%1Bty&usY6 zOHpDjZrW=+j)83F@iP-nJe7CZ8gjt8b?{j)a@ESs2Ny2PJtAjo1TuLrmD|F%FCQrLi|B+&2AXF%qh5) zQU|^5`nlYtA2jbAQA!SB}}zf}yo^4iWX*6rCl?k3d13IEXmsNZ|2QmkZ+_zw}_3a0=7 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-application.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-application.png new file mode 100644 index 0000000000000000000000000000000000000000..7f07af97e16ed4342836ac181d6018afa02be3c3 GIT binary patch literal 6625 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 E0X0t3Q~&?~ literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-web.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-web.png new file mode 100644 index 0000000000000000000000000000000000000000..0034aec0950a86942c8e510ae9d7b7595cbfc6a7 GIT binary patch literal 14259 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 literal 0 HcmV?d00001 From ff5d364867d7129671c811aae5858413994b4623 Mon Sep 17 00:00:00 2001 From: muhdammar <35517648+muhdammar@users.noreply.github.com> Date: Thu, 21 Jan 2021 19:29:17 +0800 Subject: [PATCH 131/309] Update Road-Map.md Typo --- docs/en/Road-Map.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Road-Map.md b/docs/en/Road-Map.md index 6f4213a6bd..0920639106 100644 --- a/docs/en/Road-Map.md +++ b/docs/en/Road-Map.md @@ -18,4 +18,4 @@ You can always check the milestone planning and the prioritized backlog issues o The backlog items are subject to change. We are adding new items and changing priorities based on the community feedbacks and goals of the project. -Vote for your favorite feature on the related GitHub issues (and write your thoughts). You can create an issue on [the GitHub repository](https://github.com/abpframework/abp) for your feature requests, but first search in in the existing issues. \ No newline at end of file +Vote for your favorite feature on the related GitHub issues (and write your thoughts). You can create an issue on [the GitHub repository](https://github.com/abpframework/abp) for your feature requests, but first search in the existing issues. From bb5c41a5836c6ec46a38c34bebc8b38cf38b4464 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 21 Jan 2021 15:04:12 +0300 Subject: [PATCH 132/309] Open the microservice document after creating the microservice-pro template --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 26 +++++++++---------- .../Microservice/MicroserviceTemplateBase.cs | 5 ++++ .../Volo/Abp/Cli/Utils/CmdHelper.cs | 17 ++++++++++++ 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 96e59152de..90f0af8b7e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -17,6 +17,7 @@ using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding.Building; using Volo.Abp.Cli.ProjectBuilding.Templates.App; using Volo.Abp.Cli.ProjectBuilding.Templates.Console; +using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; using Volo.Abp.Cli.ProjectModification; using Volo.Abp.Cli.Utils; using Volo.Abp.DependencyInjection; @@ -234,6 +235,10 @@ namespace Volo.Abp.Cli.Commands var isCommercial = template == AppProTemplate.TemplateName; OpenThanksPage(uiFramework, databaseProvider, isTiered || commandLineArgs.Options.ContainsKey("separate-identity-server"), isCommercial); } + else if (MicroserviceTemplateBase.IsMicroserviceTemplate(template)) + { + OpenMicroserviceDocumentPage(); + } } private string GetNewConnectionStringByDbms(DatabaseManagementSystem databaseManagementSystem, string outputFolder) @@ -263,19 +268,14 @@ namespace Volo.Abp.Cli.Commands var tieredYesNo = tiered ? "yes" : "no"; var url = $"https://{urlPrefix}.abp.io/project-created-success?ui={uiFramework:g}&db={databaseProvider:g}&tiered={tieredYesNo}"; - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - url = url.Replace("&", "^&"); - Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true }); - } - else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) - { - Process.Start("xdg-open", url); - } - else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) - { - Process.Start("open", url); - } + CmdHelper.OpenWebPage(url); + } + + private void OpenMicroserviceDocumentPage() + { + var url = "https://docs.abp.io/en/commercial/latest/startup-templates/microservice/index"; + + CmdHelper.OpenWebPage(url); } private bool GetCreateSolutionFolderPreference(CommandLineArgs commandLineArgs) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs index a9ffccd142..52ff3c9c91 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs @@ -12,6 +12,11 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Microservice { } + public static bool IsMicroserviceTemplate(string templateName) + { + return templateName == MicroserviceProTemplate.TemplateName; + } + public override IEnumerable GetCustomSteps(ProjectBuildContext context) { var steps = new List(); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs index 4fde5dfe80..819022e672 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs @@ -7,6 +7,23 @@ namespace Volo.Abp.Cli.Utils { public static int SuccessfulExitCode = 0; + public static void OpenWebPage(string url) + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + url = url.Replace("&", "^&"); + Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true }); + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + Process.Start("xdg-open", url); + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + Process.Start("open", url); + } + } + public static void Run(string file, string arguments) { var procStartInfo = new ProcessStartInfo(file, arguments); From ec1e7e1d2ad1fbf090c0d0a9dcc8034d63cb9ec2 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Thu, 21 Jan 2021 16:47:13 +0300 Subject: [PATCH 133/309] move ellipsis directive to the theme-shared #7374 --- .../packages/core/src/lib/core.module.ts | 4 -- .../packages/core/src/lib/directives/index.ts | 1 - .../src/lib/directives/ellipsis.directive.ts | 46 +++++++++++++++++++ .../theme-shared/src/lib/directives/index.ts | 1 + .../src/lib/tests/ellipsis.directive.spec.ts | 0 5 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts rename npm/ng-packs/packages/{core => theme-shared}/src/lib/tests/ellipsis.directive.spec.ts (100%) diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index 260cffd4d3..36d59c929b 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -11,7 +11,6 @@ import { ReplaceableRouteContainerComponent } from './components/replaceable-rou import { RouterOutletComponent } from './components/router-outlet.component'; import { AutofocusDirective } from './directives/autofocus.directive'; import { InputEventDebounceDirective } from './directives/debounce.directive'; -import { EllipsisDirective } from './directives/ellipsis.directive'; import { ForDirective } from './directives/for.directive'; import { FormSubmitDirective } from './directives/form-submit.directive'; import { InitDirective } from './directives/init.directive'; @@ -53,11 +52,9 @@ export function storageFactory(): OAuthStorage { ReactiveFormsModule, RouterModule, LocalizationModule, - AbstractNgModelComponent, AutofocusDirective, DynamicLayoutComponent, - EllipsisDirective, ForDirective, FormSubmitDirective, InitDirective, @@ -83,7 +80,6 @@ export function storageFactory(): OAuthStorage { AbstractNgModelComponent, AutofocusDirective, DynamicLayoutComponent, - EllipsisDirective, ForDirective, FormSubmitDirective, InitDirective, diff --git a/npm/ng-packs/packages/core/src/lib/directives/index.ts b/npm/ng-packs/packages/core/src/lib/directives/index.ts index a297faa14b..3322b14257 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/index.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/index.ts @@ -1,6 +1,5 @@ export * from './autofocus.directive'; export * from './debounce.directive'; -export * from './ellipsis.directive'; export * from './for.directive'; export * from './form-submit.directive'; export * from './init.directive'; diff --git a/npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts b/npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts new file mode 100644 index 0000000000..5e95c5666f --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts @@ -0,0 +1,46 @@ +import { + AfterViewInit, + ChangeDetectorRef, + Directive, + ElementRef, + HostBinding, + Input, + NgModule, +} from '@angular/core'; + +@Directive({ + selector: '[abpEllipsis]', +}) +export class EllipsisDirective implements AfterViewInit { + @Input('abpEllipsis') + width: string; + + @HostBinding('title') + @Input() + title: string; + + @Input('abpEllipsisEnabled') + enabled = true; + + @HostBinding('class.abp-ellipsis-inline') + get inlineClass() { + return this.enabled && this.width; + } + + @HostBinding('class.abp-ellipsis') + get class() { + return this.enabled && !this.width; + } + + @HostBinding('style.max-width') + get maxWidth() { + return this.enabled && this.width ? this.width || '170px' : undefined; + } + + constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {} + + ngAfterViewInit() { + this.title = this.title || (this.elRef.nativeElement as HTMLElement).innerText; + this.cdRef.detectChanges(); + } +} diff --git a/npm/ng-packs/packages/theme-shared/src/lib/directives/index.ts b/npm/ng-packs/packages/theme-shared/src/lib/directives/index.ts index a6b666be3b..64b849d4fe 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/directives/index.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/directives/index.ts @@ -2,3 +2,4 @@ export * from './loading.directive'; export * from './ngx-datatable-default.directive'; export * from './ngx-datatable-list.directive'; export * from './table-sort.directive'; +export * from './ellipsis.directive'; diff --git a/npm/ng-packs/packages/core/src/lib/tests/ellipsis.directive.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/ellipsis.directive.spec.ts similarity index 100% rename from npm/ng-packs/packages/core/src/lib/tests/ellipsis.directive.spec.ts rename to npm/ng-packs/packages/theme-shared/src/lib/tests/ellipsis.directive.spec.ts From 3464474b5183198525ac911853b567d304114532 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Thu, 21 Jan 2021 16:47:32 +0300 Subject: [PATCH 134/309] add EllipsisModule #7374 --- .../src/lib/directives/ellipsis.directive.ts | 6 ++++++ .../theme-shared/src/lib/theme-shared.module.ts | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts b/npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts index 5e95c5666f..6a2ea1ea09 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts @@ -44,3 +44,9 @@ export class EllipsisDirective implements AfterViewInit { this.cdRef.detectChanges(); } } + +@NgModule({ + exports: [EllipsisDirective], + declarations: [EllipsisDirective], +}) +export class EllipsisModule {} diff --git a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts index 8d64febdbf..8d8f08ea6b 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts @@ -25,6 +25,7 @@ import { TableComponent } from './components/table/table.component'; import { ToastContainerComponent } from './components/toast-container/toast-container.component'; import { ToastComponent } from './components/toast/toast.component'; import { DEFAULT_VALIDATION_BLUEPRINTS } from './constants/validation'; +import { EllipsisModule } from './directives/ellipsis.directive'; import { LoadingDirective } from './directives/loading.directive'; import { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default.directive'; import { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive'; @@ -57,9 +58,15 @@ const declarationsWithExports = [ ]; @NgModule({ - imports: [CoreModule, NgxDatatableModule, NgxValidateCoreModule, NgbPaginationModule], + imports: [ + CoreModule, + NgxDatatableModule, + NgxValidateCoreModule, + NgbPaginationModule, + EllipsisModule, + ], declarations: [...declarationsWithExports, HttpErrorWrapperComponent, ModalContainerComponent], - exports: [NgxDatatableModule, ...declarationsWithExports], + exports: [NgxDatatableModule, EllipsisModule, ...declarationsWithExports], providers: [DatePipe], entryComponents: [ HttpErrorWrapperComponent, From 566b1afdd5c6d45645329ac70a5f475c41258882 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Thu, 21 Jan 2021 16:56:50 +0300 Subject: [PATCH 135/309] add EllipsisDirective document resolves #3188 --- docs/en/UI/Angular/Ellipsis-Directive.md | 83 ++++++++++++++++++ .../images/ellipsis-directive-before.jpg | Bin 0 -> 41116 bytes .../images/ellipsis-directive-result1.jpg | Bin 0 -> 22626 bytes .../images/ellipsis-directive-result2.jpg | Bin 0 -> 13906 bytes docs/en/docs-nav.json | 4 + 5 files changed, 87 insertions(+) create mode 100644 docs/en/UI/Angular/Ellipsis-Directive.md create mode 100644 docs/en/UI/Angular/images/ellipsis-directive-before.jpg create mode 100644 docs/en/UI/Angular/images/ellipsis-directive-result1.jpg create mode 100644 docs/en/UI/Angular/images/ellipsis-directive-result2.jpg diff --git a/docs/en/UI/Angular/Ellipsis-Directive.md b/docs/en/UI/Angular/Ellipsis-Directive.md new file mode 100644 index 0000000000..29335969c1 --- /dev/null +++ b/docs/en/UI/Angular/Ellipsis-Directive.md @@ -0,0 +1,83 @@ +# Ellipsis + +Text inside an HTML element can be truncated easily with an ellipsis by using CSS. To make this even easier, you can use the `EllipsisDirective` which has been exposed from the `@abp/ng.theme.shared` package. + + +## Getting Started + +In order to use the `EllipsisDirective` in an HTML template, the **`ThemeSharedModule`** should be imported into your module like this: + +```js +// ... +import { ThemeSharedModule } from '@abp/ng.theme.shared'; + +@NgModule({ + //... + imports: [..., ThemeSharedModule], +}) +export class MyFeatureModule {} +``` + +or **if you would not like to import** the `ThemeSharedModule`, you can import the **`EllipsisModule`** as shown below: + + +```js +// ... +import { EllipsisModule } from '@abp/ng.theme.shared'; + +@NgModule({ + //... + imports: [..., EllipsisModule], +}) +export class MyFeatureModule {} +``` + +## Usage + +The `EllipsisDirective` is very easy to use. The directive's selector is **`abpEllipsis`**. By adding the `abpEllipsis` attribute to an HTML element, you can activate the `EllipsisDirective` for the HTML element. + +See an example usage: + +```html +

    + Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam commodi quae aspernatur, + corporis velit et suscipit id consequuntur amet minima expedita cum reiciendis dolorum + cupiditate? Voluptas eaque voluptatum odio deleniti quo vel illum nemo accusamus nulla ratione + impedit dolorum expedita necessitatibus fugiat ullam beatae, optio eum cupiditate ducimus + architecto. +

    +``` + +The `abpEllipsis` attribute has been added to the `

    ` element that containing very long text inside to activate the `EllipsisDirective`. + +See the result: + +![Ellipsis directive result](./images/ellipsis-directive-result1.jpg) + +The long text has been truncated by using the directive. + +The UI before using the directive looks like this: + +![Before using the EllipsisDirective](./images/ellipsis-directive-before.jpg) + +### Specifying Max Width of an HTML Element + +An HTML element max width can be specified as shown below: + +```html +

    + Lorem ipsum dolor sit amet consectetur adipisicing elit. Cumque, optio! +
    + +
    + Lorem ipsum dolor sit amet consectetur adipisicing elit. Cumque, optio! +
    + +
    + Lorem ipsum dolor sit amet consectetur adipisicing elit. Cumque, optio! +
    +``` + +See the result: + +![Ellipsis directive result 2](./images/ellipsis-directive-result2.jpg) \ No newline at end of file diff --git a/docs/en/UI/Angular/images/ellipsis-directive-before.jpg b/docs/en/UI/Angular/images/ellipsis-directive-before.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc534d9a976622178a1bfdab13e6635714d567dd GIT binary patch literal 41116 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≶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 literal 0 HcmV?d00001 diff --git a/docs/en/UI/Angular/images/ellipsis-directive-result1.jpg b/docs/en/UI/Angular/images/ellipsis-directive-result1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe693f4c8c63edf60807198dd9cc20d35f1c62f7 GIT binary patch literal 22626 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 NAN^M;V7NQ_{{UZA4!{5a literal 0 HcmV?d00001 diff --git a/docs/en/UI/Angular/images/ellipsis-directive-result2.jpg b/docs/en/UI/Angular/images/ellipsis-directive-result2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3a416bbc05bc1362f0441c6da77f042ab5f26cc5 GIT binary patch literal 13906 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 3fff6d67c1..3337521b89 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -830,6 +830,10 @@ { "text": "Page Alerts", "path": "UI/Angular/Page-Alerts.md" + }, + { + "text": "Ellipsis", + "path": "UI/Angular/Ellipsis-Directive.md" } ] }, From a861f91c3819bc3d7a05b35db2d85657fc93bae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 21 Jan 2021 17:45:28 +0300 Subject: [PATCH 136/309] Update Entity-Framework-Core.md --- docs/en/Entity-Framework-Core.md | 91 +++++++++++++++++--------------- 1 file changed, 47 insertions(+), 44 deletions(-) diff --git a/docs/en/Entity-Framework-Core.md b/docs/en/Entity-Framework-Core.md index b2b216397a..d1cc5e1a6f 100644 --- a/docs/en/Entity-Framework-Core.md +++ b/docs/en/Entity-Framework-Core.md @@ -344,7 +344,7 @@ You have different options when you want to load the related entities while quer #### Repository.WithDetails -`IRepository.WithDetails(...)` can be used to include one relation collection/property to the query. +`IRepository.WithDetailsAsync(...)` can be used to get an `IQueryable` by including one relation collection/property. **Example: Get an order with lines** @@ -355,7 +355,7 @@ using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Services; -namespace MyCrm +namespace AbpDemo.Orders { public class OrderManager : DomainService { @@ -368,35 +368,39 @@ namespace MyCrm public async Task TestWithDetails(Guid id) { - var query = _orderRepository - .WithDetails(x => x.Lines) - .Where(x => x.Id == id); - + //Get a IQueryable by including sub collections + var queryable = await _orderRepository.WithDetailsAsync(x => x.Lines); + + //Apply additional LINQ extension methods + var query = queryable.Where(x => x.Id == id); + + //Execute the query and get the result var order = await AsyncExecuter.FirstOrDefaultAsync(query); } } } ```` -> `AsyncExecuter` is used to execute async LINQ extensions without depending on the EF Core. If you add EF Core NuGet package reference to your project, then you can directly use `await _orderRepository.WithDetails(x => x.Lines).FirstOrDefaultAsync()`. But, this time you depend on the EF Core in your domain layer. See the [repository document](Repositories.md) to learn more. +> `AsyncExecuter` is used to execute async LINQ extensions without depending on the EF Core. If you add EF Core NuGet package reference to your project, then you can directly use `await query.FirstOrDefaultAsync()`. But, this time you depend on the EF Core in your domain layer. See the [repository document](Repositories.md) to learn more. **Example: Get a list of orders with their lines** ````csharp public async Task TestWithDetails() { - var query = _orderRepository - .WithDetails(x => x.Lines); + //Get a IQueryable by including sub collections + var queryable = await _orderRepository.WithDetailsAsync(x => x.Lines); - var orders = await AsyncExecuter.ToListAsync(query); + //Execute the query and get the result + var orders = await AsyncExecuter.ToListAsync(queryable); } ```` -> `WithDetails` method can get more than one expression parameter if you need to include more than one navigation property or collection. +> `WithDetailsAsync` method can get more than one expression parameter if you need to include more than one navigation property or collection. #### DefaultWithDetailsFunc -If you don't pass any expression to the `WithDetails` method, then it includes all the details using the `DefaultWithDetailsFunc` option you provide. +If you don't pass any expression to the `WithDetailsAsync` method, then it includes all the details using the `DefaultWithDetailsFunc` option you provide. You can configure `DefaultWithDetailsFunc` for an entity in the `ConfigureServices` method of your [module](Module-Development-Basics.md) in your `EntityFrameworkCore` project. @@ -419,12 +423,15 @@ Then you can use the `WithDetails` without any parameter: ````csharp public async Task TestWithDetails() { - var query = _orderRepository.WithDetails(); - var orders = await AsyncExecuter.ToListAsync(query); + //Get a IQueryable by including all sub collections + var queryable = await _orderRepository.WithDetailsAsync(); + + //Execute the query and get the result + var orders = await AsyncExecuter.ToListAsync(queryable); } ```` -`WithDetails()` executes the expression you've setup as the `DefaultWithDetailsFunc`. +`WithDetailsAsync()` executes the expression you've setup as the `DefaultWithDetailsFunc`. #### Repository Get/Find Methods @@ -466,7 +473,7 @@ public async Task TestWithDetails() #### Alternatives -The repository patters tries to encapsulate the EF Core, so your options are limited. If you need an advanced scenario, you can follow one of the options; +The repository pattern tries to encapsulate the EF Core, so your options are limited. If you need an advanced scenario, you can follow one of the options; * Create a custom repository method and use the complete EF Core API. * Reference to the `Volo.Abp.EntityFrameworkCore` package from your project. In this way, you can directly use `Include` and `ThenInclude` in your code. @@ -550,24 +557,15 @@ See also [lazy loading document](https://docs.microsoft.com/en-us/ef/core/queryi In most cases, you want to hide EF Core APIs behind a repository (this is the main purpose of the repository pattern). However, if you want to access the `DbContext` instance over the repository, you can use `GetDbContext()` or `GetDbSet()` extension methods. Example: ````csharp -public class BookService +public async Task TestAsync() { - private readonly IRepository _bookRepository; - - public BookService(IRepository bookRepository) - { - _bookRepository = bookRepository; - } - - public void Foo() - { - DbContext dbContext = _bookRepository.GetDbContext(); - DbSet books = _bookRepository.GetDbSet(); - } + var dbContext = await _orderRepository.GetDbContextAsync(); + var dbSet = await _orderRepository.GetDbSetAsync(); + //var dbSet = dbContext.Set(); //Alternative, when you have the DbContext } ```` -* `GetDbContext` returns a `DbContext` reference instead of `BookStoreDbContext`. You can cast it, however in most cases you don't need it. +* `GetDbContextAsync` returns a `DbContext` reference instead of `BookStoreDbContext`. You can cast it if you need. However, you don't need it in most cases. > Important: You must reference to the `Volo.Abp.EntityFrameworkCore` package from the project you want to access to the `DbContext`. This breaks encapsulation, but this is what you want in that case. @@ -742,32 +740,36 @@ If you have better logic or using an external library for bulk operations, you c - You may use example template below: ```csharp -public class MyCustomEfCoreBulkOperationProvider : IEfCoreBulkOperationProvider, ITransientDependency -{ - public async Task DeleteManyAsync(IEfCoreRepository repository, - IEnumerable entities, - bool autoSave, - CancellationToken cancellationToken) +public class MyCustomEfCoreBulkOperationProvider + : IEfCoreBulkOperationProvider, ITransientDependency +{ + public async Task DeleteManyAsync( + IEfCoreRepository repository, + IEnumerable entities, + bool autoSave, + CancellationToken cancellationToken) where TDbContext : IEfCoreDbContext where TEntity : class, IEntity { // Your logic here. } - public async Task InsertManyAsync(IEfCoreRepository repository, - IEnumerable entities, - bool autoSave, - CancellationToken cancellationToken) + public async Task InsertManyAsync( + IEfCoreRepository repository, + IEnumerable entities, + bool autoSave, + CancellationToken cancellationToken) where TDbContext : IEfCoreDbContext where TEntity : class, IEntity { // Your logic here. } - public async Task UpdateManyAsync(IEfCoreRepository repository, - IEnumerable entities, - bool autoSave, - CancellationToken cancellationToken) + public async Task UpdateManyAsync( + IEfCoreRepository repository, + IEnumerable entities, + bool autoSave, + CancellationToken cancellationToken) where TDbContext : IEfCoreDbContext where TEntity : class, IEntity { @@ -779,3 +781,4 @@ public class MyCustomEfCoreBulkOperationProvider : IEfCoreBulkOperationProvider, ## See Also * [Entities](Entities.md) +* [Repositories](Repositories.md) From 8cba3d8300d2279ed4072992457d742621a3137e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 21 Jan 2021 18:00:01 +0300 Subject: [PATCH 137/309] Update MongoDB document fow usage of async queryable. --- docs/en/Entity-Framework-Core.md | 3 +- docs/en/MongoDB.md | 56 +++++++++++++++++++------------- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/docs/en/Entity-Framework-Core.md b/docs/en/Entity-Framework-Core.md index d1cc5e1a6f..a2c0e79996 100644 --- a/docs/en/Entity-Framework-Core.md +++ b/docs/en/Entity-Framework-Core.md @@ -236,7 +236,8 @@ public class BookRepository public async Task DeleteBooksByType(BookType type) { - await DbContext.Database.ExecuteSqlRawAsync( + var dbContext = await GetDbContextAsync(); + await dbContext.Database.ExecuteSqlRawAsync( $"DELETE FROM Books WHERE Type = {(int)type}" ); } diff --git a/docs/en/MongoDB.md b/docs/en/MongoDB.md index 7fae9c3892..60b6a94823 100644 --- a/docs/en/MongoDB.md +++ b/docs/en/MongoDB.md @@ -149,7 +149,7 @@ public class Book : AggregateRoot } ``` -(`BookType` is a simple enum here) And you want to create a new `Book` entity in a [domain service](Domain-Services.md): +(`BookType` is a simple `enum` here) And you want to create a new `Book` entity in a [domain service](Domain-Services.md): ```csharp public class BookManager : DomainService @@ -215,7 +215,8 @@ public class BookRepository : BookType type, CancellationToken cancellationToken = default(CancellationToken)) { - await Collection.DeleteManyAsync( + var collection = await GetCollectionAsync(cancellationToken); + await collection.DeleteManyAsync( Builders.Filter.Eq(b => b.Type, type), cancellationToken ); @@ -253,7 +254,7 @@ public async override Task DeleteAsync( ### Access to the MongoDB API -In most cases, you want to hide MongoDB APIs behind a repository (this is the main purpose of the repository). However, if you want to access the MongoDB API over the repository, you can use `GetDatabase()` or `GetCollection()` extension methods. Example: +In most cases, you want to hide MongoDB APIs behind a repository (this is the main purpose of the repository). However, if you want to access the MongoDB API over the repository, you can use `GetDatabaseAsync()` or `GetCollectionAsync()` extension methods. Example: ```csharp public class BookService @@ -265,10 +266,10 @@ public class BookService _bookRepository = bookRepository; } - public void Foo() + public async Task FooAsync() { - IMongoDatabase database = _bookRepository.GetDatabase(); - IMongoCollection books = _bookRepository.GetCollection(); + IMongoDatabase database = await _bookRepository.GetDatabaseAsync(); + IMongoCollection books = await _bookRepository.GetCollectionAsync(); } } ``` @@ -390,36 +391,45 @@ If you have better logic or using an external library for bulk operations, you c - You may use example template below: ```csharp -public class MyCustomMongoDbBulkOperationProvider : IMongoDbBulkOperationProvider, ITransientDependency +public class MyCustomMongoDbBulkOperationProvider + : IMongoDbBulkOperationProvider, ITransientDependency { - public async Task DeleteManyAsync(IMongoDbRepository repository, - IEnumerable entities, - IClientSessionHandle sessionHandle, - bool autoSave, - CancellationToken cancellationToken) + public async Task DeleteManyAsync( + IMongoDbRepository repository, + IEnumerable entities, + IClientSessionHandle sessionHandle, + bool autoSave, + CancellationToken cancellationToken) where TEntity : class, IEntity { // Your logic here. } - public async Task InsertManyAsync(IMongoDbRepository repository, - IEnumerable entities, - IClientSessionHandle sessionHandle, - bool autoSave, - CancellationToken cancellationToken) + public async Task InsertManyAsync( + IMongoDbRepository repository, + IEnumerable entities, + IClientSessionHandle sessionHandle, + bool autoSave, + CancellationToken cancellationToken) where TEntity : class, IEntity { // Your logic here. } - public async Task UpdateManyAsync(IMongoDbRepository repository, - IEnumerable entities, - IClientSessionHandle sessionHandle, - bool autoSave, - CancellationToken cancellationToken) + public async Task UpdateManyAsync( + IMongoDbRepository repository, + IEnumerable entities, + IClientSessionHandle sessionHandle, + bool autoSave, + CancellationToken cancellationToken) where TEntity : class, IEntity { // Your logic here. } } -``` \ No newline at end of file +``` + +## See Also + +* [Entities](Entities.md) +* [Repositories](Repositories.md) \ No newline at end of file From a9aef8cc65f1dd4848f9799eead7730e83a0089f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 21 Jan 2021 18:06:21 +0300 Subject: [PATCH 138/309] Update best practice db operation documents for async queryable. --- .../Entity-Framework-Core-Integration.md | 9 +++++---- docs/en/Best-Practices/MongoDB-Integration.md | 6 +++--- docs/en/Best-Practices/Repositories.md | 18 ------------------ 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/docs/en/Best-Practices/Entity-Framework-Core-Integration.md b/docs/en/Best-Practices/Entity-Framework-Core-Integration.md index f487f9d61d..04ddeaeba4 100644 --- a/docs/en/Best-Practices/Entity-Framework-Core-Integration.md +++ b/docs/en/Best-Practices/Entity-Framework-Core-Integration.md @@ -144,7 +144,7 @@ public virtual async Task FindByNormalizedUserNameAsync( bool includeDetails = true, CancellationToken cancellationToken = default) { - return await DbSet + return await (await GetDbSetAsync()) .IncludeDetails(includeDetails) .FirstOrDefaultAsync( u => u.NormalizedUserName == normalizedUserName, @@ -175,14 +175,15 @@ public static IQueryable IncludeDetails( } ```` -* **Do** use the `IncludeDetails` extension method in the repository methods just like used in the example code above (see FindByNormalizedUserNameAsync). +* **Do** use the `IncludeDetails` extension method in the repository methods just like used in the example code above (see `FindByNormalizedUserNameAsync`). - **Do** override `WithDetails` method of the repository for aggregates root which have **sub collections**. Example: ````C# -public override IQueryable WithDetails() +public override async Task> WithDetailsAsync() { - return GetQueryable().IncludeDetails(); // Uses the extension method defined above + // Uses the extension method defined above + return (await GetQueryableAsync()).IncludeDetails(); } ```` diff --git a/docs/en/Best-Practices/MongoDB-Integration.md b/docs/en/Best-Practices/MongoDB-Integration.md index 74a0e429f1..90f7871a70 100644 --- a/docs/en/Best-Practices/MongoDB-Integration.md +++ b/docs/en/Best-Practices/MongoDB-Integration.md @@ -128,7 +128,7 @@ public async Task FindByNormalizedUserNameAsync( bool includeDetails = true, CancellationToken cancellationToken = default) { - return await GetMongoQueryable() + return await (await GetMongoQueryableAsync()) .FirstOrDefaultAsync( u => u.NormalizedUserName == normalizedUserName, GetCancellationToken(cancellationToken) @@ -139,8 +139,8 @@ public async Task FindByNormalizedUserNameAsync( `GetCancellationToken` fallbacks to the `ICancellationTokenProvider.Token` to obtain the cancellation token if it is not provided by the caller code. * **Do** ignore the `includeDetails` parameters for the repository implementation since MongoDB loads the aggregate root as a whole (including sub collections) by default. -* **Do** use the `GetMongoQueryable()` method to obtain an `IQueryable` to perform queries wherever possible. Because; - * `GetMongoQueryable()` method automatically uses the `ApplyDataFilters` method to filter the data based on the current data filters (like soft delete and multi-tenancy). +* **Do** use the `GetMongoQueryableAsync()` method to obtain an `IQueryable` to perform queries wherever possible. Because; + * `GetMongoQueryableAsync()` method automatically uses the `ApplyDataFilters` method to filter the data based on the current data filters (like soft delete and multi-tenancy). * Using `IQueryable` makes the code as much as similar to the EF Core repository implementation and easy to write and read. * **Do** implement data filtering if it is not possible to use the `GetMongoQueryable()` method. diff --git a/docs/en/Best-Practices/Repositories.md b/docs/en/Best-Practices/Repositories.md index c0058df433..4f646a7d94 100644 --- a/docs/en/Best-Practices/Repositories.md +++ b/docs/en/Best-Practices/Repositories.md @@ -42,24 +42,6 @@ Task FindByNormalizedUserNameAsync( ); ```` -* **Do** create a **synchronous extension** method for each asynchronous repository method. Example: - -````C# -public static class IdentityUserRepositoryExtensions -{ - public static IdentityUser FindByNormalizedUserName( - this IIdentityUserRepository repository, - [NotNull] string normalizedUserName) - { - return AsyncHelper.RunSync( - () => repository.FindByNormalizedUserNameAsync(normalizedUserName) - ); - } -} -```` - -This will allow synchronous code to use the repository methods easier. - * **Do** add an optional `bool includeDetails = true` parameter (default value is `true`) for every repository method which returns a **single entity**. Example: ````C# From fa1457a793b05677ff6f6855de80c331295f0830 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Thu, 21 Jan 2021 18:47:10 +0300 Subject: [PATCH 139/309] refactor RemoveWarningsFromVersionShowOutput --- .../ProjectModification/NpmPackagesUpdater.cs | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index 7694e9acfb..8fc800c146 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -347,33 +347,16 @@ namespace Volo.Abp.Cli.ProjectModification { var output = CmdHelper.RunCmdAndGetOutput($"npm show {package.Name} versions --json"); - var versionListAsJson = RemoveWarningsFromVersionShowOutput(output); + var versionListAsJson = ExtractVersions(output); return JsonConvert.DeserializeObject(versionListAsJson) .OrderByDescending(SemanticVersion.Parse, new VersionComparer()).ToList(); } - protected virtual string RemoveWarningsFromVersionShowOutput(string output) + protected virtual string ExtractVersions(string output) { - var lines = output.Replace(Environment.NewLine, "\n").Replace("\n", Environment.NewLine).SplitToLines(); - var resultLines = new List(); - - var warningSectionEnded = false; - - foreach (var line in lines) - { - if (line.TrimEnd() == "[") - { - warningSectionEnded = true; - } - - if (warningSectionEnded) - { - resultLines.Add(line); - } - } - - return string.Join(Environment.NewLine, resultLines); + var arrayStart = output.IndexOf('['); + return output.Substring(arrayStart, output.IndexOf(']') - arrayStart + 1); } protected virtual bool SpecifiedVersionExists(string version, JProperty package) From de0836b612f3f57599637b4ed0fd1c2dfd7669bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 21 Jan 2021 18:50:59 +0300 Subject: [PATCH 140/309] Update the tutorial for async queryable change. --- docs/en/Tutorials/Part-10.md | 27 +++++++++++++++++---------- docs/en/Tutorials/Part-7.md | 13 ++++++++----- docs/en/Tutorials/Part-8.md | 13 ++++++------- 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/docs/en/Tutorials/Part-10.md b/docs/en/Tutorials/Part-10.md index a9de3a062e..84cce260c8 100644 --- a/docs/en/Tutorials/Part-10.md +++ b/docs/en/Tutorials/Part-10.md @@ -364,10 +364,11 @@ namespace Acme.BookStore.Books public override async Task GetAsync(Guid id) { - await CheckGetPolicyAsync(); + //Get the IQueryable from the repository + var queryable = await Repository.GetQueryableAsync(); //Prepare a query to join books and authors - var query = from book in Repository + var query = from book in queryable join author in _authorRepository on book.AuthorId equals author.Id where book.Id == id select new { book, author }; @@ -384,17 +385,18 @@ namespace Acme.BookStore.Books return bookDto; } - public override async Task> GetListAsync( - PagedAndSortedResultRequestDto input) + public override async Task> GetListAsync(PagedAndSortedResultRequestDto input) { - await CheckGetListPolicyAsync(); + //Get the IQueryable from the repository + var queryable = await Repository.GetQueryableAsync(); //Prepare a query to join books and authors - var query = from book in Repository + var query = from book in queryable join author in _authorRepository on book.AuthorId equals author.Id - orderby input.Sorting + orderby input.Sorting //TODO: Can not sort like that! select new {book, author}; + //Paging query = query .Skip(input.SkipCount) .Take(input.MaxResultCount); @@ -437,7 +439,7 @@ Let's see the changes we've done: * Injected `IAuthorRepository` to query from the authors. * Overrode the `GetAsync` method of the base `CrudAppService`, which returns a single `BookDto` object with the given `id`. * Used a simple LINQ expression to join books and authors and query them together for the given book id. - * Used `AsyncExecuter.FirstOrDefaultAsync(...)` to execute the query and get a result. `AsyncExecuter` was previously used in the `AuthorAppService`. Check the [repository documentation](../Repositories.md) to understand why we've used it. + * Used `AsyncExecuter.FirstOrDefaultAsync(...)` to execute the query and get a result. It is a way to use asynchronous LINQ extensions without depending on the database provider API. Check the [repository documentation](../Repositories.md) to understand why we've used it. * Throws an `EntityNotFoundException` which results an `HTTP 404` (not found) result if requested book was not present in the database. * Finally, created a `BookDto` object using the `ObjectMapper`, then assigning the `AuthorName` manually. * Overrode the `GetListAsync` method of the base `CrudAppService`, which returns a list of books. The logic is similar to the previous method, so you can easily understand the code. @@ -508,10 +510,13 @@ namespace Acme.BookStore.Books { input.Sorting = nameof(Book.Name); } + + //Get the IQueryable from the repository + var queryable = await Repository.GetQueryableAsync(); //Get the books var books = await AsyncExecuter.ToListAsync( - Repository + queryable .OrderBy(input.Sorting) .Skip(input.SkipCount) .Take(input.MaxResultCount) @@ -553,8 +558,10 @@ namespace Acme.BookStore.Books .Distinct() .ToArray(); + var queryable = await _authorRepository.GetQueryableAsync(); + var authors = await AsyncExecuter.ToListAsync( - _authorRepository.Where(a => authorIds.Contains(a.Id)) + queryable.Where(a => authorIds.Contains(a.Id)) ); return authors.ToDictionary(x => x.Id, x => x); diff --git a/docs/en/Tutorials/Part-7.md b/docs/en/Tutorials/Part-7.md index 97d28691ae..ec3ad9a8e0 100644 --- a/docs/en/Tutorials/Part-7.md +++ b/docs/en/Tutorials/Part-7.md @@ -127,7 +127,8 @@ namespace Acme.BookStore.Authors public async Task FindByNameAsync(string name) { - return await DbSet.FirstOrDefaultAsync(author => author.Name == name); + var dbSet = await GetDbSetAsync(); + return await dbSet.FirstOrDefaultAsync(author => author.Name == name); } public async Task> GetListAsync( @@ -136,7 +137,8 @@ namespace Acme.BookStore.Authors string sorting, string filter = null) { - return await DbSet + var dbSet = await GetDbSetAsync(); + return await dbSet .WhereIf( !filter.IsNullOrWhiteSpace(), author => author.Name.Contains(filter) @@ -186,8 +188,8 @@ namespace Acme.BookStore.Authors public async Task FindByNameAsync(string name) { - return await GetMongoQueryable() - .FirstOrDefaultAsync(author => author.Name == name); + var queryable = await GetMongoQueryableAsync(); + return await queryable.FirstOrDefaultAsync(author => author.Name == name); } public async Task> GetListAsync( @@ -196,7 +198,8 @@ namespace Acme.BookStore.Authors string sorting, string filter = null) { - return await GetMongoQueryable() + var queryable = await GetMongoQueryableAsync(); + return await queryable .WhereIf>( !filter.IsNullOrWhiteSpace(), author => author.Name.Contains(filter) diff --git a/docs/en/Tutorials/Part-8.md b/docs/en/Tutorials/Part-8.md index b7c805c17e..6ab14c714c 100644 --- a/docs/en/Tutorials/Part-8.md +++ b/docs/en/Tutorials/Part-8.md @@ -172,6 +172,7 @@ using System.Threading.Tasks; using Acme.BookStore.Permissions; using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; +using Volo.Abp.Domain.Repositories; namespace Acme.BookStore.Authors { @@ -230,12 +231,10 @@ public async Task> GetListAsync(GetAuthorListDto input input.Filter ); - var totalCount = await AsyncExecuter.CountAsync( - _authorRepository.WhereIf( - !input.Filter.IsNullOrWhiteSpace(), - author => author.Name.Contains(input.Filter) - ) - ); + var totalCount = input.Filter == null + ? await _authorRepository.CountAsync() + : await _authorRepository.CountAsync( + author => author.Name.Contains(input.Filter)); return new PagedResultDto( totalCount, @@ -246,7 +245,7 @@ public async Task> GetListAsync(GetAuthorListDto input * Default sorting is "by author name" which is done in the beginning of the method in case of it wasn't sent by the client. * Used the `IAuthorRepository.GetListAsync` to get a paged, sorted and filtered list of authors from the database. We had implemented it in the previous part of this tutorial. Again, it actually was not needed to create such a method since we could directly query over the repository, but wanted to demonstrate how to create custom repository methods. -* Directly queried from the `AuthorRepository` while getting the count of the authors. We preferred to use the `AsyncExecuter` service which allows us to perform async queries without depending on the EF Core. However, you could depend on the EF Core package and directly use the `_authorRepository.WhereIf(...).ToListAsync()` method. See the [repository document](../Repositories.md) to read the alternative approaches and the discussion. +* Directly queried from the `AuthorRepository` while getting the count of the authors. If a filter is sent, then we are using it to filter entities while getting the count. * Finally, returning a paged result by mapping the list of `Author`s to a list of `AuthorDto`s. ### CreateAsync From c96d364c39c3b701067eee399f2679af775e5822 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 21 Jan 2021 18:56:04 +0300 Subject: [PATCH 141/309] CmsKit - Content Get-Set endpoints --- .../Admin/Contents/ContentSetByEntityInput.cs | 7 +++ .../Admin/Contents/IContentAdminAppService.cs | 4 ++ .../Admin/Contents/ContentAdminAppService.cs | 45 ++++++++++++++++++- .../Admin/Contents/ContentAdminController.cs | 16 +++++++ 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs new file mode 100644 index 0000000000..744f708e45 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs @@ -0,0 +1,7 @@ +namespace Volo.CmsKit.Admin.Contents +{ + public class ContentSetByEntityInput + { + public string Value { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs index e910d42c2f..381498cbb1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Volo.Abp.Application.Services; using Volo.CmsKit.Admin.Contents; @@ -13,5 +14,8 @@ namespace Volo.CmsKit.Admin.Contents ContentCreateDto, ContentUpdateDto> { + Task GetByEntityAsync(string entityType, string entityId); + + Task SetByEntityAsync(string entityType, string entityId, ContentSetByEntityInput input); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs index 5c058b5fe8..8c5b161540 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs @@ -1,6 +1,8 @@ -using Microsoft.AspNetCore.Authorization; +using JetBrains.Annotations; +using Microsoft.AspNetCore.Authorization; using System; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; using Volo.CmsKit.Contents; @@ -31,13 +33,13 @@ namespace Volo.CmsKit.Admin.Contents IContentRepository contentRepository) : base(repository) { ContentManager = contentManager; + ContentRepository = contentRepository; GetListPolicyName = CmsKitAdminPermissions.Contents.Default; GetPolicyName = CmsKitAdminPermissions.Contents.Default; CreatePolicyName = CmsKitAdminPermissions.Contents.Create; UpdatePolicyName = CmsKitAdminPermissions.Contents.Update; DeletePolicyName = CmsKitAdminPermissions.Contents.Delete; - ContentRepository = contentRepository; } [Authorize(CmsKitAdminPermissions.Contents.Create)] @@ -54,5 +56,44 @@ namespace Volo.CmsKit.Admin.Contents return MapToGetOutputDto(entity); } + + public async Task GetByEntityAsync( + [NotNull] string entityType, + [NotNull] string entityId) + { + Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); + Check.NotNullOrWhiteSpace(entityId, nameof(entityId)); + + var content = await ContentRepository.GetAsync(entityType, entityId, CurrentTenant?.Id); + + return ObjectMapper.Map(content); + } + + public async Task SetByEntityAsync( + [NotNull] string entityType, + [NotNull] string entityId, + ContentSetByEntityInput input) + { + Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); + Check.NotNullOrWhiteSpace(entityId, nameof(entityId)); + + var updated = await ContentRepository.FindAsync(entityType, entityId); + + if (updated == null) + { + await ContentRepository.InsertAsync( + new Content( + GuidGenerator.Create(), + entityType, + entityId, + input.Value, + CurrentTenant?.Id)); + } + else + { + updated.SetValue(input.Value); + await ContentRepository.UpdateAsync(updated); + } + } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs index f519109022..0679391a4f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs @@ -59,5 +59,21 @@ namespace Volo.CmsKit.Admin.Contents { return ContentAdminAppService.UpdateAsync(id, input); } + + [HttpGet] + [Route("{entityType}/{entityId}")] + [Authorize(CmsKitAdminPermissions.Contents.Default)] + public Task GetByEntityAsync(string entityType, string entityId) + { + return ContentAdminAppService.GetByEntityAsync(entityType, entityId); + } + + [HttpPost] + [Route("{entityType}/{entityId}")] + [Authorize(CmsKitAdminPermissions.Contents.Update)] + public Task SetByEntityAsync(string entityType, string entityId, ContentSetByEntityInput input) + { + return ContentAdminAppService.SetByEntityAsync(entityType, entityId, input); + } } } From 7f8e0aa6bfb34ef214630f749162a29f127f8f0c Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Thu, 21 Jan 2021 19:40:15 +0300 Subject: [PATCH 142/309] resolves volosoft/volo#4907 --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs | 3 ++- framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliPaths.cs | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs index 9125a0c8ab..f3cb291f56 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs @@ -22,7 +22,7 @@ namespace Volo.Abp.Cli.Auth { var configuration = new IdentityClientConfiguration( CliUrls.AccountAbpIo, - "role email abpio abpio_www abpio_commercial offline_access", + "role email abpio abpio_www abpio_commercial offline_access", "abp-cli", "1q2w3e*", OidcConstants.GrantTypes.Password, @@ -43,6 +43,7 @@ namespace Volo.Abp.Cli.Auth public Task LogoutAsync() { FileHelper.DeleteIfExists(CliPaths.AccessToken); + FileHelper.DeleteIfExists(CliPaths.Lic); return Task.CompletedTask; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliPaths.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliPaths.cs index 2b422446ca..068911ac8c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliPaths.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliPaths.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Text; namespace Volo.Abp.Cli { @@ -10,7 +11,8 @@ namespace Volo.Abp.Cli public static string Root => Path.Combine(AbpRootPath, "cli"); public static string AccessToken => Path.Combine(AbpRootPath, "cli", "access-token.bin"); public static string Build => Path.Combine(AbpRootPath, "build"); - + public static string Lic => Path.Combine(Path.GetTempPath(), Encoding.ASCII.GetString(new byte[] { 65, 98, 112, 76, 105, 99, 101, 110, 115, 101, 46, 98, 105, 110 })); + private static readonly string AbpRootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".abp"); } -} +} From d24510aae03b94c22619834978a75231a4d22bc5 Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Thu, 21 Jan 2021 20:04:30 +0300 Subject: [PATCH 143/309] Update POST.md --- .../POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md index f1e5dd3834..245a553e72 100644 --- a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md +++ b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md @@ -76,7 +76,7 @@ The packages we have installed; As the last step of the setup, we should add the required style files for the library to `angular.json`: -```json +```js //angular.json "projects": { From 06284c44f8a7d4e770b2a807fc5049712fe5ea0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 21 Jan 2021 22:03:39 +0300 Subject: [PATCH 144/309] Update docs for async queryable usage. --- docs/en/Application-Services.md | 9 ++++--- docs/en/AspNet-Boilerplate-Migration-Guide.md | 7 +++--- ...main-Driven-Design-Implementation-Guide.md | 12 ++++++---- docs/en/Repositories.md | 24 ++++++++++++------- docs/en/Specifications.md | 6 +++-- 5 files changed, 38 insertions(+), 20 deletions(-) diff --git a/docs/en/Application-Services.md b/docs/en/Application-Services.md index 7fe9825f2a..5d779ec8c9 100644 --- a/docs/en/Application-Services.md +++ b/docs/en/Application-Services.md @@ -43,12 +43,14 @@ public class Book : AggregateRoot { if (string.IsNullOrWhiteSpace(name)) { - throw new ArgumentException($"name can not be empty or white space!"); + throw new ArgumentException( + $"name can not be empty or white space!"); } if (name.Length > MaxNameLength) { - throw new ArgumentException($"name can not be longer than {MaxNameLength} chars!"); + throw new ArgumentException( + $"name can not be longer than {MaxNameLength} chars!"); } return name; @@ -349,8 +351,9 @@ public class DistrictAppService protected async override Task GetEntityByIdAsync(DistrictKey id) { + var queryable = await Repository.GetQueryableAsync(); return await AsyncQueryableExecuter.FirstOrDefaultAsync( - Repository.Where(d => d.CityId == id.CityId && d.Name == id.Name) + queryable.Where(d => d.CityId == id.CityId && d.Name == id.Name) ); } } diff --git a/docs/en/AspNet-Boilerplate-Migration-Guide.md b/docs/en/AspNet-Boilerplate-Migration-Guide.md index f4c2ec712b..52a2fced6a 100644 --- a/docs/en/AspNet-Boilerplate-Migration-Guide.md +++ b/docs/en/AspNet-Boilerplate-Migration-Guide.md @@ -184,7 +184,7 @@ public class PersonAppService : ApplicationService, IPersonAppService } ```` -ABP Framework's repository doesn't have this method. Instead, it implements the `IQueryable` itself. So, you can directly use LINQ on the repository: +ABP Framework's repository have `GetQueryableAsync` instead: ````csharp public class PersonAppService : ApplicationService, IPersonAppService @@ -198,14 +198,15 @@ public class PersonAppService : ApplicationService, IPersonAppService public async Task DoIt() { - var people = await _personRepository + var queryable = await _personRepository.GetQueryableAsync(); + var people = await queryable .Where(p => p.BirthYear > 2000) //Use LINQ extension methods .ToListAsync(); } } ```` -> Note that in order to use the async LINQ extension methods (like `ToListAsync` here), you may need to depend on the database provider (like EF Core) since these methods are defined in the database provider package, they are not standard LINQ methods. +> Note that in order to use the async LINQ extension methods (like `ToListAsync` here), you may need to depend on the database provider (like EF Core) since these methods are defined in the database provider package, they are not standard LINQ methods. See the [repository document](Repositories.md) for alternative approaches for async query execution. #### FirstOrDefault(predicate), Single()... Methods diff --git a/docs/en/Domain-Driven-Design-Implementation-Guide.md b/docs/en/Domain-Driven-Design-Implementation-Guide.md index 9341df703b..cf2ce6bf14 100644 --- a/docs/en/Domain-Driven-Design-Implementation-Guide.md +++ b/docs/en/Domain-Driven-Design-Implementation-Guide.md @@ -754,7 +754,8 @@ namespace IssueTracking.Issues { var daysAgo30 = DateTime.Now.Subtract(TimeSpan.FromDays(30)); - return await DbSet.Where(i => + var dbSet = await GetDbSetAsync(); + return await dbSet.Where(i => //Open !i.IsClosed && @@ -906,7 +907,8 @@ public class EfCoreIssueRepository : public async Task> GetIssuesAsync(ISpecification spec) { - return await DbSet + var dbSet = await GetDbSetAsync(); + return await dbSet .Where(spec.ToExpression()) .ToListAsync(); } @@ -952,8 +954,9 @@ public class IssueAppService : ApplicationService, IIssueAppService public async Task DoItAsync() { + var queryable = await _issueRepository.GetQueryableAsync(); var issues = AsyncExecuter.ToListAsync( - _issueRepository.Where(new InActiveIssueSpecification()) + queryable.Where(new InActiveIssueSpecification()) ); } } @@ -996,8 +999,9 @@ public class IssueAppService : ApplicationService, IIssueAppService public async Task DoItAsync(Guid milestoneId) { + var queryable = await _issueRepository.GetQueryableAsync(); var issues = AsyncExecuter.ToListAsync( - _issueRepository + queryable .Where( new InActiveIssueSpecification() .And(new MilestoneSpecification(milestoneId)) diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index a2eb385094..3d0ea84821 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -222,7 +222,8 @@ public class PersonRepository : EfCoreRepository, IPe public async Task FindByNameAsync(string name) { - return await DbContext.Set() + var dbSet = await GetDbSetAsync(); + return await dbSet.Set() .Where(p => p.Name == name) .FirstOrDefaultAsync(); } @@ -235,12 +236,13 @@ You can directly access the data access provider (`DbContext` in this case) to p ## IQueryable & Async Operations -`IRepository` inherits from `IQueryable`, that means you can **directly use LINQ extension methods** on it, as shown in the example of the "*Generic Repositories*" section above. +`IRepository` provides `GetQueryableAsync()` to obtain an `IQueryable`, that means you can **directly use LINQ extension methods** on it, as shown in the example of the "*Querying / LINQ over the Repositories*" section above. **Example: Using the `Where(...)` and the `ToList()` extension methods** ````csharp -var people = _personRepository +var queryable = await _personRepository.GetQueryableAsync(); +var people = queryable .Where(p => p.Name.Contains(nameFilter)) .ToList(); ```` @@ -269,7 +271,8 @@ When you add the NuGet package to your project, you can take full power of the E **Example: Directly using the `ToListAsync()` after adding the EF Core package** ````csharp -var people = _personRepository +var queryable = await _personRepository.GetQueryableAsync(); +var people = queryable .Where(p => p.Name.Contains(nameFilter)) .ToListAsync(); ```` @@ -285,7 +288,8 @@ If you are using [MongoDB](MongoDB.md), you need to add the [Volo.Abp.MongoDB](h **Example: Cast `IQueryable` to `IMongoQueryable` and use `ToListAsync()`** ````csharp -var people = ((IMongoQueryable)_personRepository +var queryable = await _personRepository.GetQueryableAsync(); +var people = ((IMongoQueryable) queryable .Where(p => p.Name.Contains(nameFilter))) .ToListAsync(); ```` @@ -312,10 +316,11 @@ The standard LINQ extension methods are supported: *AllAsync, AnyAsync, AverageA This approach still **has a limitation**. You need to call the extension method directly on the repository object. For example, the below usage is **not supported**: ```csharp -var count = await _bookRepository.Where(x => x.Name.Contains("A")).CountAsync(); +var queryable = await _bookRepository.GetQueryableAsync(); +var count = await queryable.Where(x => x.Name.Contains("A")).CountAsync(); ``` -This is because the object returned from the `Where` method is not a repository object, it is a standard `IQueryable` interface. See the other options for such cases. +This is because the `CountAsync()` method in this example is called on a `IQueryable` interface, not on the repository object. See the other options for such cases. This method is suggested **wherever possible**. @@ -352,8 +357,11 @@ namespace AbpDemo public async Task> GetListAsync(string name) { + //Obtain the IQueryable + var queryable = await _productRepository.GetQueryableAsync(); + //Create the query - var query = _productRepository + var query = queryable .Where(p => p.Name.Contains(name)) .OrderBy(p => p.Name); diff --git a/docs/en/Specifications.md b/docs/en/Specifications.md index 036baa749e..bfe1d031d3 100644 --- a/docs/en/Specifications.md +++ b/docs/en/Specifications.md @@ -122,7 +122,8 @@ namespace MyProject public async Task> GetCustomersCanBuyAlcohol() { - var query = _customerRepository.Where( + var queryable = await _customerRepository.GetQueryableAsync(); + var query = queryable.Where( new Age18PlusCustomerSpecification().ToExpression() ); @@ -137,7 +138,8 @@ namespace MyProject Actually, using the `ToExpression()` method is not necessary since the specifications are automatically casted to Expressions. This would also work: ````csharp -var query = _customerRepository.Where( +var queryable = await _customerRepository.GetQueryableAsync(); +var query = queryable.Where( new Age18PlusCustomerSpecification() ); ```` From 8079027c8ccd99e79651c48642a3415143322672 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 22 Jan 2021 09:40:54 +0800 Subject: [PATCH 145/309] Update Road-Map.md --- docs/en/Road-Map.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Road-Map.md b/docs/en/Road-Map.md index 6f4213a6bd..0920639106 100644 --- a/docs/en/Road-Map.md +++ b/docs/en/Road-Map.md @@ -18,4 +18,4 @@ You can always check the milestone planning and the prioritized backlog issues o The backlog items are subject to change. We are adding new items and changing priorities based on the community feedbacks and goals of the project. -Vote for your favorite feature on the related GitHub issues (and write your thoughts). You can create an issue on [the GitHub repository](https://github.com/abpframework/abp) for your feature requests, but first search in in the existing issues. \ No newline at end of file +Vote for your favorite feature on the related GitHub issues (and write your thoughts). You can create an issue on [the GitHub repository](https://github.com/abpframework/abp) for your feature requests, but first search in the existing issues. From a1df9bf5a5a0aa695b6ee88bddc2f93873295a36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 22 Jan 2021 10:27:02 +0300 Subject: [PATCH 146/309] Use async queryable in startup templates. --- .../MongoDb/MongoDbMyProjectNameDbSchemaMigrator.cs | 8 +++----- .../EntityFrameworkCore/Samples/SampleRepositoryTests.cs | 2 +- .../MongoDb/Samples/SampleRepositoryTests.cs | 3 +-- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MongoDbMyProjectNameDbSchemaMigrator.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MongoDbMyProjectNameDbSchemaMigrator.cs index 395ff28b39..2a00826ba7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MongoDbMyProjectNameDbSchemaMigrator.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MongoDbMyProjectNameDbSchemaMigrator.cs @@ -18,15 +18,15 @@ namespace MyCompanyName.MyProjectName.MongoDB _serviceProvider = serviceProvider; } - public Task MigrateAsync() + public async Task MigrateAsync() { var dbContexts = _serviceProvider.GetServices(); - var connectionStringResolver = _serviceProvider.GetService(); + var connectionStringResolver = _serviceProvider.GetRequiredService(); foreach (var dbContext in dbContexts) { var connectionString = - connectionStringResolver.Resolve( + await connectionStringResolver.ResolveAsync( ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType())); var mongoUrl = new MongoUrl(connectionString); var databaseName = mongoUrl.DatabaseName; @@ -39,8 +39,6 @@ namespace MyCompanyName.MyProjectName.MongoDB (dbContext as AbpMongoDbContext)?.InitializeCollections(client.GetDatabase(databaseName)); } - - return Task.CompletedTask; } } } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs index 15fd991d77..3fdaa28ea7 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs @@ -33,7 +33,7 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Samples await WithUnitOfWorkAsync(async () => { //Act - var adminUser = await _appUserRepository + var adminUser = await (await _appUserRepository.GetQueryableAsync()) .Where(u => u.UserName == "admin") .FirstOrDefaultAsync(); diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs index deee3b4b61..0c45d0a52e 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs @@ -32,8 +32,7 @@ namespace MyCompanyName.MyProjectName.MongoDB.Samples await WithUnitOfWorkAsync(async () => { //Act - var adminUser = await _appUserRepository - .GetMongoQueryable() + var adminUser = await (await _appUserRepository.GetMongoQueryableAsync()) .FirstOrDefaultAsync(u => u.UserName == "admin"); //Assert From 7505797a2752a9083663f0c4e79b123d98618eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 22 Jan 2021 10:28:55 +0300 Subject: [PATCH 147/309] Update MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj --- ...anyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj index 1d2226ee96..f13bcef4d1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj @@ -12,6 +12,7 @@ + From ddf0a9520e7f038523095841e871d7db47276002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 22 Jan 2021 10:45:35 +0300 Subject: [PATCH 148/309] Set PublishTrimmed to false for Blazor app. --- .../MyCompanyName.MyProjectName.Blazor.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index 078cccd39b..96a8f791ee 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -4,6 +4,7 @@ net5.0 true false + false From 15ba1bdfb556e0943cae9b5942ebe16047a5d98a Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 22 Jan 2021 10:47:49 +0300 Subject: [PATCH 149/309] CmsKit - Remove SetContentByEntity --- .../Admin/Contents/IContentAdminAppService.cs | 2 -- .../Admin/Contents/ContentAdminAppService.cs | 27 ------------------- .../Admin/Contents/ContentAdminController.cs | 8 ------ 3 files changed, 37 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs index 381498cbb1..fb5bf48349 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs @@ -15,7 +15,5 @@ namespace Volo.CmsKit.Admin.Contents ContentUpdateDto> { Task GetByEntityAsync(string entityType, string entityId); - - Task SetByEntityAsync(string entityType, string entityId, ContentSetByEntityInput input); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs index 8c5b161540..b1008f0086 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs @@ -68,32 +68,5 @@ namespace Volo.CmsKit.Admin.Contents return ObjectMapper.Map(content); } - - public async Task SetByEntityAsync( - [NotNull] string entityType, - [NotNull] string entityId, - ContentSetByEntityInput input) - { - Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - Check.NotNullOrWhiteSpace(entityId, nameof(entityId)); - - var updated = await ContentRepository.FindAsync(entityType, entityId); - - if (updated == null) - { - await ContentRepository.InsertAsync( - new Content( - GuidGenerator.Create(), - entityType, - entityId, - input.Value, - CurrentTenant?.Id)); - } - else - { - updated.SetValue(input.Value); - await ContentRepository.UpdateAsync(updated); - } - } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs index 0679391a4f..fa766a5cfb 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs @@ -67,13 +67,5 @@ namespace Volo.CmsKit.Admin.Contents { return ContentAdminAppService.GetByEntityAsync(entityType, entityId); } - - [HttpPost] - [Route("{entityType}/{entityId}")] - [Authorize(CmsKitAdminPermissions.Contents.Update)] - public Task SetByEntityAsync(string entityType, string entityId, ContentSetByEntityInput input) - { - return ContentAdminAppService.SetByEntityAsync(entityType, entityId, input); - } } } From 1b0f7c950a30cc431d5f061f9cfd17cf8e14fa33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 22 Jan 2021 11:07:41 +0300 Subject: [PATCH 150/309] ABP version 4.2 Migration Guide --- docs/en/Migration-Guides/Abp-4_2.md | 92 +++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 docs/en/Migration-Guides/Abp-4_2.md diff --git a/docs/en/Migration-Guides/Abp-4_2.md b/docs/en/Migration-Guides/Abp-4_2.md new file mode 100644 index 0000000000..15285a879a --- /dev/null +++ b/docs/en/Migration-Guides/Abp-4_2.md @@ -0,0 +1,92 @@ +# ABP version 4.2 Migration Guide + +This version has no breaking changes but there is an important change on the repositories that should be applied for your application for an important performance and scalability gain. + +## IRepository.GetQueryableAsync + +`IRepository` interface inherits `IQueryable`, so you can directly use the standard LINQ extension methods, like `Where`, `OrderBy`, `First`, `Sum`... etc. + +**Example: Using LINQ directly over the repository object** + +````csharp +public class BookAppService : ApplicationService, IBookAppService +{ + private readonly IRepository _bookRepository; + + public BookAppService(IRepository bookRepository) + { + _bookRepository = bookRepository; + } + + public async Task DoItInOldWayAsync() + { + //Apply any standard LINQ extension method + var query = _bookRepository + .Where(x => x.Price > 10) + .OrderBy(x => x.Name); + + //Execute the query asynchronously + var books = await AsyncExecuter.ToListAsync(query); + } +} +```` + +*See [the documentation](https://docs.abp.io/en/abp/4.2/Repositories#iqueryable-async-operations) if you wonder what is the `AsyncExecuter`.* + +**Beginning from the version 4.2, the recommended way is using `IRepository.GetQueryableAsync()` to obtain an `IQueryable`, then use the LINQ extension methods over it.** + +**Example: Using the new GetQueryableAsync method** + +````csharp +public async Task DoItInNewWayAsync() +{ + //Use GetQueryableAsync to obtain the IQueryable first + var queryable = await _bookRepository.GetQueryableAsync(); + + //Then apply any standard LINQ extension method + var query = queryable + .Where(x => x.Price > 10) + .OrderBy(x => x.Name); + + //Finally, execute the query asynchronously + var books = await AsyncExecuter.ToListAsync(query); +} +```` + +ABP may start a database transaction when you get an `IQueryable` (If current [Unit Of Work](https://docs.abp.io/en/abp/latest/Unit-Of-Work) is transactional). In this new way, it is possible to **start the database transaction in an asynchronous way**. Previously, we could not get the advantage of asynchronous while starting the transactions. + +> **The new way has a significant performance and scalability gain. The old usage (directly using LINQ over the repositories) will be removed in the next major version (5.0).** You have a lot of time for the change, but we recommend to immediately take the action since the old usage has a big **scalability problem**. + +#### About IRepository Async Extension Methods + +Using IRepository Async Extension Methods has no such a problem. The examples below are pretty fine: + +````csharp +var countAll = await _personRepository + .CountAsync(); + +var count = await _personRepository + .CountAsync(x => x.Name.StartsWith("A")); + +var book1984 = await _bookRepository + .FirstOrDefaultAsync(x => x.Name == "John"); +```` + +See the [repository documentation](https://docs.abp.io/en/abp/4.2/Repositories#iqueryable-async-operations) to understand the relation between `IQueryable` and asynchronous operations. + +## .NET Package Upgrades + +ABP uses the latest 5.0.* .NET packages. If your application is using 5.0.0 packages, you may get an error on build. We recommend to depend on the .NET packages like `5.0.*` in the `.csproj` files to use the latest patch versions. + +Example: + +````xml + +```` + +## Blazorise Library Upgrade + +If you are upgrading to 4.2, you also need also upgrade the following packages in your Blazor application; + +* `Blazorise.Bootstrap` to `0.9.3-preview6` +* `Blazorise.Icons.FontAwesome` to `0.9.3-preview6` \ No newline at end of file From dcb780a5c9daa05e2efc69860be0e4525f88e3c8 Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 22 Jan 2021 11:22:13 +0300 Subject: [PATCH 151/309] CmsKit - Remove ContentSetByEntityInput.cs --- .../Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs deleted file mode 100644 index 744f708e45..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentSetByEntityInput.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Volo.CmsKit.Admin.Contents -{ - public class ContentSetByEntityInput - { - public string Value { get; set; } - } -} From d990b482a83d38d0a9cbeb1d647fc974da45ed0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 22 Jan 2021 11:28:55 +0300 Subject: [PATCH 152/309] Update Abp-4_2.md --- docs/en/Migration-Guides/Abp-4_2.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/en/Migration-Guides/Abp-4_2.md b/docs/en/Migration-Guides/Abp-4_2.md index 15285a879a..084ae24caa 100644 --- a/docs/en/Migration-Guides/Abp-4_2.md +++ b/docs/en/Migration-Guides/Abp-4_2.md @@ -57,6 +57,15 @@ ABP may start a database transaction when you get an `IQueryable` (If current [U > **The new way has a significant performance and scalability gain. The old usage (directly using LINQ over the repositories) will be removed in the next major version (5.0).** You have a lot of time for the change, but we recommend to immediately take the action since the old usage has a big **scalability problem**. +### Actions to Take + +* Use the repository's queryable feature as explained before. +* If you've overridden `CreateFilteredQuery` in a class derived from `CrudAppService`, you should override the `CreateFilteredQueryAsync` instead and remove the `CreateFilteredQuery` in your class. +* If you've overridden `WithDetails` in your custom repositories, remove it and override `WithDetailsAsync` instead. +* If you've used `DbContext` or `DbSet` properties in your custom repositories, use `GetDbContextAsync()` and `GetDbSetAsync()` methods instead of them. + +You can re-build your solution and check the `Obsolete` warnings to find some of the usages need to change. + #### About IRepository Async Extension Methods Using IRepository Async Extension Methods has no such a problem. The examples below are pretty fine: From f3ee251880a6a7784db9bc5a829d0ebc1cc07be9 Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 22 Jan 2021 11:29:07 +0300 Subject: [PATCH 153/309] CmsKit - Add test for GetByEntityAsync --- .../Contents/ContentAdminAppService_Tests.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs index 34c90cbf6e..1263014d83 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs @@ -128,5 +128,15 @@ namespace Volo.CmsKit.Contents await Should.NotThrowAsync(async () => await _service.DeleteAsync(_data.Content_2_Id)); } + + [Fact] + public async Task ShouldGetByEntityAsync() + { + var entity = await _service.GetByEntityAsync(_data.Content_1_EntityType, _data.Content_1_EntityId); + + entity.ShouldNotBeNull(); + entity.EntityId.ShouldBe(_data.Content_1_EntityId); + entity.EntityType.ShouldBe(_data.Content_1_EntityType); + } } } From 29cbcdd55bb3c5fb31c6646357f73f0591f77c08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 22 Jan 2021 11:30:23 +0300 Subject: [PATCH 154/309] Update Index.md --- docs/en/Migration-Guides/Index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/en/Migration-Guides/Index.md b/docs/en/Migration-Guides/Index.md index 5973ee0a0d..26fe825f50 100644 --- a/docs/en/Migration-Guides/Index.md +++ b/docs/en/Migration-Guides/Index.md @@ -1,5 +1,6 @@ # ABP Framework Migration Guides -* [3.3.x to 4.0 Migration Guide](Abp-4_0.md) -* [2.9.x to 3.0 Migration Guide](../UI/Angular/Migration-Guide-v3.md) +* [4.x to 4.2](Abp-4_2.md) +* [3.3.x to 4.0](Abp-4_0.md) +* [2.9.x to 3.0](../UI/Angular/Migration-Guide-v3.md) From f0f5e2c91b1fd628704ff760f9cd38864f168d7c Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 22 Jan 2021 17:11:17 +0800 Subject: [PATCH 155/309] Cache tenant in TenantStore. Resolve #6970 --- .../Volo.Abp.TenantManagement.Domain.csproj | 1 + .../AbpTenantManagementDomainModule.cs | 2 + .../Abp/TenantManagement/TenantCacheItem.cs | 36 ++++++ .../TenantCacheItemInvalidator.cs | 24 ++++ .../Volo/Abp/TenantManagement/TenantStore.cs | 120 +++++++++++++----- .../TenantCacheItemInvalidator_Tests.cs | 86 +++++++++++++ 6 files changed, 236 insertions(+), 33 deletions(-) create mode 100644 modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItem.cs create mode 100644 modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItemInvalidator.cs create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantCacheItemInvalidator_Tests.cs diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj index dc168af444..5de64b7a1d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj @@ -21,6 +21,7 @@ + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs index 764e9f7209..076c8b7a67 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainModule.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AutoMapper; +using Volo.Abp.Caching; using Volo.Abp.Data; using Volo.Abp.Domain; using Volo.Abp.Domain.Entities.Events.Distributed; @@ -16,6 +17,7 @@ namespace Volo.Abp.TenantManagement [DependsOn(typeof(AbpDataModule))] [DependsOn(typeof(AbpDddDomainModule))] [DependsOn(typeof(AbpAutoMapperModule))] + [DependsOn(typeof(AbpCachingModule))] public class AbpTenantManagementDomainModule : AbpModule { private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItem.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItem.cs new file mode 100644 index 0000000000..94f898bbe5 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItem.cs @@ -0,0 +1,36 @@ +using System; +using Volo.Abp.MultiTenancy; + +namespace Volo.Abp.TenantManagement +{ + [Serializable] + [IgnoreMultiTenancy] + public class TenantCacheItem + { + private const string CacheKeyFormat = "i:{0},n:{1}"; + + public TenantConfiguration Value { get; set; } + + public TenantCacheItem() + { + + } + + public TenantCacheItem(TenantConfiguration value) + { + Value = value; + } + + public static string CalculateCacheKey(Guid? id, string name) + { + if (id == null && name.IsNullOrWhiteSpace()) + { + throw new AbpException("Both id and name can't be invalid."); + } + + return string.Format(CacheKeyFormat, + id?.ToString() ?? "null", + (name.IsNullOrWhiteSpace() ? "null" : name)); + } + } +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItemInvalidator.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItemInvalidator.cs new file mode 100644 index 0000000000..0416dd8df2 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantCacheItemInvalidator.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities.Events; +using Volo.Abp.EventBus; + +namespace Volo.Abp.TenantManagement +{ + public class TenantCacheItemInvalidator : ILocalEventHandler>, ITransientDependency + { + protected IDistributedCache Cache { get; } + + public TenantCacheItemInvalidator(IDistributedCache cache) + { + Cache = cache; + } + + public virtual async Task HandleEventAsync(EntityChangedEventData eventData) + { + await Cache.RemoveAsync(TenantCacheItem.CalculateCacheKey(eventData.Entity.Id, null)); + await Cache.RemoveAsync(TenantCacheItem.CalculateCacheKey(null, eventData.Entity.Name)); + } + } +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs index 00b9ef0963..54e07a55fb 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs @@ -1,5 +1,7 @@ using System; using System.Threading.Tasks; +using JetBrains.Annotations; +using Volo.Abp.Caching; using Volo.Abp.DependencyInjection; using Volo.Abp.MultiTenancy; using Volo.Abp.ObjectMapping; @@ -13,73 +15,125 @@ namespace Volo.Abp.TenantManagement protected ITenantRepository TenantRepository { get; } protected IObjectMapper ObjectMapper { get; } protected ICurrentTenant CurrentTenant { get; } + protected IDistributedCache Cache { get; } public TenantStore( ITenantRepository tenantRepository, IObjectMapper objectMapper, - ICurrentTenant currentTenant) + ICurrentTenant currentTenant, + IDistributedCache cache) { TenantRepository = tenantRepository; ObjectMapper = objectMapper; CurrentTenant = currentTenant; + Cache = cache; } public virtual async Task FindAsync(string name) { - using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! - { - var tenant = await TenantRepository.FindByNameAsync(name); - if (tenant == null) - { - return null; - } - - return ObjectMapper.Map(tenant); - } + return (await GetCacheItemAsync(null, name)).Value; } public virtual async Task FindAsync(Guid id) { - using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! - { - var tenant = await TenantRepository.FindAsync(id); - if (tenant == null) - { - return null; - } - - return ObjectMapper.Map(tenant); - } + return (await GetCacheItemAsync(id, null)).Value; } [Obsolete("Use FindAsync method.")] public virtual TenantConfiguration Find(string name) { - using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! + return (GetCacheItem(null, name)).Value; + } + + [Obsolete("Use FindAsync method.")] + public virtual TenantConfiguration Find(Guid id) + { + return (GetCacheItem(id, null)).Value; + } + + protected virtual async Task GetCacheItemAsync(Guid? id, string name) + { + var cacheKey = CalculateCacheKey(id, name); + + var cacheItem = await Cache.GetAsync(cacheKey, considerUow: true); + if (cacheItem != null) + { + return cacheItem; + } + + if (id.HasValue) { - var tenant = TenantRepository.FindByName(name); - if (tenant == null) + using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! { - return null; + var tenant = await TenantRepository.FindAsync(id.Value); + return await SetCacheAsync(cacheKey, tenant); } + } - return ObjectMapper.Map(tenant); + if (!name.IsNullOrWhiteSpace()) + { + using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! + { + var tenant = await TenantRepository.FindByNameAsync(name); + return await SetCacheAsync(cacheKey, tenant); + } } + + throw new AbpException("Both id and name can't be invalid."); } - [Obsolete("Use FindAsync method.")] - public virtual TenantConfiguration Find(Guid id) + protected virtual async Task SetCacheAsync(string cacheKey, [CanBeNull]Tenant tenant) + { + var tenantConfiguration = tenant != null ? ObjectMapper.Map(tenant) : null; + var cacheItem = new TenantCacheItem(tenantConfiguration); + await Cache.SetAsync(cacheKey, cacheItem, considerUow: true); + return cacheItem; + } + + [Obsolete("Use GetCacheItemAsync method.")] + protected virtual TenantCacheItem GetCacheItem(Guid? id, string name) { - using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! + var cacheKey = CalculateCacheKey(id, name); + + var cacheItem = Cache.Get(cacheKey, considerUow: true); + if (cacheItem != null) + { + return cacheItem; + } + + if (id.HasValue) { - var tenant = TenantRepository.FindById(id); - if (tenant == null) + using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! { - return null; + var tenant = TenantRepository.FindById(id.Value); + return SetCache(cacheKey, tenant); } + } - return ObjectMapper.Map(tenant); + if (!name.IsNullOrWhiteSpace()) + { + using (CurrentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities! + { + var tenant = TenantRepository.FindByName(name); + return SetCache(cacheKey, tenant); + } } + + throw new AbpException("Both id and name can't be invalid."); + } + + [Obsolete("Use SetCacheAsync method.")] + protected virtual TenantCacheItem SetCache(string cacheKey, [CanBeNull]Tenant tenant) + { + var tenantConfiguration = tenant != null ? ObjectMapper.Map(tenant) : null; + var cacheItem = new TenantCacheItem(tenantConfiguration); + Cache.Set(cacheKey, cacheItem, considerUow: true); + return cacheItem; + } + + protected virtual string CalculateCacheKey(Guid? id, string name) + { + return TenantCacheItem.CalculateCacheKey(id, name); } } } diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantCacheItemInvalidator_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantCacheItemInvalidator_Tests.cs new file mode 100644 index 0000000000..4c2a8e3c3f --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantCacheItemInvalidator_Tests.cs @@ -0,0 +1,86 @@ +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Caching; +using Volo.Abp.MultiTenancy; +using Xunit; + +namespace Volo.Abp.TenantManagement +{ + public class TenantCacheItemInvalidator_Tests : AbpTenantManagementDomainTestBase + { + private readonly IDistributedCache _cache; + private readonly ITenantStore _tenantStore; + private readonly ITenantRepository _tenantRepository; + + public TenantCacheItemInvalidator_Tests() + { + _cache = GetRequiredService>(); + _tenantStore = GetRequiredService(); + _tenantRepository = GetRequiredService(); + } + + [Fact] + public async Task Get_Tenant_Should_Cached() + { + var acme = await _tenantRepository.FindByNameAsync("acme"); + acme.ShouldNotBeNull(); + + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(acme.Id, null))).ShouldBeNull(); + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(null, acme.Name))).ShouldBeNull(); + + await _tenantStore.FindAsync(acme.Id); + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(acme.Id, null))).ShouldNotBeNull(); + + await _tenantStore.FindAsync(acme.Name); + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(null, acme.Name))).ShouldNotBeNull(); + + + var volosoft = _tenantRepository.FindByName("volosoft"); + volosoft.ShouldNotBeNull(); + + (_cache.Get(TenantCacheItem.CalculateCacheKey(volosoft.Id, null))).ShouldBeNull(); + (_cache.Get(TenantCacheItem.CalculateCacheKey(null, volosoft.Name))).ShouldBeNull(); + + _tenantStore.Find(volosoft.Id); + (_cache.Get(TenantCacheItem.CalculateCacheKey(volosoft.Id, null))).ShouldNotBeNull(); + + _tenantStore.Find(volosoft.Name); + (_cache.Get(TenantCacheItem.CalculateCacheKey(null, volosoft.Name))).ShouldNotBeNull(); + } + + [Fact] + public async Task Cache_Should_Invalidator_When_Tenant_Changed() + { + var acme = await _tenantRepository.FindByNameAsync("acme"); + acme.ShouldNotBeNull(); + + // FindAsync will cache tenant. + await _tenantStore.FindAsync(acme.Id); + await _tenantStore.FindAsync(acme.Name); + + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(acme.Id, null))).ShouldNotBeNull(); + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(null, acme.Name))).ShouldNotBeNull(); + + await _tenantRepository.DeleteAsync(acme); + + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(acme.Id, null))).ShouldBeNull(); + (await _cache.GetAsync(TenantCacheItem.CalculateCacheKey(null, acme.Name))).ShouldBeNull(); + + + var volosoft = await _tenantRepository.FindByNameAsync("volosoft"); + volosoft.ShouldNotBeNull(); + + // Find will cache tenant. + _tenantStore.Find(volosoft.Id); + _tenantStore.Find(volosoft.Name); + + (_cache.Get(TenantCacheItem.CalculateCacheKey(volosoft.Id, null))).ShouldNotBeNull(); + (_cache.Get(TenantCacheItem.CalculateCacheKey(null, volosoft.Name))).ShouldNotBeNull(); + + await _tenantRepository.DeleteAsync(volosoft); + + (_cache.Get(TenantCacheItem.CalculateCacheKey(volosoft.Id, null))).ShouldBeNull(); + (_cache.Get(TenantCacheItem.CalculateCacheKey(null, volosoft.Name))).ShouldBeNull(); + } + } +} From 9768268ef270ec76b46fa6dc5fd11df6fc561c53 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 22 Jan 2021 17:22:17 +0800 Subject: [PATCH 156/309] Remove todo. --- .../Volo/Abp/TenantManagement/TenantStore.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs index 54e07a55fb..e43e8a86fa 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs @@ -8,8 +8,6 @@ using Volo.Abp.ObjectMapping; namespace Volo.Abp.TenantManagement { - //TODO: This class should use caching instead of querying everytime! - public class TenantStore : ITenantStore, ITransientDependency { protected ITenantRepository TenantRepository { get; } From a5e9c90188c2e5fdcf10d84f4351bfa6fdcc0d58 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 22 Jan 2021 17:51:57 +0800 Subject: [PATCH 157/309] Update Dependency-Injection.md --- docs/en/Dependency-Injection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Dependency-Injection.md b/docs/en/Dependency-Injection.md index 335e829461..f94901ad84 100644 --- a/docs/en/Dependency-Injection.md +++ b/docs/en/Dependency-Injection.md @@ -1,6 +1,6 @@ # Dependency Injection -ABP's Dependency Injection system is developed based on Microsoft's [dependency injection extension](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection) library (Microsoft.Extensions.DependencyInjection nuget package). So, it's documentation is valid in ABP too. +ABP's Dependency Injection system is developed based on Microsoft's [dependency injection extension](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96) library (Microsoft.Extensions.DependencyInjection nuget package). So, it's documentation is valid in ABP too. > While ABP has no core dependency to any 3rd-party DI provider, it's required to use a provider that supports dynamic proxying and some other advanced features to make some ABP features properly work. Startup templates come with Autofac installed. See [Autofac integration](Autofac-Integration.md) document for more information. From 1c060797ef29e332225ee72a01d9200da85f68a9 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 22 Jan 2021 18:20:21 +0800 Subject: [PATCH 158/309] Remove duplicate data builder of identity server module. Resolve # --- .../AbpIdentityServerTestDataBuilder.cs | 148 ---------- ...tityServerTestEntityFrameworkCoreModule.cs | 19 +- .../AbpIdentityServerTestDataBuilder.cs | 255 ++++++++++++------ 3 files changed, 176 insertions(+), 246 deletions(-) delete mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs deleted file mode 100644 index 4b16d7de65..0000000000 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System.Threading.Tasks; -using IdentityServer4.Models; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; -using Volo.Abp.IdentityServer.ApiResources; -using Volo.Abp.IdentityServer.ApiScopes; -using Volo.Abp.IdentityServer.Clients; -using Volo.Abp.IdentityServer.Grants; -using Volo.Abp.IdentityServer.IdentityResources; -using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; -using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope; -using Client = Volo.Abp.IdentityServer.Clients.Client; -using IdentityResource = Volo.Abp.IdentityServer.IdentityResources.IdentityResource; -using PersistedGrant = Volo.Abp.IdentityServer.Grants.PersistedGrant; - -namespace Volo.Abp.IdentityServer -{ - //TODO: There are two data builders (see AbpIdentityServerTestDataBuilder in Volo.Abp.IdentityServer.TestBase). It should be somehow unified! - - public class AbpIdentityServerTestDataBuilder : ITransientDependency - { - private readonly IGuidGenerator _guidGenerator; - private readonly IClientRepository _clientRepository; - private readonly IPersistentGrantRepository _persistentGrantRepository; - private readonly IApiResourceRepository _apiResourceRepository; - private readonly IApiScopeRepository _apiScopeRepository; - private readonly IIdentityResourceRepository _identityResourceRepository; - - public AbpIdentityServerTestDataBuilder( - IClientRepository clientRepository, - IGuidGenerator guidGenerator, - IPersistentGrantRepository persistentGrantRepository, - IApiResourceRepository apiResourceRepository, - IIdentityResourceRepository identityResourceRepository, - IApiScopeRepository apiScopeRepository) - { - _clientRepository = clientRepository; - _guidGenerator = guidGenerator; - _persistentGrantRepository = persistentGrantRepository; - _apiResourceRepository = apiResourceRepository; - _identityResourceRepository = identityResourceRepository; - _apiScopeRepository = apiScopeRepository; - } - - public async Task BuildAsync() - { - await AddApiResources(); - await AddApiScopes(); - await AddIdentityResources(); - await AddClients(); - await AddPersistentGrants(); - } - - private async Task AddApiResources() - { - var apiResource = new ApiResource(_guidGenerator.Create(), "Test-ApiResource-Name-1") - { - Enabled = true, - Description = "Test-ApiResource-Description-1", - DisplayName = "Test-ApiResource-DisplayName-1" - }; - - apiResource.AddSecret("secret".Sha256()); - apiResource.AddScope("Test-ApiResource-ApiScope-Name-1"); - apiResource.AddScope("Test-ApiResource-ApiScope-DisplayName-1"); - apiResource.AddUserClaim("Test-ApiResource-Claim-Type-1"); - - await _apiResourceRepository.InsertAsync(apiResource); - } - - private async Task AddApiScopes() - { - var apiScope = new ApiScope(_guidGenerator.Create(), "Test-ApiScope-Name-1"); - - apiScope.AddUserClaim("Test-ApiScope-Claim-Type-1"); - await _apiScopeRepository.InsertAsync(apiScope); - } - - private async Task AddIdentityResources() - { - var identityResource = new IdentityResource(_guidGenerator.Create(), "Test-Identity-Resource-Name-1") - { - Description = "Test-Identity-Resource-Description-1", - DisplayName = "Test-Identity-Resource-DisplayName-1", - Required = true, - Emphasize = true - }; - - identityResource.AddUserClaim("Test-Identity-Resource-1-IdentityClaim-Type-1"); - - await _identityResourceRepository.InsertAsync(identityResource); - } - - private async Task AddClients() - { - var client42 = new Client(_guidGenerator.Create(), "42") - { - ProtocolType = "TestProtocol-42" - }; - - client42.AddCorsOrigin("Origin1"); - - client42.AddScope("Test-ApiScope-Name-1"); - - await _clientRepository.InsertAsync(client42); - } - - private async Task AddPersistentGrants() - { - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) - { - Key = "38", - ClientId = "TestClientId-38", - Type = "TestType-38", - SubjectId = "TestSubject", - Data = "TestData-38" - }); - - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) - { - Key = "37", - ClientId = "TestClientId-37", - Type = "TestType-37", - SubjectId = "TestSubject", - Data = "TestData-37" - }); - - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) - { - Key = "36", - ClientId = "TestClientId-X", - Type = "TestType-36", - SubjectId = "TestSubject-X", - Data = "TestData-36" - }); - - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) - { - Key = "35", - ClientId = "TestClientId-X", - Type = "TestType-35", - SubjectId = "TestSubject-X", - Data = "TestData-35" - }); - } - - } -} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs index 5abc8ad2a2..0c3dd27e53 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs @@ -1,4 +1,4 @@ -using Microsoft.Data.Sqlite; +using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage; @@ -33,11 +33,6 @@ namespace Volo.Abp.IdentityServer }); } - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - SeedTestData(context); - } - private static SqliteConnection CreateDatabaseAndGetConnection() { var connection = new SqliteConnection("Data Source=:memory:"); @@ -53,15 +48,5 @@ namespace Volo.Abp.IdentityServer return connection; } - - private static void SeedTestData(ApplicationInitializationContext context) - { - using (var scope = context.ServiceProvider.CreateScope()) - { - AsyncHelper.RunSync(() => scope.ServiceProvider - .GetRequiredService() - .BuildAsync()); - } - } } -} \ No newline at end of file +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs index 436bef1246..721caa1a7f 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Guids; @@ -11,6 +10,13 @@ using Volo.Abp.IdentityServer.Devices; using Volo.Abp.IdentityServer.Grants; using Volo.Abp.IdentityServer.IdentityResources; using Volo.Abp.Timing; +using IdentityServer4.Models; +using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; +using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope; +using Client = Volo.Abp.IdentityServer.Clients.Client; +using ClientClaim = Volo.Abp.IdentityServer.Clients.ClientClaim; +using IdentityResource = Volo.Abp.IdentityServer.IdentityResources.IdentityResource; +using PersistedGrant = Volo.Abp.IdentityServer.Grants.PersistedGrant; namespace Volo.Abp.IdentityServer { @@ -18,6 +24,7 @@ namespace Volo.Abp.IdentityServer { private readonly IGuidGenerator _guidGenerator; private readonly IApiResourceRepository _apiResourceRepository; + private readonly IApiScopeRepository _apiScopeRepository; private readonly IClientRepository _clientRepository; private readonly IIdentityResourceRepository _identityResourceRepository; private readonly IIdentityClaimTypeRepository _identityClaimTypeRepository; @@ -29,6 +36,7 @@ namespace Volo.Abp.IdentityServer public AbpIdentityServerTestDataBuilder( IGuidGenerator guidGenerator, IApiResourceRepository apiResourceRepository, + IApiScopeRepository apiScopeRepository, IClientRepository clientRepository, IIdentityResourceRepository identityResourceRepository, IIdentityClaimTypeRepository identityClaimTypeRepository, @@ -40,125 +48,91 @@ namespace Volo.Abp.IdentityServer _testData = testData; _guidGenerator = guidGenerator; _apiResourceRepository = apiResourceRepository; + _apiScopeRepository = apiScopeRepository; _clientRepository = clientRepository; _identityResourceRepository = identityResourceRepository; _identityClaimTypeRepository = identityClaimTypeRepository; _persistentGrantRepository = persistentGrantRepository; - _clock = clock; _deviceFlowCodesRepository = deviceFlowCodesRepository; + _clock = clock; } public async Task BuildAsync() { - await AddDeviceFlowCodes(); - await AddPersistedGrants(); - await AddIdentityResources(); + await AddApiScopes(); await AddApiResources(); + await AddIdentityResources(); await AddClients(); + await AddPersistentGrants(); + await AddDeviceFlowCodes(); + await AddPersistedGrants(); await AddClaimTypes(); } - private async Task AddDeviceFlowCodes() + private async Task AddApiScopes() { - await _deviceFlowCodesRepository.InsertAsync( - new DeviceFlowCodes(_guidGenerator.Create()) - { - ClientId = "c1", - DeviceCode = "DeviceCode1", - Expiration = _clock.Now.AddDays(1), - Data = "{\"Lifetime\":\"42\"}", - UserCode = "DeviceFlowCodesUserCode1", - SubjectId = "DeviceFlowCodesSubjectId1" - } - ); - - await _deviceFlowCodesRepository.InsertAsync( - new DeviceFlowCodes(_guidGenerator.Create()) - { - ClientId = "c1", - DeviceCode = "DeviceCode2", - Expiration = _clock.Now.AddDays(-1), - Data = "", - UserCode = "DeviceFlowCodesUserCode2", - SubjectId = "DeviceFlowCodesSubjectId2" - } - ); + var apiScope = new ApiScope(_guidGenerator.Create(), "Test-ApiScope-Name-1"); + apiScope.AddUserClaim("Test-ApiScope-Claim-Type-1"); + await _apiScopeRepository.InsertAsync(apiScope); } - private async Task AddPersistedGrants() + private async Task AddApiResources() { - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) - { - Key = "PersistedGrantKey1", - SubjectId = "PersistedGrantSubjectId1", - SessionId = "PersistedGrantSessionId1", - ClientId = "PersistedGrantClientId1", - Type = "PersistedGrantType1", - Data = "" - }); + var apiResource = new ApiResource(_testData.ApiResource1Id, "NewApiResource1"); + apiResource.Description = nameof(apiResource.Description); + apiResource.DisplayName = nameof(apiResource.DisplayName); - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) - { - Key = "PersistedGrantKey2", - SubjectId = "PersistedGrantSubjectId2", - ClientId = "c1", - Type = "c1type", - Data = "" - }); + apiResource.AddScope(nameof(ApiResourceScope.Scope)); + apiResource.AddUserClaim(nameof(ApiResourceClaim.Type)); + apiResource.AddSecret(nameof(ApiResourceSecret.Value)); - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) - { - Key = "PersistedGrantKey3", - SubjectId = "PersistedGrantSubjectId3", - ClientId = "c1", - Type = "c1type", - Data = "", - Expiration = _clock.Now.AddDays(1), - }); + await _apiResourceRepository.InsertAsync(apiResource); + await _apiResourceRepository.InsertAsync(new ApiResource(_guidGenerator.Create(), "NewApiResource2")); + await _apiResourceRepository.InsertAsync(new ApiResource(_guidGenerator.Create(), "NewApiResource3")); - await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + var apiResource2 = new ApiResource(_guidGenerator.Create(), "Test-ApiResource-Name-1") { - Key = "PersistedGrantKey_Expired1", - SubjectId = "PersistedGrantSubjectId_Expired1", - ClientId = "c1", - Type = "c1type", - Data = "", - Expiration = _clock.Now.AddDays(-1) - }); + Enabled = true, + Description = "Test-ApiResource-Description-1", + DisplayName = "Test-ApiResource-DisplayName-1" + }; + + apiResource2.AddSecret("secret".Sha256()); + apiResource2.AddScope("Test-ApiResource-ApiScope-Name-1"); + apiResource2.AddScope("Test-ApiResource-ApiScope-DisplayName-1"); + apiResource2.AddUserClaim("Test-ApiResource-Claim-Type-1"); + + await _apiResourceRepository.InsertAsync(apiResource2); } private async Task AddIdentityResources() { - var identityResource = new IdentityResource(_testData.IdentityResource1Id, "NewIdentityResource1") + var identityResource1 = new IdentityResource(_testData.IdentityResource1Id, "NewIdentityResource1") { Description = nameof(Client.Description), DisplayName = nameof(IdentityResource.DisplayName) }; - identityResource.AddUserClaim(nameof(ApiResourceClaim.Type)); + identityResource1.AddUserClaim(nameof(ApiResourceClaim.Type)); - await _identityResourceRepository.InsertAsync(identityResource); + await _identityResourceRepository.InsertAsync(identityResource1); await _identityResourceRepository.InsertAsync(new IdentityResource(_guidGenerator.Create(), "NewIdentityResource2")); await _identityResourceRepository.InsertAsync(new IdentityResource(_guidGenerator.Create(), "NewIdentityResource3")); - } - private async Task AddApiResources() - { - var apiResource = new ApiResource(_testData.ApiResource1Id, "NewApiResource1"); - apiResource.Description = nameof(apiResource.Description); - apiResource.DisplayName = nameof(apiResource.DisplayName); - - apiResource.AddScope(nameof(ApiResourceScope.Scope)); - apiResource.AddUserClaim(nameof(ApiResourceClaim.Type)); - apiResource.AddSecret(nameof(ApiResourceSecret.Value)); + var identityResource2 = new IdentityResource(_guidGenerator.Create(), "Test-Identity-Resource-Name-1") + { + Description = "Test-Identity-Resource-Description-1", + DisplayName = "Test-Identity-Resource-DisplayName-1", + Required = true, + Emphasize = true + }; - await _apiResourceRepository.InsertAsync(apiResource); - await _apiResourceRepository.InsertAsync(new ApiResource(_guidGenerator.Create(), "NewApiResource2")); - await _apiResourceRepository.InsertAsync(new ApiResource(_guidGenerator.Create(), "NewApiResource3")); + identityResource2.AddUserClaim("Test-Identity-Resource-1-IdentityClaim-Type-1"); + await _identityResourceRepository.InsertAsync(identityResource2); } - private async Task AddClients() + private async Task AddClients() { var client = new Client(_testData.Client1Id, "ClientId1") { @@ -184,6 +158,125 @@ namespace Volo.Abp.IdentityServer await _clientRepository.InsertAsync(new Client(_guidGenerator.Create(), "ClientId2")); await _clientRepository.InsertAsync(new Client(_guidGenerator.Create(), "ClientId3")); + + + var client42 = new Client(_guidGenerator.Create(), "42") + { + ProtocolType = "TestProtocol-42" + }; + + client42.AddCorsOrigin("Origin1"); + client42.AddScope("Test-ApiScope-Name-1"); + await _clientRepository.InsertAsync(client42); + } + + private async Task AddPersistentGrants() + { + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "38", + ClientId = "TestClientId-38", + Type = "TestType-38", + SubjectId = "TestSubject", + Data = "TestData-38" + }); + + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "37", + ClientId = "TestClientId-37", + Type = "TestType-37", + SubjectId = "TestSubject", + Data = "TestData-37" + }); + + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "36", + ClientId = "TestClientId-X", + Type = "TestType-36", + SubjectId = "TestSubject-X", + Data = "TestData-36" + }); + + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "35", + ClientId = "TestClientId-X", + Type = "TestType-35", + SubjectId = "TestSubject-X", + Data = "TestData-35" + }); + } + + private async Task AddPersistedGrants() + { + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "PersistedGrantKey1", + SubjectId = "PersistedGrantSubjectId1", + SessionId = "PersistedGrantSessionId1", + ClientId = "PersistedGrantClientId1", + Type = "PersistedGrantType1", + Data = "" + }); + + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "PersistedGrantKey2", + SubjectId = "PersistedGrantSubjectId2", + ClientId = "c1", + Type = "c1type", + Data = "" + }); + + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "PersistedGrantKey3", + SubjectId = "PersistedGrantSubjectId3", + ClientId = "c1", + Type = "c1type", + Data = "", + Expiration = _clock.Now.AddDays(1), + }); + + await _persistentGrantRepository.InsertAsync(new PersistedGrant(_guidGenerator.Create()) + { + Key = "PersistedGrantKey_Expired1", + SubjectId = "PersistedGrantSubjectId_Expired1", + ClientId = "c1", + Type = "c1type", + Data = "", + Expiration = _clock.Now.AddDays(-1) + }); + } + + private async Task AddDeviceFlowCodes() + { + await _deviceFlowCodesRepository.InsertAsync( + new DeviceFlowCodes(_guidGenerator.Create()) + { + ClientId = "c1", + DeviceCode = "DeviceCode1", + Expiration = _clock.Now.AddDays(1), + Data = "{\"Lifetime\":\"42\"}", + UserCode = "DeviceFlowCodesUserCode1", + SubjectId = "DeviceFlowCodesSubjectId1" + } + ); + + await _deviceFlowCodesRepository.InsertAsync( + new DeviceFlowCodes(_guidGenerator.Create()) + { + ClientId = "c1", + DeviceCode = "DeviceCode2", + Expiration = _clock.Now.AddDays(-1), + Data = "", + UserCode = "DeviceFlowCodesUserCode2", + SubjectId = "DeviceFlowCodesSubjectId2" + } + ); + } private async Task AddClaimTypes() From 078dc42c39e9377e3a6ebd673183912b5700e6d5 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 22 Jan 2021 13:24:41 +0300 Subject: [PATCH 159/309] fix DatabaseManagementSystem.SQLite default connection string --- .../Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs index 82926df1b3..32e09b3339 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs @@ -21,7 +21,7 @@ namespace Volo.Abp.Cli.Commands.Services case DatabaseManagementSystem.OracleDevart: return "Data Source=MyProjectName;Integrated Security=yes;"; case DatabaseManagementSystem.SQLite: - return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};Version=3;"; + return $"Data Source={Path.Combine(outputFolder , "MyProjectName.db")};".Replace("\\", "\\\\"); default: return null; } From 49639301d7b5426928d435aff0f8ebd8167ab127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 22 Jan 2021 14:43:18 +0300 Subject: [PATCH 160/309] Update Part-10.md --- docs/en/Tutorials/Part-10.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/en/Tutorials/Part-10.md b/docs/en/Tutorials/Part-10.md index 84cce260c8..ec68dfe955 100644 --- a/docs/en/Tutorials/Part-10.md +++ b/docs/en/Tutorials/Part-10.md @@ -387,6 +387,12 @@ namespace Acme.BookStore.Books public override async Task> GetListAsync(PagedAndSortedResultRequestDto input) { + //Set a default sorting, if not provided + if (input.Sorting.IsNullOrWhiteSpace()) + { + input.Sorting = nameof(Book.Name); + } + //Get the IQueryable from the repository var queryable = await Repository.GetQueryableAsync(); @@ -489,8 +495,6 @@ namespace Acme.BookStore.Books public async override Task GetAsync(Guid id) { - await CheckGetPolicyAsync(); - var book = await Repository.GetAsync(id); var bookDto = ObjectMapper.Map(book); @@ -503,8 +507,6 @@ namespace Acme.BookStore.Books public async override Task> GetListAsync(PagedAndSortedResultRequestDto input) { - await CheckGetListPolicyAsync(); - //Set a default sorting, if not provided if (input.Sorting.IsNullOrWhiteSpace()) { From 3e8f0fdf5dc6198042632391ec307a89f5e4914b Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 22 Jan 2021 14:56:12 +0300 Subject: [PATCH 161/309] CmsKit - Refactor ContentAdminController --- .../Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs | 2 +- .../Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs | 2 +- .../Volo/CmsKit/Admin/Contents/ContentAdminController.cs | 4 ++-- .../Contents/ContentAdminAppService_Tests.cs | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs index fb5bf48349..52bd07aa86 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs @@ -14,6 +14,6 @@ namespace Volo.CmsKit.Admin.Contents ContentCreateDto, ContentUpdateDto> { - Task GetByEntityAsync(string entityType, string entityId); + Task GetAsync(string entityType, string entityId); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs index b1008f0086..300cf31181 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs @@ -57,7 +57,7 @@ namespace Volo.CmsKit.Admin.Contents return MapToGetOutputDto(entity); } - public async Task GetByEntityAsync( + public async Task GetAsync( [NotNull] string entityType, [NotNull] string entityId) { diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs index fa766a5cfb..4e3a56a8e2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Contents/ContentAdminController.cs @@ -63,9 +63,9 @@ namespace Volo.CmsKit.Admin.Contents [HttpGet] [Route("{entityType}/{entityId}")] [Authorize(CmsKitAdminPermissions.Contents.Default)] - public Task GetByEntityAsync(string entityType, string entityId) + public Task GetAsync(string entityType, string entityId) { - return ContentAdminAppService.GetByEntityAsync(entityType, entityId); + return ContentAdminAppService.GetAsync(entityType, entityId); } } } diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs index 1263014d83..5c7e5969f1 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Contents/ContentAdminAppService_Tests.cs @@ -132,7 +132,7 @@ namespace Volo.CmsKit.Contents [Fact] public async Task ShouldGetByEntityAsync() { - var entity = await _service.GetByEntityAsync(_data.Content_1_EntityType, _data.Content_1_EntityId); + var entity = await _service.GetAsync(_data.Content_1_EntityType, _data.Content_1_EntityId); entity.ShouldNotBeNull(); entity.EntityId.ShouldBe(_data.Content_1_EntityId); From 4cb221183225b7f0a40f97f25f16191e17d1ab74 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 22 Jan 2021 16:04:46 +0300 Subject: [PATCH 162/309] Cli module template: add alternative nuget.config path --- .../Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs index 69ec43e276..e26e4a6d25 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs @@ -77,6 +77,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Module private static void UpdateNuGetConfig(ProjectBuildContext context, List steps) { steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config")); + steps.Add(new UpdateNuGetConfigStep("/NuGet.Config")); } private static void ChangeConnectionString(ProjectBuildContext context, List steps) From 85e5c325254933104e3fcca51413e50c21b3b0e5 Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 22 Jan 2021 16:26:28 +0300 Subject: [PATCH 163/309] CmsKit - Handle nullability of TagDefinition DisplayName --- .../Volo/CmsKit/Admin/Tags/TagAdminAppService.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs index 54e2a7a530..eccdaf82c0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs @@ -78,7 +78,9 @@ namespace Volo.CmsKit.Admin.Tags return definitions .Select(s => - new TagDefinitionDto(s.EntityType, s.DisplayName.Localize(StringLocalizerFactory))) + new TagDefinitionDto( + s.EntityType, + s.DisplayName?.Localize(StringLocalizerFactory) ?? s.EntityType)) .ToList(); } } From c67b325d942ba34f0cf6b74bc768fd1bec161a7a Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 22 Jan 2021 16:31:34 +0300 Subject: [PATCH 164/309] CmsKit - Inherit PageDto from AuditedEntityDto --- .../Volo/CmsKit/Admin/Pages/PageDto.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs index e8750ce07b..3aebb76b51 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs @@ -3,7 +3,7 @@ using Volo.Abp.Application.Dtos; namespace Volo.CmsKit.Admin.Pages { - public class PageDto : EntityDto + public class PageDto : AuditedEntityDto { public string Title { get; set; } From 9fdd3b5f7b14a1b9ee89f76fa047bb9ffc31d32c Mon Sep 17 00:00:00 2001 From: enisn Date: Fri, 22 Jan 2021 16:58:11 +0300 Subject: [PATCH 165/309] CmsKit - Make protected TagEntityTypeDefiniton parameterless constructor --- .../{TagEntityTypeDefiniton1.cs => TagEntityTypeDefiniton.cs} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/{TagEntityTypeDefiniton1.cs => TagEntityTypeDefiniton.cs} (95%) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton1.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton.cs similarity index 95% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton1.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton.cs index 1193f5e68e..fee8815b97 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton1.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton.cs @@ -12,7 +12,7 @@ namespace Volo.CmsKit.Tags [CanBeNull] public virtual ILocalizableString DisplayName { get; } - public TagEntityTypeDefiniton() + protected TagEntityTypeDefiniton() { } From 4d868450ab0227104b5b85886398b6f8b7084662 Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Sat, 23 Jan 2021 14:16:15 +0300 Subject: [PATCH 166/309] Update POST.md --- .../POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md index 245a553e72..7a854291d5 100644 --- a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md +++ b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/POST.md @@ -106,7 +106,7 @@ Run the following command to create a new module named `OrganizationUnits`: npm run ng -- generate module organization-units --route organization-units --module app.module ``` -Then open the `src/route.provider.ts` and add a new route as an array element to add the organization units navigation link to the menu: +Then open the `src/route.provider.ts` and add a new route as an array element to add a navigation link labeled "Organization Units" to the menu: ```js //route.provider.ts From 7a0f140eab10fba286f461334a323e15f1658982 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 25 Jan 2021 17:59:18 +0800 Subject: [PATCH 167/309] Add ApiResourceProperty - KeyValuePair map config. Resolve #7373 --- .../Abp/IdentityServer/IdentityServerAutoMapperProfile.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs index af155190f3..697050e292 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs @@ -88,7 +88,6 @@ namespace Volo.Abp.IdentityServer .ForMember(dest => dest.Type, opt => opt.Condition(srs => srs != null)) .ReverseMap(); - CreateMap(); CreateMap(); } @@ -104,6 +103,9 @@ namespace Volo.Abp.IdentityServer .ReverseMap() .ForMember(dest => dest.Scope, opt => opt.MapFrom(src => src)); + CreateMap>() + .ReverseMap(); + CreateMap(); } From e07056dbe4b77ba3fd16566124795e568335baf2 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Mon, 25 Jan 2021 13:28:27 +0300 Subject: [PATCH 168/309] update angular version of templates to latest --- npm/ng-packs/package.json | 30 +- npm/ng-packs/yarn.lock | 1475 ++++++++++++++----------- templates/app/angular/package.json | 30 +- templates/module/angular/package.json | 28 +- 4 files changed, 868 insertions(+), 695 deletions(-) diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 560d4d2937..394cdac655 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -37,21 +37,21 @@ "@abp/ng.theme.shared": "~4.2.0-rc.2", "@abp/utils": "^4.2.0-rc.2", "@angular-builders/jest": "^10.0.0", - "@angular-devkit/build-angular": "~0.1100.0", + "@angular-devkit/build-angular": "~0.1101.0", "@angular-devkit/build-ng-packagr": "~0.1001.2", "@angular-devkit/schematics-cli": "^0.1001.1", - "@angular/animations": "~11.0.0", - "@angular/cli": "~11.0.0", - "@angular/common": "~11.0.0", - "@angular/compiler": "11.0.0", - "@angular/compiler-cli": "11.0.0", - "@angular/core": "~11.0.0", - "@angular/forms": "~11.0.0", - "@angular/language-service": "~11.0.0", - "@angular/localize": "~11.0.0", - "@angular/platform-browser": "~11.0.0", - "@angular/platform-browser-dynamic": "~11.0.0", - "@angular/router": "~11.0.0", + "@angular/animations": "~11.1.0", + "@angular/cli": "~11.1.0", + "@angular/common": "~11.1.0", + "@angular/compiler": "11.1.0", + "@angular/compiler-cli": "11.1.0", + "@angular/core": "~11.1.0", + "@angular/forms": "~11.1.0", + "@angular/language-service": "~11.1.0", + "@angular/localize": "~11.1.0", + "@angular/platform-browser": "~11.1.0", + "@angular/platform-browser-dynamic": "~11.1.0", + "@angular/router": "~11.1.0", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngneat/inspector": "^1.0.0", @@ -91,7 +91,7 @@ "ts-toolbelt": "6.15.4", "tsickle": "^0.39.1", "tslint": "~6.1.0", - "typescript": "~4.0.3", + "typescript": "~4.1.3", "zone.js": "~0.10.2" }, "dependencies": { @@ -102,4 +102,4 @@ "path": "cz-conventional-changelog" } } -} +} \ No newline at end of file diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index 94635e72ca..c87d4f36e2 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@abp/ng.core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.1.tgz#14bb772ea184153c5cb3fe0da538ff921892330a" - integrity sha512-2qyoGaU+eKwULenCG3sEhlztxA1vhECCs1gkGzsxIpZquFQCSdpRGAZNM4EUbLpBASXAYU/CGDWBgqYIIK/8Kw== +"@abp/ng.core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.2.tgz#d5ae888cd6beba0ab7cc92a9759e8f3b4095f5dc" + integrity sha512-uPsxulybSdGyBpR08d9XR3i/YdG/ILvo1Gzyz2wTOG/gay12hh/p83S50kWeBuPkh8uOiT3ezO9BY/GPVrRI+Q== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" "@angular/localize" "~10.0.10" "@ngxs/store" "^3.7.0" angular-oauth2-oidc "^10.0.0" @@ -17,35 +17,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.1.tgz#08f85b70ea4d57e92a1e011e88cf1be8e6592c36" - integrity sha512-exZyx28Njt7x+70n1Okk8CGCAQf479TGWziMnZ6HaOoDTFxcDnk0jT62aO3AALMFr2cUmGUxxyWFo4Tan2CwDA== +"@abp/ng.feature-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.2.tgz#c0273a07f73d95e7133ec90c1facd5de51121430" + integrity sha512-sGQfh0plQGtm3qCGYs1qmCtWt2EOwVgRyUcNd2ipzorH55S5/dX7or9dYKZofPz7GF55FohbfpxBqnKnBo0WOQ== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.identity@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.1.tgz#9fdbafb53918ff36e64e1fbb685098b40e55acfd" - integrity sha512-/ftw1z6mEnmg//lWUns8r7GLVFBbRKvZX9sJ9gProwR/E6fnRuifv/q0p4Nsq+eOgudnQb/RlVg1JyTIDBt6YA== +"@abp/ng.identity@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.2.tgz#fe20f05b60980561218f8357df55c00d85af8eb2" + integrity sha512-zrY5oPhDq8lPcvDvxYM/hS5CtRj71Zlu04Slz4f+ljlStWHBOBZx1VVBl4OQvbDGxDGC04Pf2Sj3PtppEU28gw== dependencies: - "@abp/ng.permission-management" "~4.2.0-rc.1" - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.permission-management" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.permission-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.1.tgz#f4aaf505056d0238681ea32b6c7079a019120b39" - integrity sha512-9w3FZ4ztvoXRAT9FdhIYUnpXmvagDDPk9X9xKNT8Md5TX4ivynSs3pBHC2baqhR1Xc2FHHEbfVjN+FFMmDQRlg== +"@abp/ng.permission-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.2.tgz#771285283bf3c82dcdd6a07ef444ada73b918d4a" + integrity sha512-FSMSiXGhalTMZIJzQCS6fYRdFH2eVmk73aPeFn1NnMxNdhzCXfbsHpX/lVes+UMw7CddEEgriv0GQYi8dYMnDw== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.schematics@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.1.tgz#b62dcc2bd65e05810b46d40e46c4b871ed729196" - integrity sha512-2vcMuyxVziZDaFQbz1/DhaIErv6yVJMZILVOzbk1zCgIFtvoXIY/+XkHfChzUAeFkEe/rKGdZsXIG6LHsg7RuQ== +"@abp/ng.schematics@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.2.tgz#93774148f57964c72498fa060c04eb99f6c3987d" + integrity sha512-Ul/+nPTnGpNhi0NMfeYY9fDnsTVzVxP4iSIdqXevPxugeY6pqCefC84i0XHdkVsxIi1UR7VP84tqE9SCv7KnCw== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -53,37 +53,37 @@ jsonc-parser "^2.3.0" typescript "~3.9.2" -"@abp/ng.setting-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.1.tgz#74f9577193554997a47fef8c0f4e4d4b3228f6dc" - integrity sha512-T18tkvyIsER22fGWh0KRmxobhuFxuxbDB8vroV0k0/Zd4ULDrTuSoKXgWa/TiHe7RuO/tWKv0EEf/T4xaiWBGw== +"@abp/ng.setting-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.2.tgz#a7c5bb30e881f8efe702fcc8f3b95bf442b0289a" + integrity sha512-5sOk19EzFBIIdeTAx6EEmgh2pYOj5oRXq6uuAOmGVzZiX7arFoyqvTR4OAypIBQdMlZ0Iv4EApvJLD6/1IIrqw== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.tenant-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.1.tgz#94b8a0ff7987b8e7602be310b3f91742e1d6b0e8" - integrity sha512-SO3cxFCY6p0i/BywlHoAFeMEtJ0w9Q61jqW/1T8jQR8HDXNDeMeHdiUsAzjv9ILggy7OPFmGZQ8pcniwK3IQpQ== +"@abp/ng.tenant-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.2.tgz#dc5c019f16ac679589dbeac85317628ec6682096" + integrity sha512-O2Lb0Fe+L11yC69DAcgX4hY6KwI9ojaDnPTFxGtvvTjaUVKnxxchQrJwP0ITsudZe5cWKbF7cME3b3uH4jorBA== dependencies: - "@abp/ng.feature-management" "~4.2.0-rc.1" - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.feature-management" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.theme.basic@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.1.tgz#dbc1a47e7d311fc7ca5d212d6736fde49f4586f2" - integrity sha512-3fMeIbz4cotGqGty9QWyw4vrhkYJgLqgfunw+F+YxuLaXFq2JljlfZvzwDCw7EZ53N5atHT/um5RVAveWvKKmQ== +"@abp/ng.theme.basic@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.2.tgz#83c6ae4d0d95fc0271386a02c2f22531325c3b26" + integrity sha512-VGEDWIIRnmHPrhcjIhhBcqILI8NUsuVIX7K5XfJUuf3WmEzH9Ru9Yyi81AYZNuBNXNAjyjRH/nIxwljnHxO8bA== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.1.tgz#e3edecefd2a332740e80a7f6c6dbfa06f7580c89" - integrity sha512-/EOHL9WmtxJ6xgzUbNjc50p9oStycmpsz9Z/RZTffaUXUnVSDgqeArvBuPTGTuMJVipnbVfpYjC98eOixj5Ong== +"@abp/ng.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.2.tgz#935ca3aa32d8ced85d277139ce790f3cc3faa184" + integrity sha512-UjYPd6KL3bO9PN9XEmBlKQSc0C3EJsLHhifoV+rgtqAHvortOygSHHknOthRA4PN+cg2/PiuWA5gpvMHP1K7Ow== dependencies: - "@abp/ng.core" "~4.2.0-rc.1" + "@abp/ng.core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.14.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.13" @@ -92,13 +92,6 @@ chart.js "^2.9.3" tslib "^2.0.0" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== - dependencies: - just-compare "^1.3.0" - "@abp/utils@^4.2.0-rc.1": version "4.2.0-rc.1" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" @@ -106,6 +99,13 @@ dependencies: just-compare "^1.3.0" +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== + dependencies: + just-compare "^1.3.0" + "@angular-builders/jest@^10.0.0": version "10.0.1" resolved "https://registry.yarnpkg.com/@angular-builders/jest/-/jest-10.0.1.tgz#a1a6fb5d11b5d54c051bdaa2012b5f046371560c" @@ -124,12 +124,12 @@ "@angular-devkit/core" "10.1.7" rxjs "6.6.2" -"@angular-devkit/architect@0.1100.6": - version "0.1100.6" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1100.6.tgz#ce90ffb78d1d945cafc339d4cfc63b3582cb8e6a" - integrity sha512-4O+cg3AimI2bNAxxdu5NrqSf4Oa8r8xL0+G2Ycd3jLoFv0h0ecJiNKEG5F6IpTprb4aexZD6pcxBJCqQ8MmzWQ== +"@angular-devkit/architect@0.1101.0": + version "0.1101.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1101.0.tgz#bf9649e43f17c06c6c9bde7fc9ea21603a949e9f" + integrity sha512-Lj1STrxPXvvZVIk9RSTOPEiJeE/PGbBSclz12u92F3DsmbhcCxpiZ8AU8bUvJJ8gsZhGRB0BjPN0gCSWr9Po7w== dependencies: - "@angular-devkit/core" "11.0.6" + "@angular-devkit/core" "11.1.0" rxjs "6.6.3" "@angular-devkit/architect@>=0.1000.0 < 0.1100.0": @@ -140,79 +140,80 @@ "@angular-devkit/core" "10.2.1" rxjs "6.6.2" -"@angular-devkit/build-angular@~0.1100.0": - version "0.1100.6" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.1100.6.tgz#4aa7635ab8fc1c6435b2b93954c08f2a7d7a8dd9" - integrity sha512-HcqsWiSIUxExGg3HRQScLOmF+ckVkCKolfpPcNOCCpBYxH/i8n4wDGLBP5Rtxky+0Qz+3nnAaFIpNb9p9aUmbg== - dependencies: - "@angular-devkit/architect" "0.1100.6" - "@angular-devkit/build-optimizer" "0.1100.6" - "@angular-devkit/build-webpack" "0.1100.6" - "@angular-devkit/core" "11.0.6" - "@babel/core" "7.12.3" - "@babel/generator" "7.12.1" - "@babel/plugin-transform-runtime" "7.12.1" - "@babel/preset-env" "7.12.1" - "@babel/runtime" "7.12.1" - "@babel/template" "7.10.4" +"@angular-devkit/build-angular@~0.1101.0": + version "0.1101.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.1101.0.tgz#71a0f424c8ba5a1eb12012cb6cde30482afa8c7c" + integrity sha512-oTCdHHyP/Z1cPnvJSHsQFD1FbLHI9AV7wYbDQ2UHpQFXg7OFzRWSro2aG54FMe6nD+gbXhQUmRryRsiNkCG71A== + dependencies: + "@angular-devkit/architect" "0.1101.0" + "@angular-devkit/build-optimizer" "0.1101.0" + "@angular-devkit/build-webpack" "0.1101.0" + "@angular-devkit/core" "11.1.0" + "@babel/core" "7.12.10" + "@babel/generator" "7.12.11" + "@babel/plugin-transform-runtime" "7.12.10" + "@babel/preset-env" "7.12.11" + "@babel/runtime" "7.12.5" + "@babel/template" "7.12.7" "@jsdevtools/coverage-istanbul-loader" "3.0.5" - "@ngtools/webpack" "11.0.6" + "@ngtools/webpack" "11.1.0" ansi-colors "4.1.1" - autoprefixer "9.8.6" - babel-loader "8.1.0" + autoprefixer "10.2.1" + babel-loader "8.2.2" browserslist "^4.9.1" cacache "15.0.5" caniuse-lite "^1.0.30001032" - circular-dependency-plugin "5.2.0" - copy-webpack-plugin "6.2.1" - core-js "3.6.5" - css-loader "4.3.0" + circular-dependency-plugin "5.2.2" + copy-webpack-plugin "6.3.2" + core-js "3.8.2" + critters "0.0.6" + css-loader "5.0.1" cssnano "4.1.10" - file-loader "6.1.1" + file-loader "6.2.0" find-cache-dir "3.3.1" glob "7.1.6" inquirer "7.3.3" - jest-worker "26.5.0" + jest-worker "26.6.2" karma-source-map-support "1.4.0" - less "3.12.2" - less-loader "7.0.2" - license-webpack-plugin "2.3.1" + less "4.1.0" + less-loader "7.2.1" + license-webpack-plugin "2.3.11" loader-utils "2.0.0" - mini-css-extract-plugin "1.2.1" + mini-css-extract-plugin "1.3.3" minimatch "3.0.4" - open "7.3.0" - ora "5.1.0" + open "7.3.1" + ora "5.2.0" parse5-html-rewriting-stream "6.0.1" pnp-webpack-plugin "1.6.4" - postcss "7.0.32" - postcss-import "12.0.1" - postcss-loader "4.0.4" + postcss "8.2.4" + postcss-import "14.0.0" + postcss-loader "4.1.0" raw-loader "4.0.2" regenerator-runtime "0.13.7" resolve-url-loader "3.1.2" rimraf "3.0.2" - rollup "2.32.1" + rollup "2.36.1" rxjs "6.6.3" - sass "1.27.0" - sass-loader "10.0.5" - semver "7.3.2" + sass "1.32.4" + sass-loader "10.1.1" + semver "7.3.4" source-map "0.7.3" - source-map-loader "1.1.2" + source-map-loader "1.1.3" source-map-support "0.5.19" speed-measure-webpack-plugin "1.3.3" style-loader "2.0.0" stylus "0.54.8" - stylus-loader "4.3.1" - terser "5.3.7" + stylus-loader "4.3.2" + terser "5.5.1" terser-webpack-plugin "4.2.3" text-table "0.2.0" tree-kill "1.2.2" webpack "4.44.2" webpack-dev-middleware "3.7.2" - webpack-dev-server "3.11.0" - webpack-merge "5.2.0" - webpack-sources "2.0.1" - webpack-subresource-integrity "1.5.1" + webpack-dev-server "3.11.1" + webpack-merge "5.7.3" + webpack-sources "2.2.0" + webpack-subresource-integrity "1.5.2" worker-plugin "5.0.0" "@angular-devkit/build-ng-packagr@~0.1001.2": @@ -223,24 +224,24 @@ "@angular-devkit/architect" "0.1001.7" rxjs "6.6.2" -"@angular-devkit/build-optimizer@0.1100.6": - version "0.1100.6" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1100.6.tgz#4d6712ae75eeae71d74fd161a0a18c08402dc527" - integrity sha512-Qkq7n6510N+nXmfZqpqpI0I6Td+b+06RRNmS7KftSNJntU1z5QYh4FggwlthZ5P0QUT92cnBQsnT8OgYqGnwbg== +"@angular-devkit/build-optimizer@0.1101.0": + version "0.1101.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1101.0.tgz#92f949a4384105eccc87da8fcb2dd40590e48ab0" + integrity sha512-0hkb7fVBDOMBmLA0NC394PAAZmQ1xo12UeiDwfNN2LF9pYdASVj/OSCcZ3yEfnxzBZm5qeNLJG2c4l2xB5NFPQ== dependencies: loader-utils "2.0.0" source-map "0.7.3" - tslib "2.0.3" - typescript "4.0.5" - webpack-sources "2.0.1" + tslib "2.1.0" + typescript "4.1.3" + webpack-sources "2.2.0" -"@angular-devkit/build-webpack@0.1100.6": - version "0.1100.6" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1100.6.tgz#301caf71bebed6e841cb15fb3af5147c3b2d9c97" - integrity sha512-kK0FlpYJHP25o1yzIGHQqIvO5kp+p6V5OwGpD2GGRZLlJqd3WdjY5DxnyZoX3/IofO6KsTnmm76fzTRqc62z/Q== +"@angular-devkit/build-webpack@0.1101.0": + version "0.1101.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1101.0.tgz#1c9a406076f0f568e6dbcccec142ea0adab88b7f" + integrity sha512-oIjRo/zRNqWQbKH/N/S8FZz6u1ADnX9IDML5mu8IucquGnZIqQVrrKeBnldtHQsIbN3TYYskO9xr9OS/W6VHqg== dependencies: - "@angular-devkit/architect" "0.1100.6" - "@angular-devkit/core" "11.0.6" + "@angular-devkit/architect" "0.1101.0" + "@angular-devkit/core" "11.1.0" rxjs "6.6.3" "@angular-devkit/core@10.0.8": @@ -287,6 +288,17 @@ rxjs "6.6.3" source-map "0.7.3" +"@angular-devkit/core@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-11.1.0.tgz#dec7967df922414f9935365f5ff7938ef6e54a52" + integrity sha512-O2oIcqpQKGvYJH88d/NCgLYZGc9laA1eo2d1s0FH1Udu4c2L+bAsviQqtTKNmzyaqODHrlkt+eKx7uakdwWtnQ== + dependencies: + ajv "6.12.6" + fast-json-stable-stringify "2.1.0" + magic-string "0.25.7" + rxjs "6.6.3" + source-map "0.7.3" + "@angular-devkit/core@8.3.29", "@angular-devkit/core@^8.0.3": version "8.3.29" resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-8.3.29.tgz#3477edd6458653f83e6d78684b100c1bef81382f" @@ -329,13 +341,13 @@ ora "5.0.0" rxjs "6.6.2" -"@angular-devkit/schematics@11.0.6", "@angular-devkit/schematics@~11.0.2": - version "11.0.6" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.0.6.tgz#06631190cb22609462597cd6659080fc3313582a" - integrity sha512-hCyu/SSSiC6dKl/NxdWctknIrBqKR6pRe7DMArWowrZX6P9oi36LpKEFnKutE8+tXjsOqQj8XMBq9L64sXZWqg== +"@angular-devkit/schematics@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.1.0.tgz#451ed0a5c4fe9ac3cf367f4ecf7adac15430c2c8" + integrity sha512-6qfR5w1jyk8MC+5Tfimz+Czsq3WlsVoB57dpxSZfhGGsv1Vxc8Q41y5f3BrAyEqHYjcH7NtaoLQoJjtra5KaAg== dependencies: - "@angular-devkit/core" "11.0.6" - ora "5.1.0" + "@angular-devkit/core" "11.1.0" + ora "5.2.0" rxjs "6.6.3" "@angular-devkit/schematics@^8.0.6": @@ -346,10 +358,19 @@ "@angular-devkit/core" "8.3.29" rxjs "6.4.0" -"@angular/animations@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-11.0.7.tgz#d71ebb581da4e2805df1b35c75a331192063846a" - integrity sha512-P3cluDGIsaj7vqvqIGW7xFCIXWa1lJDsHsmY3Fexk+ZVCncokftp5ZUANb2+DwOD3BPgd/WjBdXVjwzFQFsoVA== +"@angular-devkit/schematics@~11.0.2": + version "11.0.6" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.0.6.tgz#06631190cb22609462597cd6659080fc3313582a" + integrity sha512-hCyu/SSSiC6dKl/NxdWctknIrBqKR6pRe7DMArWowrZX6P9oi36LpKEFnKutE8+tXjsOqQj8XMBq9L64sXZWqg== + dependencies: + "@angular-devkit/core" "11.0.6" + ora "5.1.0" + rxjs "6.6.3" + +"@angular/animations@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-11.1.0.tgz#d71c6b11dc79bafdf927e69f6222f3899aa911d8" + integrity sha512-VgpknW33WJiqnNtQwNVWrpiSxkgoChIZLpYLlijSTvFwZOHiraFKApohaW8X61mwL0HuK1RB7Z36B+Q11cw3aw== dependencies: tslib "^2.0.0" @@ -362,43 +383,44 @@ optionalDependencies: parse5 "^5.0.0" -"@angular/cli@~11.0.0": - version "11.0.6" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-11.0.6.tgz#8d65d3ad3841aabe23ff38a41fa6c4f38dd12f66" - integrity sha512-bwrXXyU23HjUlFl0CNCU+XMGa/enooqpMLcTAA15StVpKFHyaA4c57il/aqu+1IuB+zR6rGDzhAABuvRcHd+mQ== +"@angular/cli@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-11.1.0.tgz#caf11ebe9c93ca68d99721829beda5c6138cfa4d" + integrity sha512-9QirgfU7+scdi2UASSlEdqkp1Jva3IiesIUIuxeF7scrFCnk/rZIJ9iSvPJ9qUXYpFYyxpX0aPEBvM/HDExeFQ== dependencies: - "@angular-devkit/architect" "0.1100.6" - "@angular-devkit/core" "11.0.6" - "@angular-devkit/schematics" "11.0.6" - "@schematics/angular" "11.0.6" - "@schematics/update" "0.1100.6" + "@angular-devkit/architect" "0.1101.0" + "@angular-devkit/core" "11.1.0" + "@angular-devkit/schematics" "11.1.0" + "@schematics/angular" "11.1.0" + "@schematics/update" "0.1101.0" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.1" - debug "4.2.0" - ini "1.3.6" + debug "4.3.1" + ini "2.0.0" inquirer "7.3.3" + jsonc-parser "3.0.0" npm-package-arg "8.1.0" npm-pick-manifest "6.1.0" - open "7.3.0" - pacote "9.5.12" - resolve "1.18.1" + open "7.3.1" + pacote "11.1.14" + resolve "1.19.0" rimraf "3.0.2" - semver "7.3.2" - symbol-observable "2.0.3" + semver "7.3.4" + symbol-observable "3.0.0" universal-analytics "0.4.23" - uuid "8.3.1" + uuid "8.3.2" -"@angular/common@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-11.0.7.tgz#bc76452161bc0728563bbf05fe10cac492dcfdad" - integrity sha512-9VuT9qrSP7Q91Wp276DDieCIZiTBrpLNoJzK/RygQShTymCVPg4Dsl3tQUKaHBPx9MexeqRG/HjN02DVpeqtsA== +"@angular/common@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-11.1.0.tgz#c1163981c79e34c72ab0bbc385edf4c30abcc98e" + integrity sha512-jR9fnhzvvpdilyhPnyRlRRFRJ9vf/OhUFJrL42Knaj7uknmjgeu168JhwVdq6uj+v1208suXW+nOXhKNIpH38Q== dependencies: tslib "^2.0.0" -"@angular/compiler-cli@11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-11.0.0.tgz#ff4c2c16284a31a4f8ff1d224f593f64a1458234" - integrity sha512-zrd/cU9syZ8XuQ3ItfIGaKDn1ZBCWyiqdLVRH9VDmyNqQFiCc/VWQ9Th9z8qpLptgdpzE9+lKFgeZJTDtbcveQ== +"@angular/compiler-cli@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-11.1.0.tgz#111f420a9ab9274947f805b9f41ddce8f24070ea" + integrity sha512-PLeVrqBpn43G7DeBkDQqH38Y+VMlCIbxiP4Vv1rFAmKVNIm9J8m8jdC3EQSTXVV+L3oDCVP5/ERSCZ8Jqx6UoA== dependencies: "@babel/core" "^7.8.6" "@babel/types" "^7.8.6" @@ -414,12 +436,12 @@ source-map "^0.6.1" sourcemap-codec "^1.4.8" tslib "^2.0.0" - yargs "15.3.0" + yargs "^16.1.1" -"@angular/compiler@11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-11.0.0.tgz#b49997d0130e7c8cfe84fa73e5610892f4a772af" - integrity sha512-I7wVhdqvhtBTQTtW61z0lwPb1LiQQ0NOwjsbfN5sAc7/uwxw7em+Kyb/XJgBwgaTKtAL8bZEzdoQGLdsSKQF2g== +"@angular/compiler@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-11.1.0.tgz#0e2e18fe0cb64ec696986f12f80debcbdccc8d20" + integrity sha512-XW+McH/RVjpLtNkft6UYZQbjhXwX/hvLgUa9jGlTuIFM5o7W4XRPnq5sfn3+QvzdROF0j8S5sy47mGVNQOYMNg== dependencies: tslib "^2.0.0" @@ -433,24 +455,24 @@ resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e" integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w== -"@angular/core@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-11.0.7.tgz#4d81b1a49d3d4aaeb0ef9908695a3cc06707cfd9" - integrity sha512-Kj5uRZoK5+xfMTjkP3tw8oIF5hKTnoF9Bwh5m9GUKqg1wHVKOJcT5JBIEMc8qPyiFgALREA01reIzQdGMjX36A== +"@angular/core@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-11.1.0.tgz#724c13c53e4afb6d4ef4d9236d50f0be956f57ca" + integrity sha512-VhiRWZEj9Q/OvbbSDcgQ4f53oVcMnDB4uNL8xaWnK0Sb3lZA4aQW3VOlROBITS5n2g7D1zRhvUzdfzVuyuMIaQ== dependencies: tslib "^2.0.0" -"@angular/forms@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-11.0.7.tgz#958558b92d2e524e08b447c16b17b2ae42717657" - integrity sha512-+3A+SciMyHTdUwkKUz4XzC1DSYexQEbFLe0PKQIFSFOROmbssjnWJv7yO2HbzCpGa7oGKPYNlE5twYWyLxpvFg== +"@angular/forms@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-11.1.0.tgz#6ab2e81df80dc9a9d0898d2a57270de5d9eb30e5" + integrity sha512-pHwLPGDHk3JOoK2nA3wJoDCJF2bn8NmVqv8Lh5Pd8NYqLFRIIDiHSjNkqr1eM0JUmExqfU5tCrLrPz4YChdYBA== dependencies: tslib "^2.0.0" -"@angular/language-service@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-11.0.7.tgz#78a912eaf025c2d01181dc72ff4fb99ca598ae49" - integrity sha512-1IiJNwy/phjpYfqLVlhOp4Gr/A89joydwqPB7Nf7hbhl3xFnT98GOp/nsoZCwMBKotXYNk93m025LbJ++augfQ== +"@angular/language-service@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-11.1.0.tgz#d5a435f10ee8b79ceaf32352baaa104c089171c7" + integrity sha512-7NQcwNHgUGOdqQsyp1Xw/WFbYvC4WA+Et2DJJvkitmg2ejndtm45FALUu1Z2X6bbKzdJOuNGU5vNh1ZJ/IyGRQ== "@angular/localize@~10.0.10": version "10.0.14" @@ -461,33 +483,33 @@ glob "7.1.2" yargs "15.3.0" -"@angular/localize@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-11.0.7.tgz#0335f1fc4852d6d36d99d239ef946645b34c78fb" - integrity sha512-NDs08oAELLn7tA/hHLuW8APULg25C7iINYTA168QzOdFTEsJ2MoLf3SiVQExUV65h3MnB24xNbhaNodmBKUNPg== +"@angular/localize@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-11.1.0.tgz#96acfd2078387bb7dca10b88275e1f5263f6da33" + integrity sha512-hF0c+EeorSWiGTB+rzQn+KSewLb7LTyCN4IjezFF05pIAwyw1cLN+3fhiTmJ/KNp8PFpR7dbW3gPwUKkLwn3rg== dependencies: "@babel/core" "7.8.3" glob "7.1.2" yargs "^16.1.1" -"@angular/platform-browser-dynamic@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.0.7.tgz#8ee8c72799a96eee3967596ae52b69ee90ac3df0" - integrity sha512-pUXCum1Z2DZV/34WR4Vfmkc5nWxbmVdwAA9pXbAarwAYqHIqOzX8rpRaHsuHBAR+SK+VH+xjproeLgsVfV8FSA== +"@angular/platform-browser-dynamic@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.1.0.tgz#dc0d5a669c3cbe40b9f7442fca9c5335fc735f80" + integrity sha512-1MFRvjbkogtEQO/bWkNm2xOIl8CeIJuRWoXYE00VKShmq4o+2kTHBRQD0NydPQYwqo9o4XpgmIrJXHgwp3S2Qw== dependencies: tslib "^2.0.0" -"@angular/platform-browser@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-11.0.7.tgz#1475540b38d1e2d19dbd9242e0a9ddf6d9bf7873" - integrity sha512-W8Wt8jMUjcbpqGtqrNWAj0p7CLdjOxgVlbrgBXTbaoqdchvXH85YzGr7ohA3MuE61H90OcVK9OhfYQk5o6joSg== +"@angular/platform-browser@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-11.1.0.tgz#4c538d0bffdac02d8529bdb6247ae06a7685c3bf" + integrity sha512-wdinsRiKC5mGWWSA5RqferFvpe3Wr9YIVK2Gaj50DlJGOJ/8yWvux3BYjsCd5B44PC8+6dxUEZMgvA6CmhXgpw== dependencies: tslib "^2.0.0" -"@angular/router@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-11.0.7.tgz#c5d0cacb927018eb495a4538ab1f81c088f5b7f1" - integrity sha512-oh/MOPRSOCLRPsM/3CVUNYZ3pz3g+CzLOk5Vad/zFJmnGwjA/lQGJo2pl7VXVq3RF7MieaHlDWG5TexGlXAP5w== +"@angular/router@~11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-11.1.0.tgz#62523ab838cf37ce911edaf3bfd3e2a4edb11675" + integrity sha512-jsGuyt/QNxtN2eHrkk6lqRnTf3NeuaxBWJSrwuoqrjLCZH2elg3r1GXDTII1Ih3E1zIwuOlK59O78dXW2eQVBg== dependencies: tslib "^2.0.0" @@ -513,30 +535,29 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": +"@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== -"@babel/core@7.12.3": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" - integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== +"@babel/core@7.12.10", "@babel/core@^7.1.0", "@babel/core@^7.7.5", "@babel/core@^7.8.6": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.1" + "@babel/generator" "^7.12.10" "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.1" - "@babel/parser" "^7.12.3" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" json5 "^2.1.2" lodash "^4.17.19" - resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" @@ -561,37 +582,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.7.5", "@babel/core@^7.8.6": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" - integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.10" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.10" - "@babel/types" "^7.12.10" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" - integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== - dependencies: - "@babel/types" "^7.12.1" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11", "@babel/generator@^7.8.3": +"@babel/generator@7.12.11", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11", "@babel/generator@^7.8.3": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== @@ -615,7 +606,7 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.12.1": +"@babel/helper-compilation-targets@^7.12.5": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== @@ -690,7 +681,7 @@ dependencies: "@babel/types" "^7.12.7" -"@babel/helper-module-imports@^7.12.1": +"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== @@ -769,7 +760,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== -"@babel/helper-validator-option@^7.12.1": +"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f" integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== @@ -784,7 +775,7 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.12.1", "@babel/helpers@^7.12.5", "@babel/helpers@^7.8.3": +"@babel/helpers@^7.12.5", "@babel/helpers@^7.8.3": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== @@ -802,7 +793,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7", "@babel/parser@^7.8.3": +"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.8.3": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== @@ -864,7 +855,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.12.1": +"@babel/plugin-proposal-numeric-separator@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== @@ -889,7 +880,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.12.1": +"@babel/plugin-proposal-optional-chaining@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== @@ -1035,7 +1026,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.12.1": +"@babel/plugin-transform-block-scoping@^7.12.11": version "7.12.12" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca" integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ== @@ -1210,14 +1201,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-runtime@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" - integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== +"@babel/plugin-transform-runtime@7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz#af0fded4e846c4b37078e8e5d06deac6cd848562" + integrity sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA== dependencies: - "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" semver "^5.5.1" "@babel/plugin-transform-shorthand-properties@^7.12.1": @@ -1235,7 +1225,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.12.1": +"@babel/plugin-transform-sticky-regex@^7.12.7": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== @@ -1249,7 +1239,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.12.1": +"@babel/plugin-transform-typeof-symbol@^7.12.10": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b" integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA== @@ -1271,16 +1261,16 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" - integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== +"@babel/preset-env@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9" + integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw== dependencies: - "@babel/compat-data" "^7.12.1" - "@babel/helper-compilation-targets" "^7.12.1" - "@babel/helper-module-imports" "^7.12.1" + "@babel/compat-data" "^7.12.7" + "@babel/helper-compilation-targets" "^7.12.5" + "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.1" + "@babel/helper-validator-option" "^7.12.11" "@babel/plugin-proposal-async-generator-functions" "^7.12.1" "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-dynamic-import" "^7.12.1" @@ -1288,10 +1278,10 @@ "@babel/plugin-proposal-json-strings" "^7.12.1" "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.7" "@babel/plugin-proposal-object-rest-spread" "^7.12.1" "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" "@babel/plugin-proposal-private-methods" "^7.12.1" "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" @@ -1309,7 +1299,7 @@ "@babel/plugin-transform-arrow-functions" "^7.12.1" "@babel/plugin-transform-async-to-generator" "^7.12.1" "@babel/plugin-transform-block-scoped-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.11" "@babel/plugin-transform-classes" "^7.12.1" "@babel/plugin-transform-computed-properties" "^7.12.1" "@babel/plugin-transform-destructuring" "^7.12.1" @@ -1333,14 +1323,14 @@ "@babel/plugin-transform-reserved-words" "^7.12.1" "@babel/plugin-transform-shorthand-properties" "^7.12.1" "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.7" "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.10" "@babel/plugin-transform-unicode-escapes" "^7.12.1" "@babel/plugin-transform-unicode-regex" "^7.12.1" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.1" - core-js-compat "^3.6.2" + "@babel/types" "^7.12.11" + core-js-compat "^3.8.0" semver "^5.5.0" "@babel/preset-modules@^0.1.3": @@ -1354,30 +1344,14 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" - integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": +"@babel/runtime@7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3", "@babel/template@^7.8.3": +"@babel/template@7.12.7", "@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3", "@babel/template@^7.8.3": version "7.12.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== @@ -2473,14 +2447,14 @@ jquery "3.5.0" replace-in-file "^4.1.3" -"@ngtools/webpack@11.0.6": - version "11.0.6" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-11.0.6.tgz#1a1d7775022e7e6263f8d9ee2872d995163b3fc0" - integrity sha512-vf5YNEpXWRa0fKC/BRq5sVVj2WnEqW8jn14YQRHwVt5ppUeyu8IKUF69p6W1MwZMgMqMaw/vPQ8LI5cFbyf3uw== +"@ngtools/webpack@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-11.1.0.tgz#fceca46969e3963c17dc0f42bba92a93c4296d6d" + integrity sha512-6KRuSCwDEtwht3mdo9jps01u00675sv9lovlIQ9eIluPq32GM0BweDtxpS/CPgON/Hp9I5Aqtb3z2obnU3EQ7Q== dependencies: - "@angular-devkit/core" "11.0.6" - enhanced-resolve "5.3.1" - webpack-sources "2.0.1" + "@angular-devkit/core" "11.1.0" + enhanced-resolve "5.6.0" + webpack-sources "2.2.0" "@ngx-validate/core@^0.0.13": version "0.0.13" @@ -2536,6 +2510,36 @@ "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" +"@npmcli/ci-detect@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" + integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== + +"@npmcli/git@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.0.4.tgz#725f5e32864f3849420e84baf130e426a707cbb7" + integrity sha512-OJZCmJ9DNn1cz9HPXXsPmUBnqaArot3CGYo63CyajHQk+g87rPXVOJByGsskQJhPsUUEXJcsZ2Q6bWd2jSwnBA== + dependencies: + "@npmcli/promise-spawn" "^1.1.0" + lru-cache "^6.0.0" + mkdirp "^1.0.3" + npm-pick-manifest "^6.0.0" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + semver "^7.3.2" + unique-filename "^1.1.1" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.5.tgz#cc78565e55d9f14d46acf46a96f70934e516fa3d" + integrity sha512-aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + read-package-json-fast "^1.1.1" + readdir-scoped-modules "^1.1.0" + "@npmcli/move-file@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" @@ -2543,6 +2547,30 @@ dependencies: mkdirp "^1.0.4" +"@npmcli/node-gyp@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.1.tgz#dedc4ea9b3c6ef207081ebcd82c053ef60edc478" + integrity sha512-pBqoKPWmuk9iaEcXlLBVRIA6I1kG9JiICU+sG0NuD6NAR461F+02elHJS4WkQxHW2W5rnsfvP/ClKwmsZ9RaaA== + +"@npmcli/promise-spawn@^1.1.0", "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.0": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== + dependencies: + infer-owner "^1.0.4" + +"@npmcli/run-script@^1.3.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.1.tgz#729c5ac7293f250b654504d263952703af6da39c" + integrity sha512-G8c86g9cQHyRINosIcpovzv0BkXQc3urhL1ORf3KTe4TS4UBsg2O4Z2feca/W3pfzdHEJzc83ETBW4aKbb3SaA== + dependencies: + "@npmcli/node-gyp" "^1.0.0" + "@npmcli/promise-spawn" "^1.3.0" + infer-owner "^1.0.4" + node-gyp "^7.1.0" + puka "^1.0.1" + read-package-json-fast "^1.1.3" + "@octokit/auth-token@^2.4.0": version "2.4.4" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56" @@ -2699,14 +2727,14 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@schematics/angular@11.0.6": - version "11.0.6" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-11.0.6.tgz#5e52f8396e66138df0d6062130399fab830ee79e" - integrity sha512-XUcpOrlcp55PBHrgpIVx69lnhDY6ro35BSRmqNmjXik56qcOkfvdki8vvyW9EsWvu9/sfBSsVDdparlbVois7w== +"@schematics/angular@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-11.1.0.tgz#a0aa7bccd395be9c336089e423399f68cc6054af" + integrity sha512-g04TcC1gLS1ptFYdIO7qZ+lJARBXoK9g+m5KzQoogdrDkCum+wN15bfYKc5hF8cDYQOOqYjRF5GBdS9Uvc4ulQ== dependencies: - "@angular-devkit/core" "11.0.6" - "@angular-devkit/schematics" "11.0.6" - jsonc-parser "2.3.1" + "@angular-devkit/core" "11.1.0" + "@angular-devkit/schematics" "11.1.0" + jsonc-parser "3.0.0" "@schematics/angular@~10.0.5": version "10.0.8" @@ -2724,18 +2752,18 @@ "@angular-devkit/core" "10.1.7" "@angular-devkit/schematics" "10.1.7" -"@schematics/update@0.1100.6": - version "0.1100.6" - resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1100.6.tgz#8e76276a3daecfd698b39e7643bc21f3abb3a4d0" - integrity sha512-+B8n+k+zZ3VYOhjNBsLqzjp8O9ZdUWgdpf9L8XAA7mh/oPwufXpExyEc66uAS07imvUMmjz6i8E2eNWV/IjBJg== +"@schematics/update@0.1101.0": + version "0.1101.0" + resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1101.0.tgz#7aceee250f0bb917ea567c7fc9145c33182eaea0" + integrity sha512-WcbiTcn+Rr1uYllTLMbYcMfiz5IRZ7OAapISA82DpDkBeYIUf86ANjkEK1qsuU3zoz5i3CbiWvPq/KTlrzh6dg== dependencies: - "@angular-devkit/core" "11.0.6" - "@angular-devkit/schematics" "11.0.6" + "@angular-devkit/core" "11.1.0" + "@angular-devkit/schematics" "11.1.0" "@yarnpkg/lockfile" "1.1.0" - ini "1.3.6" + ini "2.0.0" npm-package-arg "^8.0.0" - pacote "9.5.12" - semver "7.3.2" + pacote "11.1.14" + semver "7.3.4" semver-intersect "1.4.0" "@sheerun/mutationobserver-shim@^0.3.2": @@ -2786,6 +2814,11 @@ pretty-format "^24.8.0" wait-for-expect "^1.3.0" +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + "@types/babel__core@^7.1.7": version "7.1.12" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" @@ -3281,6 +3314,13 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -3295,6 +3335,15 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" +agentkeepalive@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.3.tgz#360a09d743a1f4fde749f9ba07caa6575d08259a" + integrity sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -3649,7 +3698,19 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@9.8.6, autoprefixer@^9.6.5: +autoprefixer@10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.1.tgz#ce96870df6ddd9ba4c9bbba56c54b9ef4b00a962" + integrity sha512-dwP0UjyYvROUvtU+boBx8ff5pPWami1NGTrJs9YUsS/oZVbRAcdNHOOuXSA1fc46tgKqe072cVaKD69rvCc3QQ== + dependencies: + browserslist "^4.16.1" + caniuse-lite "^1.0.30001173" + colorette "^1.2.1" + fraction.js "^4.0.13" + normalize-range "^0.1.2" + postcss-value-parser "^4.1.0" + +autoprefixer@^9.6.5: version "9.8.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== @@ -3693,15 +3754,14 @@ babel-jest@^25.5.1: graceful-fs "^4.2.4" slash "^3.0.0" -babel-loader@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== +babel-loader@8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.1.0" + find-cache-dir "^3.3.1" loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + make-dir "^3.1.0" schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.3: @@ -3996,7 +4056,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.7.0, browserslist@^4.9.1: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1, browserslist@^4.7.0, browserslist@^4.9.1: version "4.16.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== @@ -4265,7 +4325,7 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -camelcase@^6.0.0: +camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== @@ -4430,10 +4490,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-dependency-plugin@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" - integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== +circular-dependency-plugin@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz#39e836079db1d3cf2f988dc48c5188a44058b600" + integrity sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ== class-utils@^0.3.5: version "0.3.6" @@ -5031,10 +5091,10 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz#8015e4d5c5e637ab7b39c76daa9e03c7a4bf1ae5" - integrity sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q== +copy-webpack-plugin@6.3.2: + version "6.3.2" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.3.2.tgz#0e920a6c181a5052aa6e2861b164bda03f83afeb" + integrity sha512-MgJ1uouLIbDg4ST1GzqrGQyKoXY5iPqi6fghFqarijam7FQcBa/r6Rg0VkoIuzx75Xq8iAMghyOueMkWUQ5OaA== dependencies: cacache "^15.0.5" fast-glob "^3.2.4" @@ -5048,18 +5108,18 @@ copy-webpack-plugin@6.2.1: serialize-javascript "^5.0.1" webpack-sources "^1.4.3" -core-js-compat@^3.6.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.2.tgz#3717f51f6c3d2ebba8cbf27619b57160029d1d4c" - integrity sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ== +core-js-compat@^3.8.0: + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.3.tgz#9123fb6b9cad30f0651332dc77deba48ef9b0b3f" + integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== dependencies: - browserslist "^4.16.0" + browserslist "^4.16.1" semver "7.0.0" -core-js@3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== +core-js@3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.2.tgz#0a1fd6709246da9ca8eff5bb0cbd15fba9ac7044" + integrity sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -5118,6 +5178,17 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +critters@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.6.tgz#b71384113d8b5f5c82f3aeba80c122437f195d8c" + integrity sha512-NUB3Om7tkf+XWi9+2kJ2A3l4/tHORDI1UT+nHxUqay2B/tJvMpiXcklDDLBH3fPn9Pe23uu0we/08Ukjy4cLCQ== + dependencies: + chalk "^4.1.0" + css "^3.0.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + pretty-bytes "^5.3.0" + cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -5168,22 +5239,22 @@ css-declaration-sorter@^4.0.1: postcss "^7.0.1" timsort "^0.3.0" -css-loader@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" - integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== +css-loader@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz#9e4de0d6636a6266a585bd0900b422c85539d25f" + integrity sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw== dependencies: - camelcase "^6.0.0" + camelcase "^6.2.0" cssesc "^3.0.0" - icss-utils "^4.1.1" + icss-utils "^5.0.0" loader-utils "^2.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.3" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" + postcss "^8.1.4" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" postcss-value-parser "^4.1.0" - schema-utils "^2.7.1" + schema-utils "^3.0.0" semver "^7.3.2" css-parse@~2.0.0: @@ -5247,6 +5318,15 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + cssauron@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" @@ -5467,27 +5547,20 @@ debug@3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== +debug@4, debug@4.3.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: +debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -5630,7 +5703,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: +depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -5882,7 +5955,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11: +encoding@^0.1.11, encoding@^0.1.12: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -5896,13 +5969,13 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz#3f988d0d7775bdc2d96ede321dc81f8249492f57" - integrity sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w== +enhanced-resolve@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.6.0.tgz#ad19a1665f230a6e384724a30acf3f7332b2b3f0" + integrity sha512-C3GGDfFZmqUa21o10YRKbZN60DPl0HyXKXxoEnQMWso9u7KMU23L7CBHfr/rVxORddY/8YQZaU2MZ1ewTS8Pcw== dependencies: graceful-fs "^4.2.4" - tapable "^2.0.0" + tapable "^2.2.0" enhanced-resolve@^4.3.0: version "4.3.0" @@ -6384,14 +6457,7 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: +faye-websocket@^0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== @@ -6429,10 +6495,10 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-loader@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" - integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== +file-loader@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -6590,6 +6656,11 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +fraction.js@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" + integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -6645,7 +6716,7 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.6.0" -fs-minipass@^2.0.0: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== @@ -7002,7 +7073,7 @@ got@^11.5.2: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -7209,7 +7280,7 @@ http-cache-semantics@^3.8.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-cache-semantics@^4.0.0: +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== @@ -7264,6 +7335,15 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -7313,6 +7393,14 @@ https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -7325,7 +7413,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -7339,12 +7427,10 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" +icss-utils@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" @@ -7356,7 +7442,7 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: +ignore-walk@^3.0.1, ignore-walk@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== @@ -7470,10 +7556,10 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.6.tgz#f1c46a2a93a253e7b3905115e74d527cd23061a1" - integrity sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg== +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== ini@^1.3.2, ini@^1.3.4: version "1.3.8" @@ -7663,7 +7749,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.0.0, is-core-module@^2.1.0: +is-core-module@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== @@ -7780,6 +7866,11 @@ is-interactive@^1.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -8446,10 +8537,10 @@ jest-watcher@^25.5.0: jest-util "^25.5.0" string-length "^3.1.0" -jest-worker@26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" - integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== +jest-worker@26.6.2, jest-worker@^26.5.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -8463,15 +8554,6 @@ jest-worker@^25.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^26.5.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - jest@^25.0.0: version "25.5.4" resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" @@ -8576,7 +8658,7 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.2: +json3@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== @@ -8595,7 +8677,12 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -jsonc-parser@2.3.1, jsonc-parser@^2.3.0: +jsonc-parser@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + +jsonc-parser@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== @@ -8616,7 +8703,7 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.2.0: +jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= @@ -8728,20 +8815,22 @@ lerna@^3.19.0: import-local "^2.0.0" npmlog "^4.1.2" -less-loader@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-7.0.2.tgz#0d73a49ec32a9d3ff12614598e6e2b47fb2a35c4" - integrity sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w== +less-loader@7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-7.2.1.tgz#a923df8567256751b0ab4e0c3eecff10fd0a5876" + integrity sha512-4v83WZ7KGbluOWPgk3iNjreAaJDNStfmmdfJbQIib3Jlc8mejV3w6A9xU+EkaivjBVqwQEK0y8cFthyNeGnrTQ== dependencies: klona "^2.0.4" loader-utils "^2.0.0" schema-utils "^3.0.0" -less@3.12.2: - version "3.12.2" - resolved "https://registry.yarnpkg.com/less/-/less-3.12.2.tgz#157e6dd32a68869df8859314ad38e70211af3ab4" - integrity sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q== +less@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/less/-/less-4.1.0.tgz#a12708d1951239db1c9d7eaa405f1ebac9a75b8d" + integrity sha512-w1Ag/f34g7LwtQ/sMVSGWIyZx+gG9ZOAEtyxeX1fG75is6BMyC2lD5kG+1RueX7PkAvlQBm2Lf2aN2j0JbVr2A== dependencies: + copy-anything "^2.0.1" + parse-node-version "^1.0.1" tslib "^1.10.0" optionalDependencies: errno "^0.1.1" @@ -8749,7 +8838,7 @@ less@3.12.2: image-size "~0.5.0" make-dir "^2.1.0" mime "^1.4.1" - native-request "^1.0.5" + needle "^2.5.2" source-map "~0.6.0" less@^3.10.3: @@ -8781,10 +8870,10 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -license-webpack-plugin@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz#08eddb2f776c7c64c02f308a00e017d6e824d0b6" - integrity sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ== +license-webpack-plugin@2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.11.tgz#0d93188a31fce350a44c86212badbaf33dcd29d8" + integrity sha512-0iVGoX5vx0WDy8dmwTTpOOMYiGqILyUbDeVMFH52AjgBlS58lHwOlFMSoqg5nY8Kxl6+FRKyUZY/UdlQaOyqDw== dependencies: "@types/webpack-sources" "^0.1.5" webpack-sources "^1.2.0" @@ -9052,7 +9141,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -9081,6 +9170,27 @@ make-fetch-happen@^5.0.0: socks-proxy-agent "^4.0.0" ssri "^6.0.0" +make-fetch-happen@^8.0.9: + version "8.0.13" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.13.tgz#3692e1fdf027343c782e53bfe1f941fe85db9462" + integrity sha512-rQ5NijwwdU8tIaBrpTtSVrNCcAJfyDRcKBC76vOQlyJX588/88+TE+UpjWl4BgG7gCkp29wER7xcRqkeg+x64Q== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.0.5" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + promise-retry "^1.1.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.0" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -9317,10 +9427,10 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz#30ea7dee632b3002b0c77aeed447790408cb247e" - integrity sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A== +mini-css-extract-plugin@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.3.tgz#7802e62b34199aa7d1a62e654395859a836486a0" + integrity sha512-7lvliDSMiuZc81kI+5/qxvn47SCM7BehXex3f2c6l/pR3Goj58IQxZh9nuPQ3AkGQgoETyXuIqLDaO5Oa0TyBw== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -9372,6 +9482,17 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" +minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" + integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" @@ -9379,13 +9500,28 @@ minipass-flush@^1.0.5: dependencies: minipass "^3.0.0" -minipass-pipeline@^1.2.2: +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" @@ -9394,7 +9530,7 @@ minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: +minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== @@ -9408,7 +9544,7 @@ minizlib@^1.2.1: dependencies: minipass "^2.9.0" -minizlib@^2.1.1: +minizlib@^2.0.0, minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== @@ -9555,6 +9691,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -9582,6 +9723,15 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +needle@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -9693,6 +9843,22 @@ node-gyp@^5.0.2: tar "^4.4.12" which "^1.3.1" +node-gyp@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.3" + nopt "^5.0.0" + npmlog "^4.1.2" + request "^2.88.2" + rimraf "^3.0.2" + semver "^7.3.2" + tar "^6.0.2" + which "^2.0.2" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -9763,6 +9929,13 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -9810,7 +9983,7 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== -npm-bundled@^1.0.1: +npm-bundled@^1.0.1, npm-bundled@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== @@ -9843,7 +10016,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@8.1.0, npm-package-arg@^8.0.0: +npm-package-arg@8.1.0, npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== @@ -9862,7 +10035,7 @@ npm-package-arg@8.1.0, npm-package-arg@^8.0.0: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.4.4: +npm-packlist@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -9871,7 +10044,17 @@ npm-packlist@^1.1.12, npm-packlist@^1.4.4: npm-bundled "^1.0.1" npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@6.1.0: +npm-packlist@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.4.tgz#40e96b2b43787d0546a574542d01e066640d09da" + integrity sha512-Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw== + dependencies: + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@6.1.0, npm-pick-manifest@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" integrity sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw== @@ -9889,18 +10072,19 @@ npm-pick-manifest@^3.0.0: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-registry-fetch@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz#57951bf6541e0246b34c9f9a38ab73607c9449d7" - integrity sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ== +npm-registry-fetch@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" + integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== dependencies: - JSONStream "^1.3.4" - bluebird "^3.5.1" - figgy-pudding "^3.4.1" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - npm-package-arg "^6.1.0" - safe-buffer "^5.2.0" + "@npmcli/ci-detect" "^1.0.0" + lru-cache "^6.0.0" + make-fetch-happen "^8.0.9" + minipass "^3.1.3" + minipass-fetch "^1.3.0" + minipass-json-stream "^1.0.1" + minizlib "^2.0.0" + npm-package-arg "^8.0.0" npm-run-path@^2.0.0: version "2.0.2" @@ -10071,10 +10255,10 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" - integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== +open@7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/open/-/open-7.3.1.tgz#111119cb919ca1acd988f49685c4fdd0f4755356" + integrity sha512-f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A== dependencies: is-docker "^2.0.0" is-wsl "^2.1.1" @@ -10140,19 +10324,7 @@ ora@5.1.0: strip-ansi "^6.0.0" wcwidth "^1.0.1" -ora@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== - dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - -ora@^5.1.0: +ora@5.2.0, ora@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== @@ -10166,6 +10338,18 @@ ora@^5.1.0: strip-ansi "^6.0.0" wcwidth "^1.0.1" +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" @@ -10326,41 +10510,30 @@ p-waterfall@^1.0.0: dependencies: p-reduce "^1.0.0" -pacote@9.5.12: - version "9.5.12" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" - integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== +pacote@11.1.14: + version "11.1.14" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.1.14.tgz#c60b9849ab05488d3f9ccd644c8a42543f2f36d6" + integrity sha512-6c5OhQelaJFDfiw/Zd8MfGCvvFHurSdeGzufZMPvRFImdbNOYFciOINf3DtUNUaU3h98eCb749UyHDsgvL19+A== dependencies: - bluebird "^3.5.3" - cacache "^12.0.2" - chownr "^1.1.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.3" + "@npmcli/git" "^2.0.1" + "@npmcli/installed-package-contents" "^1.0.5" + "@npmcli/promise-spawn" "^1.2.0" + "@npmcli/run-script" "^1.3.0" + cacache "^15.0.5" + chownr "^2.0.0" + fs-minipass "^2.1.0" infer-owner "^1.0.4" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.4.0" - npm-normalize-package-bin "^1.0.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.1.12" - npm-pick-manifest "^3.0.0" - npm-registry-fetch "^4.0.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" + minipass "^3.1.3" + mkdirp "^1.0.3" + npm-package-arg "^8.0.1" + npm-packlist "^2.1.4" + npm-pick-manifest "^6.0.0" + npm-registry-fetch "^9.0.0" promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.2" - safe-buffer "^5.1.2" - semver "^5.6.0" - ssri "^6.0.1" - tar "^4.4.10" - unique-filename "^1.1.1" - which "^1.3.1" + read-package-json-fast "^1.1.3" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.1.0" pako@~1.0.2, pako@~1.0.5: version "1.0.11" @@ -10424,6 +10597,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-node-version@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -10457,6 +10635,13 @@ parse5-html-rewriting-stream@6.0.1: parse5 "^6.0.1" parse5-sax-parser "^6.0.1" +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + parse5-sax-parser@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz#98b4d366b5b266a7cd90b4b58906667af882daba" @@ -10718,20 +10903,19 @@ postcss-discard-overridden@^4.0.1: dependencies: postcss "^7.0.0" -postcss-import@12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== +postcss-import@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.0.tgz#3ed1dadac5a16650bde3f4cdea6633b9c3c78296" + integrity sha512-gFDDzXhqr9ELmnLHgCC3TbGfA6Dm/YMb/UN8/f7Uuq4fL7VTk2vOIj6hwINEwbokEmp123bLD7a5m+E+KIetRg== dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" + postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" -postcss-loader@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.4.tgz#b2d005b52e008a44991cf8123bee207e635eb53e" - integrity sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw== +postcss-loader@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.1.0.tgz#4647a6c8dad3cb6b253fbfaa21d62201086f6e39" + integrity sha512-vbCkP70F3Q9PIk6d47aBwjqAMI4LfkXCoyxj+7NPNuVIwfTGdzv2KVQes59/RuxMniIgsYQCFSY42P3+ykJfaw== dependencies: cosmiconfig "^7.0.0" klona "^2.0.4" @@ -10801,38 +10985,33 @@ postcss-minify-selectors@^4.0.2: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" + icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" + postcss-selector-parser "^6.0.4" -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" + icss-utils "^5.0.0" postcss-normalize-charset@^4.0.1: version "4.0.1" @@ -10953,7 +11132,7 @@ postcss-selector-parser@^3.0.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== @@ -10993,12 +11172,12 @@ postcss-url@^8.0.0: postcss "^7.0.2" xxhashjs "^0.2.1" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: +postcss-value-parser@^3.0.0: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== @@ -11012,16 +11191,16 @@ postcss@7.0.21: source-map "^0.6.1" supports-color "^6.1.0" -postcss@7.0.32: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== +postcss@8.2.4, postcss@^8.1.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04" + integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg== dependencies: - chalk "^2.4.2" + colorette "^1.2.1" + nanoid "^3.1.20" source-map "^0.6.1" - supports-color "^6.1.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.29, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.29, postcss@^7.0.32: version "7.0.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== @@ -11040,6 +11219,11 @@ prettier@^2.2.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== +pretty-bytes@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e" + integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA== + pretty-format@26.x, pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" @@ -11176,6 +11360,11 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +puka@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/puka/-/puka-1.0.1.tgz#a2df782b7eb4cf9564e4c93a5da422de0dfacc02" + integrity sha512-ssjRZxBd7BT3dte1RR3VoeT2cT/ODH8x+h0rUF1rMqB0srHYf48stSDWfiYakTp5UBZMxroZhB2+ExLDHm7W3g== + pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -11342,6 +11531,14 @@ read-cmd-shim@^1.0.1: dependencies: graceful-fs "^4.1.2" +read-package-json-fast@^1.1.1, read-package-json-fast@^1.1.3: + version "1.2.1" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.2.1.tgz#e8518d6f37c99eb3afc26704c5cbb50d7ead82dd" + integrity sha512-OFbpwnHcv74Oa5YN5WvbOBfLw6yPmPcwvyJJw/tj9cWFBF7juQUDLDSZiOjEcgzfweWeeROOmbPpNN1qm4hcRg== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + "read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: version "2.1.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" @@ -11451,7 +11648,7 @@ read@1, read@~1.0.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -11755,15 +11952,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" - integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== - dependencies: - is-core-module "^2.0.0" - path-parse "^1.0.6" - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1: +resolve@1.19.0, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2: version "1.19.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== @@ -11872,14 +12061,7 @@ rollup-plugin-sourcemaps@^0.6.0: "@rollup/pluginutils" "^3.0.9" source-map-resolve "^0.6.0" -rollup@2.32.1: - version "2.32.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.32.1.tgz#625a92c54f5b4d28ada12d618641491d4dbb548c" - integrity sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw== - optionalDependencies: - fsevents "~2.1.2" - -rollup@^2.8.0: +rollup@2.36.1, rollup@^2.8.0: version "2.36.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.36.1.tgz#2174f0c25c7b400d57b05628d0e732c7ae8d2178" integrity sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ== @@ -11973,10 +12155,10 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sass-loader@10.0.5: - version "10.0.5" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769" - integrity sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w== +sass-loader@10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" + integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== dependencies: klona "^2.0.4" loader-utils "^2.0.0" @@ -11984,10 +12166,10 @@ sass-loader@10.0.5: schema-utils "^3.0.0" semver "^7.3.2" -sass@1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.27.0.tgz#0657ff674206b95ec20dc638a93e179c78f6ada2" - integrity sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig== +sass@1.32.4: + version "1.32.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.4.tgz#308bf29dd7f53d44ae4f06580e9a910ad9aa411e" + integrity sha512-N0BT0PI/t3+gD8jKa83zJJUb7ssfQnRRfqN+GIErokW6U4guBpfYl8qYB+OFLEho+QvnV5ZH1R9qhUC/Z2Ch9w== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -12005,7 +12187,7 @@ saucelabs@^1.5.0: dependencies: https-proxy-agent "^2.2.1" -sax@>=0.6.0, sax@~1.2.4: +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -12026,7 +12208,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: +schema-utils@^2.6.5, schema-utils@^2.7.0: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -12059,7 +12241,7 @@ selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: tmp "0.0.30" xml2js "^0.4.17" -selfsigned@^1.10.7: +selfsigned@^1.10.8: version "1.10.8" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== @@ -12090,12 +12272,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2: +semver@7.3.4, semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== @@ -12323,26 +12500,26 @@ snq@^1.0.3: resolved "https://registry.yarnpkg.com/snq/-/snq-1.0.3.tgz#f9661d10eebb224c52fc3c50106445c268618168" integrity sha512-bXcxd1ppFnSNYKq84HyOYuYtbMHCFTZvuPSNCn/80yx9+DLkU/hLqjqCRKRHSDISrL1T/lWGXJyQxWS8TnutFA== -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== +sockjs-client@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" + integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== dependencies: - debug "^3.2.5" + debug "^3.2.6" eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.4.7" -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== dependencies: - faye-websocket "^0.10.0" + faye-websocket "^0.11.3" uuid "^3.4.0" - websocket-driver "0.6.5" + websocket-driver "^0.7.4" socks-proxy-agent@^4.0.0: version "4.0.2" @@ -12352,6 +12529,23 @@ socks-proxy-agent@^4.0.0: agent-base "~4.2.1" socks "~2.3.2" +socks-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== + dependencies: + agent-base "6" + debug "4" + socks "^2.3.3" + +socks@^2.3.3: + version "2.5.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.5.1.tgz#7720640b6b5ec9a07d556419203baa3f0596df5f" + integrity sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ== + dependencies: + ip "^1.1.5" + smart-buffer "^4.1.0" + socks@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" @@ -12372,10 +12566,10 @@ source-list-map@^2.0.0, source-list-map@^2.0.1: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-loader@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.1.2.tgz#5b782bf08496d3a7f355e1780df0e25190a80991" - integrity sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA== +source-map-loader@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.1.3.tgz#7dbc2fe7ea09d3e43c51fd9fc478b7f016c1f820" + integrity sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA== dependencies: abab "^2.0.5" iconv-lite "^0.6.2" @@ -12816,10 +13010,10 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -stylus-loader@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-4.3.1.tgz#8b4e749294d9fe0729c2e5e1f04cbf87e1c941aa" - integrity sha512-apDYJEM5ZpOAWbWInWcsbtI8gHNr/XYVcSY/tWqOUPt7M5tqhtwXVsAkgyiVjhuvw2Yrjq474a9H+g4d047Ebw== +stylus-loader@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-4.3.2.tgz#d3577e7f5ff65ea3f9516e1a0f1f16aea706d3f0" + integrity sha512-xXVKHY+J7GBlOmqjCL1VvQfc+pFkBdWGtcpJSvBGE49nWWHaukox7KCjRdLTEzjrmHODm4+rLpqkYWzfJteMXQ== dependencies: fast-glob "^3.2.4" klona "^2.0.4" @@ -12899,10 +13093,10 @@ symbol-observable@1.2.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -symbol-observable@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" - integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== +symbol-observable@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-3.0.0.tgz#eea8f6478c651018e059044268375c408c15c533" + integrity sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q== symbol-tree@^3.2.2: version "3.2.4" @@ -12933,7 +13127,7 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tapable@^2.0.0: +tapable@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== @@ -12951,7 +13145,7 @@ tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" -tar@^6.0.2: +tar@^6.0.2, tar@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== @@ -13031,10 +13225,10 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser@5.3.7: - version "5.3.7" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.7.tgz#798a4ae2e7ff67050c3e99fcc4e00725827d97e2" - integrity sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w== +terser@5.5.1, terser@^5.0.0, terser@^5.3.4: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -13049,15 +13243,6 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.0.0, terser@^5.3.4: - version "5.5.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" - integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -13307,21 +13492,16 @@ tsickle@^0.39.1: resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.39.1.tgz#7ccf672cde5b430f5dd0b281ee49e170ef390ff9" integrity sha512-CCc9cZhZbKoNizVM+K3Uqgit/go8GacjpqTv1cpwG/n2P0gB9GMoWZbxrUULDE9Wz26Lh86CGf6QyIPUVV1lnQ== -tslib@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" - integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== +tslib@2.1.0, tslib@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== tslib@^1.10.0, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tslint@~6.1.0: version "6.1.3" resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" @@ -13432,10 +13612,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.0.5, typescript@~4.0.3: - version "4.0.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" - integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== +typescript@4.1.3, typescript@~4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== typescript@^3.5.2, typescript@~3.9.2: version "3.9.7" @@ -13585,7 +13765,7 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3: +url-parse@^1.4.3, url-parse@^1.4.7: version "1.4.7" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== @@ -13647,10 +13827,10 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" - integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== +uuid@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" @@ -13817,10 +13997,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== +webpack-dev-server@3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz#c74028bf5ba8885aaf230e48a20e8936ab8511f0" + integrity sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -13842,11 +14022,11 @@ webpack-dev-server@3.11.0: p-retry "^3.0.1" portfinder "^1.0.26" schema-utils "^1.0.0" - selfsigned "^1.10.7" + selfsigned "^1.10.8" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" + sockjs "^0.3.21" + sockjs-client "^1.5.0" spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" @@ -13864,18 +14044,18 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.2.0.tgz#31cbcc954f8f89cd4b06ca8d97a38549f7f3f0c9" - integrity sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA== +webpack-merge@5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" + integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== dependencies: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.1.tgz#1467f6e692ddce91e88b8044c44347b1087bbd4f" - integrity sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw== +webpack-sources@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== dependencies: source-list-map "^2.0.1" source-map "^0.6.1" @@ -13888,10 +14068,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack-subresource-integrity@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz#6f44ea99987266b70c4ec42ac51064d33e982277" - integrity sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q== +webpack-subresource-integrity@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz#e40b6578d3072e2d24104975249c52c66e9a743e" + integrity sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw== dependencies: webpack-sources "^1.3.0" @@ -13924,14 +14104,7 @@ webpack@4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 45e8452cfe..0975963c21 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -19,31 +19,31 @@ "@abp/ng.tenant-management": "~4.2.0-rc.2", "@abp/ng.theme.basic": "~4.2.0-rc.2", "@abp/ng.theme.shared": "~4.2.0-rc.2", - "@angular/animations": "~11.0.0", - "@angular/common": "~11.0.0", - "@angular/compiler": "~11.0.0", - "@angular/core": "~11.0.0", - "@angular/forms": "~11.0.0", - "@angular/platform-browser": "~11.0.0", - "@angular/platform-browser-dynamic": "~11.0.0", - "@angular/router": "~11.0.0", + "@angular/animations": "~11.1.0", + "@angular/common": "~11.1.0", + "@angular/compiler": "~11.1.0", + "@angular/core": "~11.1.0", + "@angular/forms": "~11.1.0", + "@angular/platform-browser": "~11.1.0", + "@angular/platform-browser-dynamic": "~11.1.0", + "@angular/router": "~11.1.0", "rxjs": "~6.6.0", "tslib": "^2.0.0", "zone.js": "~0.10.2" }, "devDependencies": { "@abp/ng.schematics": "~4.2.0-rc.2", - "@angular-devkit/build-angular": "~0.1100.0", - "@angular/cli": "~11.0.0", - "@angular/compiler-cli": "~11.0.0", - "@angular/language-service": "~11.0.0", + "@angular-devkit/build-angular": "~0.1101.0", + "@angular/cli": "~11.1.0", + "@angular/compiler-cli": "~11.1.0", + "@angular/language-service": "~11.1.0", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", "@types/node": "^12.11.1", "codelyzer": "^6.0.1", "jasmine-core": "~3.6.0", "jasmine-spec-reporter": "~5.0.0", - "karma": "~5.1.1", + "karma": "~5.2.3", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~4.0.0", @@ -52,6 +52,6 @@ "protractor": "~7.0.0", "ts-node": "~8.3.0", "tslint": "~6.1.0", - "typescript": "~4.0.3" + "typescript": "~4.1.3" } -} +} \ No newline at end of file diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 62d6a7b7b8..4be629e899 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -22,31 +22,31 @@ "@abp/ng.tenant-management": "~4.2.0-rc.2", "@abp/ng.theme.basic": "~4.2.0-rc.2", "@abp/ng.theme.shared": "~4.2.0-rc.2", - "@angular/animations": "~11.0.0", - "@angular/common": "~11.0.0", - "@angular/compiler": "~11.0.0", - "@angular/core": "~11.0.0", - "@angular/forms": "~11.0.0", - "@angular/platform-browser": "~11.0.0", - "@angular/platform-browser-dynamic": "~11.0.0", - "@angular/router": "~11.0.0", + "@angular/animations": "~11.1.0", + "@angular/common": "~11.1.0", + "@angular/compiler": "~11.1.0", + "@angular/core": "~11.1.0", + "@angular/forms": "~11.1.0", + "@angular/platform-browser": "~11.1.0", + "@angular/platform-browser-dynamic": "~11.1.0", + "@angular/router": "~11.1.0", "rxjs": "~6.6.0", "tslib": "^2.0.0", "zone.js": "~0.10.2" }, "devDependencies": { "@abp/ng.schematics": "~4.2.0-rc.2", - "@angular-devkit/build-angular": "~0.1100.0", - "@angular/cli": "~11.0.0", - "@angular/compiler-cli": "~11.0.0", - "@angular/language-service": "~11.0.0", + "@angular-devkit/build-angular": "~0.1101.1", + "@angular/cli": "~11.1.1", + "@angular/compiler-cli": "~11.1.0", + "@angular/language-service": "~11.1.0", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", "@types/node": "^12.11.1", "codelyzer": "^6.0.1", "jasmine-core": "~3.6.0", "jasmine-spec-reporter": "~5.0.0", - "karma": "~5.1.1", + "karma": "~5.2.3", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~4.0.0", @@ -56,6 +56,6 @@ "symlink-manager": "^1.5.0", "ts-node": "~8.3.0", "tslint": "~6.1.0", - "typescript": "~4.0.3" + "typescript": "~4.1.3" } } From 7c4b76de30947354701f5687b353fe4096784b87 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 25 Jan 2021 14:00:39 +0300 Subject: [PATCH 169/309] CmsKit - Model creating fix --- .../CmsKitDbContextModelCreatingExtensions.cs | 66 +++++++------------ 1 file changed, 23 insertions(+), 43 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs index 2cc5e8a52a..60cf1332f8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs @@ -62,6 +62,10 @@ namespace Volo.CmsKit.EntityFrameworkCore b.HasIndex(x => new {x.TenantId, x.CreatorId, x.EntityType, x.EntityId, x.ReactionName}); }); } + else + { + builder.Ignore(); + } if (GlobalFeatureManager.Instance.IsEnabled()) { @@ -80,6 +84,10 @@ namespace Volo.CmsKit.EntityFrameworkCore b.HasIndex(x => new {x.TenantId, x.RepliedCommentId}); }); } + else + { + builder.Ignore(); + } if (GlobalFeatureManager.Instance.IsEnabled()) { @@ -96,6 +104,10 @@ namespace Volo.CmsKit.EntityFrameworkCore r.HasIndex(x => new { x.TenantId, x.EntityType, x.EntityId, x.CreatorId }); }); } + else + { + builder.Ignore(); + } if (GlobalFeatureManager.Instance.IsEnabled()) { @@ -112,6 +124,10 @@ namespace Volo.CmsKit.EntityFrameworkCore b.HasIndex(x => new { x.TenantId, x.EntityType, x.EntityId }); }); } + else + { + builder.Ignore(); + } if (GlobalFeatureManager.Instance.IsEnabled()) { @@ -145,50 +161,10 @@ namespace Volo.CmsKit.EntityFrameworkCore b.HasIndex(x => new { x.TenantId, x.EntityId, x.TagId }); }); } - - if (GlobalFeatureManager.Instance.IsEnabled()) + else { - builder.Entity(b => - { - b.ToTable(options.TablePrefix + "Pages", options.Schema); - - b.ConfigureByConvention(); - - b.Property(x => x.Title).IsRequired().HasMaxLength(PageConsts.MaxTitleLength); - b.Property(x => x.Url).IsRequired().HasMaxLength(PageConsts.MaxUrlLength); - b.Property(x => x.Description).HasMaxLength(PageConsts.MaxDescriptionLength); - - b.HasIndex(x => new { x.TenantId, x.Url }); - }); - } - - if (GlobalFeatureManager.Instance.IsEnabled()) - { - builder.Entity(b => - { - b.ToTable(options.TablePrefix + "Tags", options.Schema); - - b.ConfigureByConvention(); - - b.Property(x => x.EntityType).IsRequired().HasMaxLength(TagConsts.MaxEntityTypeLength); - b.Property(x => x.Name).IsRequired().HasMaxLength(TagConsts.MaxNameLength); - - b.HasIndex(x => new {x.TenantId, x.Name}); - }); - - builder.Entity(b => - { - b.ToTable(options.TablePrefix + "EntityTags", options.Schema); - - b.ConfigureByConvention(); - - b.HasKey(x => new {x.EntityId, x.TagId}); - - b.Property(x => x.EntityId).IsRequired(); - b.Property(x => x.TagId).IsRequired(); - - b.HasIndex(x => new {x.TenantId, x.EntityId, x.TagId}); - }); + builder.Ignore(); + builder.Ignore(); } if (GlobalFeatureManager.Instance.IsEnabled()) @@ -206,6 +182,10 @@ namespace Volo.CmsKit.EntityFrameworkCore b.HasIndex(x => new {x.TenantId, x.Url}); }); } + else + { + builder.Ignore(); + } } } } \ No newline at end of file From 5a8209e9ba4bd57c0def4598f3ebff59b2a2de9e Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 25 Jan 2021 14:41:36 +0300 Subject: [PATCH 170/309] CmsKit - Add feature check to CmsKit Pages route configuration --- .../src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index d44f67afc5..8cb5644256 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -3,9 +3,11 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AutoMapper; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; +using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Localization; using Volo.CmsKit.Public.Web.Menus; using Volo.CmsKit.Web; @@ -57,7 +59,11 @@ namespace Volo.CmsKit.Public.Web Configure(options => { - options.Conventions.AddPageRoute("/CmsKit/Pages/Index", "/{*pageUrl}"); + if (GlobalFeatureManager.Instance.IsEnabled()) + { + // TODO: Work on this route logic. Blocks some routes with this logic. + options.Conventions.AddPageRoute("/CmsKit/Pages/Index", "/{*pageUrl}"); + } }); } } From 741e8e84eaa35033787fec689ee7e5fff91f25fc Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 25 Jan 2021 15:28:30 +0300 Subject: [PATCH 171/309] Update abp.io localization --- .../Admin/Localization/Resources/en.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 7191c0f221..a292da5f9b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -203,7 +203,16 @@ "VideoPreviewErrorMessage": "Given video url couldn't retrieve from Youtube. This can be caused by either video is private or the given URL is not available.", "DeleteCoverImage": "Delete Cover Image", "DeleteCoverImageConfirmationMessage": "Are you sure you want to delete the cover image for \"{0}\"?", - "DeleteCoverImageSuccessMessage": "Cover image successfully deleted" + "DeleteCoverImageSuccessMessage": "Cover image successfully deleted", + "PaymentsOf": "Payments of", + "ShowPaymentsOfOrganization": "Show payments", + "Date": "Date", + "Products": "Products", + "TotalAmount": "Total amount", + "Currency": "Currency", + "Gateway": "Gateway", + "State": "State", + "FailReason": "Fail reason" } } From ec4676b5dbcdc7b1a0908a88e58f6614442562c2 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 25 Jan 2021 17:59:18 +0800 Subject: [PATCH 172/309] Add ApiResourceProperty - KeyValuePair map config. Resolve #7373 --- .../Abp/IdentityServer/IdentityServerAutoMapperProfile.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs index af155190f3..697050e292 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerAutoMapperProfile.cs @@ -88,7 +88,6 @@ namespace Volo.Abp.IdentityServer .ForMember(dest => dest.Type, opt => opt.Condition(srs => srs != null)) .ReverseMap(); - CreateMap(); CreateMap(); } @@ -104,6 +103,9 @@ namespace Volo.Abp.IdentityServer .ReverseMap() .ForMember(dest => dest.Scope, opt => opt.MapFrom(src => src)); + CreateMap>() + .ReverseMap(); + CreateMap(); } From 78d05232f271ce9ca2e8db7af8b0bdae0f5060d2 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 26 Jan 2021 11:20:09 +0800 Subject: [PATCH 173/309] Update user properties when it's changed. Resolve #7430 --- .../Volo/Abp/Identity/ProfileAppService.cs | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/ProfileAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/ProfileAppService.cs index 9097bbc144..ef3b5fd35d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/ProfileAppService.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/ProfileAppService.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; @@ -37,17 +38,26 @@ namespace Volo.Abp.Identity var user = await UserManager.GetByIdAsync(CurrentUser.GetId()); - if (await SettingProvider.IsTrueAsync(IdentitySettingNames.User.IsUserNameUpdateEnabled)) + if (!string.Equals(user.UserName, input.UserName, StringComparison.InvariantCultureIgnoreCase)) { - (await UserManager.SetUserNameAsync(user, input.UserName)).CheckErrors(); + if (await SettingProvider.IsTrueAsync(IdentitySettingNames.User.IsUserNameUpdateEnabled)) + { + (await UserManager.SetUserNameAsync(user, input.UserName)).CheckErrors(); + } } - if (await SettingProvider.IsTrueAsync(IdentitySettingNames.User.IsEmailUpdateEnabled)) + if (!string.Equals(user.Email, input.Email, StringComparison.InvariantCultureIgnoreCase)) { - (await UserManager.SetEmailAsync(user, input.Email)).CheckErrors(); + if (await SettingProvider.IsTrueAsync(IdentitySettingNames.User.IsEmailUpdateEnabled)) + { + (await UserManager.SetEmailAsync(user, input.Email)).CheckErrors(); + } } - (await UserManager.SetPhoneNumberAsync(user, input.PhoneNumber)).CheckErrors(); + if (!string.Equals(user.PhoneNumber, input.PhoneNumber, StringComparison.InvariantCultureIgnoreCase)) + { + (await UserManager.SetPhoneNumberAsync(user, input.PhoneNumber)).CheckErrors(); + } user.Name = input.Name; user.Surname = input.Surname; From e7dc50fcd28563a087a7120a47deaa35d3818239 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 26 Jan 2021 16:08:00 +0800 Subject: [PATCH 174/309] Refactor IRemoteStreamContent related functions. --- .../AspNetCore/Mvc/AbpMvcOptionsExtensions.cs | 2 +- .../Content/InternalRemoteStreamContent.cs | 25 ------------ .../RemoteStreamContentInputFormatter.cs | 8 ++-- .../RemoteStreamContentOutputFormatter.cs | 13 +++++-- .../Content/ReferencedRemoteStreamContent.cs | 16 -------- .../DynamicHttpProxyInterceptor.cs | 6 ++- .../RemoteStreamContentTestController.cs | 35 +++++++++++++++++ ...RemoteStreamContentTestController_Tests.cs | 38 +++++++++++++++++++ .../PersonAppServiceClientProxy_Tests.cs | 28 ++++++++++++++ .../TestApp/Application/IPeopleAppService.cs | 5 +++ .../TestApp/Application/PeopleAppService.cs | 22 +++++++++++ 11 files changed, 146 insertions(+), 52 deletions(-) delete mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/InternalRemoteStreamContent.cs rename framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/{Content => ContentFormatters}/RemoteStreamContentInputFormatter.cs (77%) rename framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/{Content => ContentFormatters}/RemoteStreamContentOutputFormatter.cs (65%) delete mode 100644 framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Content/ReferencedRemoteStreamContent.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs create mode 100644 framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs index 8cbba0fc46..873c532ba3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpMvcOptionsExtensions.cs @@ -1,7 +1,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Auditing; -using Volo.Abp.AspNetCore.Mvc.Content; +using Volo.Abp.AspNetCore.Mvc.ContentFormatters; using Volo.Abp.AspNetCore.Mvc.Conventions; using Volo.Abp.AspNetCore.Mvc.ExceptionHandling; using Volo.Abp.AspNetCore.Mvc.Features; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/InternalRemoteStreamContent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/InternalRemoteStreamContent.cs deleted file mode 100644 index aaaa849f4f..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/InternalRemoteStreamContent.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.IO; -using Microsoft.AspNetCore.Http; -using Volo.Abp.Content; - -namespace Volo.Abp.AspNetCore.Mvc.Content -{ - internal class InternalRemoteStreamContent : IRemoteStreamContent - { - private readonly HttpContext _httpContext; - - public InternalRemoteStreamContent(HttpContext httpContext) - { - _httpContext = httpContext; - } - - public string ContentType => _httpContext.Request.ContentType; - - public long? ContentLength => _httpContext.Request.ContentLength; - - public Stream GetStream() - { - return _httpContext.Request.Body; - } - } -} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/RemoteStreamContentInputFormatter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs similarity index 77% rename from framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/RemoteStreamContentInputFormatter.cs rename to framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs index a4f5668b7d..27116d3da6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/RemoteStreamContentInputFormatter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs @@ -1,10 +1,10 @@ using System; using System.Threading.Tasks; -using Microsoft.Net.Http.Headers; using Microsoft.AspNetCore.Mvc.Formatters; +using Microsoft.Net.Http.Headers; using Volo.Abp.Content; -namespace Volo.Abp.AspNetCore.Mvc.Content +namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters { public class RemoteStreamContentInputFormatter : InputFormatter { @@ -20,9 +20,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Content public override Task ReadRequestBodyAsync(InputFormatterContext context) { - return InputFormatterResult.SuccessAsync( - new InternalRemoteStreamContent(context.HttpContext) - ); + return InputFormatterResult.SuccessAsync(new RemoteStreamContent(context.HttpContext.Request.Body)); } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/RemoteStreamContentOutputFormatter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs similarity index 65% rename from framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/RemoteStreamContentOutputFormatter.cs rename to framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs index 706e514254..685822a4b6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Content/RemoteStreamContentOutputFormatter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentOutputFormatter.cs @@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Mvc.Formatters; using Microsoft.Net.Http.Headers; using Volo.Abp.Content; -namespace Volo.Abp.AspNetCore.Mvc.Content +namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters { public class RemoteStreamContentOutputFormatter : OutputFormatter { @@ -21,9 +21,16 @@ namespace Volo.Abp.AspNetCore.Mvc.Content public override async Task WriteResponseBodyAsync(OutputFormatterWriteContext context) { var remoteStream = (IRemoteStreamContent)context.Object; - using (var stream = remoteStream.GetStream()) + + if (remoteStream != null) { - await stream.CopyToAsync(context.HttpContext.Response.Body); + context.HttpContext.Response.ContentType = remoteStream.ContentType; + + using (var stream = remoteStream.GetStream()) + { + stream.Position = 0; + await stream.CopyToAsync(context.HttpContext.Response.Body); + } } } } diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Content/ReferencedRemoteStreamContent.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Content/ReferencedRemoteStreamContent.cs deleted file mode 100644 index b99cec8a51..0000000000 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Content/ReferencedRemoteStreamContent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.IO; -using Volo.Abp.Content; - -namespace Volo.Abp.Http.Client.Content -{ - internal class ReferencedRemoteStreamContent : RemoteStreamContent - { - private readonly object[] _references; - - public ReferencedRemoteStreamContent(Stream stream, params object[] references) - : base(stream) - { - this._references = references; - } - } -} diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs index 7eb4e5ad78..dd4a681ba5 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs @@ -14,7 +14,6 @@ using Volo.Abp.Content; using Volo.Abp.DependencyInjection; using Volo.Abp.DynamicProxy; using Volo.Abp.Http.Client.Authentication; -using Volo.Abp.Http.Client.Content; using Volo.Abp.Http.Modeling; using Volo.Abp.Http.ProxyScripting.Generators; using Volo.Abp.Json; @@ -112,7 +111,10 @@ namespace Volo.Abp.Http.Client.DynamicProxying /* returning a class that holds a reference to response * content just to be sure that GC does not dispose of * it before we finish doing our work with the stream */ - return (T)((object)new ReferencedRemoteStreamContent(await responseContent.ReadAsStreamAsync(), responseContent)); + return (T)(object)new RemoteStreamContent(await responseContent.ReadAsStreamAsync()) + { + ContentType = responseContent.Headers.ContentType?.ToString() + }; } var stringContent = await responseContent.ReadAsStringAsync(); diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs new file mode 100644 index 0000000000..8e49b77604 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs @@ -0,0 +1,35 @@ +using System.IO; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.Content; + +namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters +{ + [Route("api/remote-stream-content-test")] + public class RemoteStreamContentTestController : AbpController + { + [HttpGet] + [Route("Download")] + public async Task DownloadAsync() + { + var memoryStream = new MemoryStream(); + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("stream")); + + return new RemoteStreamContent(memoryStream) + { + ContentType = "audio/mpeg" + }; + } + + [HttpPost] + [Route("Upload")] + public async Task UploadAsync([FromBody]IRemoteStreamContent streamContent) + { + using (var reader = new StreamReader(streamContent.GetStream())) + { + return await reader.ReadToEndAsync(); + } + } + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs new file mode 100644 index 0000000000..898423ab58 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs @@ -0,0 +1,38 @@ +using System.IO; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters +{ + public class RemoteStreamContentTestController_Tests : AspNetCoreMvcTestBase + { + [Fact] + public async Task DownloadAsync() + { + var result = await GetResponseAsync("/api/remote-stream-content-test/download"); + result.Content.Headers.ContentType?.ToString().ShouldBe("audio/mpeg"); + (await result.Content.ReadAsStringAsync()).ShouldBe("stream"); + } + + [Fact] + public async Task UploadAsync() + { + using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/api/remote-stream-content-test/upload")) + { + var memoryStream = new MemoryStream(); + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("upload")); + + memoryStream.Position = 0; + requestMessage.Content = new StreamContent(memoryStream); + requestMessage.Content.Headers.Add("Content-Type", "*/*"); + + var response = await Client.SendAsync(requestMessage); + + (await response.Content.ReadAsStringAsync()).ShouldBe("upload"); + } + } + } +} diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs index e53e3cabbf..93299b944c 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs @@ -1,11 +1,14 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using NSubstitute.Extensions; using Shouldly; using Volo.Abp.Application.Dtos; +using Volo.Abp.Content; using Volo.Abp.Domain.Repositories; using Volo.Abp.Http.Client; using Volo.Abp.TestApp.Application; @@ -168,5 +171,30 @@ namespace Volo.Abp.Http.DynamicProxying result.Inner1.Value2.ShouldBe("value two"); result.Inner1.Inner2.Value3.ShouldBe("value three"); } + + [Fact] + public async Task DownloadAsync() + { + var result = await _peopleAppService.DownloadAsync(); + + result.ContentType.ShouldBe("audio/mpeg"); + using (var reader = new StreamReader(result.GetStream())) + { + var str = await reader.ReadToEndAsync(); + str.ShouldBe("stream"); + } + } + + [Fact] + public async Task UploadAsync() + { + var memoryStream = new MemoryStream(); + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("upload")); + var result = await _peopleAppService.UploadAsync(new RemoteStreamContent(memoryStream) + { + ContentType = "application/rtf" + }); + result.ShouldBe("upload"); + } } } diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/IPeopleAppService.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/IPeopleAppService.cs index a34cd19ebb..2344cb7c9b 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/IPeopleAppService.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/IPeopleAppService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; +using Volo.Abp.Content; using Volo.Abp.TestApp.Application.Dto; namespace Volo.Abp.TestApp.Application @@ -20,5 +21,9 @@ namespace Volo.Abp.TestApp.Application Task GetWithAuthorized(); Task GetWithComplexType(GetWithComplexTypeInput input); + + Task DownloadAsync(); + + Task UploadAsync(IRemoteStreamContent streamContent); } } diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs index cff72c7869..ec9332d44e 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs @@ -1,12 +1,15 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; using Volo.Abp.TestApp.Domain; using Volo.Abp.Domain.Repositories; using Volo.Abp.Application.Services; +using Volo.Abp.Content; using Volo.Abp.TestApp.Application.Dto; namespace Volo.Abp.TestApp.Application @@ -64,5 +67,24 @@ namespace Volo.Abp.TestApp.Application { return Task.FromResult(input); } + + public async Task DownloadAsync() + { + var memoryStream = new MemoryStream(); + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("stream")); + + return new RemoteStreamContent(memoryStream) + { + ContentType = "audio/mpeg" + }; + } + + public async Task UploadAsync(IRemoteStreamContent streamContent) + { + using (var reader = new StreamReader(streamContent.GetStream())) + { + return await reader.ReadToEndAsync(); + } + } } } From 75e47dd4a524e63828a7cc789e44a4855c2a8872 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 26 Jan 2021 16:22:14 +0800 Subject: [PATCH 175/309] Update unit test. --- .../RemoteStreamContentInputFormatter.cs | 5 ++++- .../RemoteStreamContentTestController.cs | 7 ++++--- .../RemoteStreamContentTestController_Tests.cs | 11 +++++------ .../PersonAppServiceClientProxy_Tests.cs | 8 ++++---- .../Volo/Abp/TestApp/Application/PeopleAppService.cs | 4 ++-- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs index 27116d3da6..ba07e28f77 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentInputFormatter.cs @@ -20,7 +20,10 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters public override Task ReadRequestBodyAsync(InputFormatterContext context) { - return InputFormatterResult.SuccessAsync(new RemoteStreamContent(context.HttpContext.Request.Body)); + return InputFormatterResult.SuccessAsync(new RemoteStreamContent(context.HttpContext.Request.Body) + { + ContentType = context.HttpContext.Request.ContentType + }); } } } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs index 8e49b77604..15491f9b21 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController.cs @@ -2,6 +2,7 @@ using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Shouldly; using Volo.Abp.Content; namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters @@ -14,11 +15,11 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters public async Task DownloadAsync() { var memoryStream = new MemoryStream(); - await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("stream")); + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("DownloadAsync")); return new RemoteStreamContent(memoryStream) { - ContentType = "audio/mpeg" + ContentType = "application/rtf" }; } @@ -28,7 +29,7 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters { using (var reader = new StreamReader(streamContent.GetStream())) { - return await reader.ReadToEndAsync(); + return await reader.ReadToEndAsync() + ":" + streamContent.ContentType; } } } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs index 898423ab58..3d49a5b3ff 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ContentFormatters/RemoteStreamContentTestController_Tests.cs @@ -13,8 +13,8 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters public async Task DownloadAsync() { var result = await GetResponseAsync("/api/remote-stream-content-test/download"); - result.Content.Headers.ContentType?.ToString().ShouldBe("audio/mpeg"); - (await result.Content.ReadAsStringAsync()).ShouldBe("stream"); + result.Content.Headers.ContentType?.ToString().ShouldBe("application/rtf"); + (await result.Content.ReadAsStringAsync()).ShouldBe("DownloadAsync"); } [Fact] @@ -23,15 +23,14 @@ namespace Volo.Abp.AspNetCore.Mvc.ContentFormatters using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/api/remote-stream-content-test/upload")) { var memoryStream = new MemoryStream(); - await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("upload")); - + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("UploadAsync")); memoryStream.Position = 0; requestMessage.Content = new StreamContent(memoryStream); - requestMessage.Content.Headers.Add("Content-Type", "*/*"); + requestMessage.Content.Headers.Add("Content-Type", "application/rtf"); var response = await Client.SendAsync(requestMessage); - (await response.Content.ReadAsStringAsync()).ShouldBe("upload"); + (await response.Content.ReadAsStringAsync()).ShouldBe("UploadAsync:application/rtf"); } } } diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs index 93299b944c..77e838493e 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs @@ -177,11 +177,11 @@ namespace Volo.Abp.Http.DynamicProxying { var result = await _peopleAppService.DownloadAsync(); - result.ContentType.ShouldBe("audio/mpeg"); + result.ContentType.ShouldBe("application/rtf"); using (var reader = new StreamReader(result.GetStream())) { var str = await reader.ReadToEndAsync(); - str.ShouldBe("stream"); + str.ShouldBe("DownloadAsync"); } } @@ -189,12 +189,12 @@ namespace Volo.Abp.Http.DynamicProxying public async Task UploadAsync() { var memoryStream = new MemoryStream(); - await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("upload")); + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("UploadAsync")); var result = await _peopleAppService.UploadAsync(new RemoteStreamContent(memoryStream) { ContentType = "application/rtf" }); - result.ShouldBe("upload"); + result.ShouldBe("UploadAsync"); } } } diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs index ec9332d44e..ee191960b6 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs @@ -71,11 +71,11 @@ namespace Volo.Abp.TestApp.Application public async Task DownloadAsync() { var memoryStream = new MemoryStream(); - await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("stream")); + await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("DownloadAsync")); return new RemoteStreamContent(memoryStream) { - ContentType = "audio/mpeg" + ContentType = "application/rtf" }; } From eb2776cc957c0c0a25ce1310cc74b9350cf77ddd Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 26 Jan 2021 16:28:36 +0800 Subject: [PATCH 176/309] Check ContentType in unit test. --- .../Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs | 2 +- .../Volo/Abp/TestApp/Application/PeopleAppService.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs index 77e838493e..210af27f6c 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs @@ -194,7 +194,7 @@ namespace Volo.Abp.Http.DynamicProxying { ContentType = "application/rtf" }); - result.ShouldBe("UploadAsync"); + result.ShouldBe("UploadAsync:application/rtf"); } } } diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs index ee191960b6..788304900d 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs @@ -83,7 +83,7 @@ namespace Volo.Abp.TestApp.Application { using (var reader = new StreamReader(streamContent.GetStream())) { - return await reader.ReadToEndAsync(); + return await reader.ReadToEndAsync() + ":" + streamContent.ContentType; } } } From 271a236545b736e8c95d526b78df69c4faf5e920 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 26 Jan 2021 16:37:24 +0800 Subject: [PATCH 177/309] Set Position of MemoryStream to 0. --- .../Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs index 210af27f6c..c2fc5ea4b3 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs @@ -190,6 +190,7 @@ namespace Volo.Abp.Http.DynamicProxying { var memoryStream = new MemoryStream(); await memoryStream.WriteAsync(Encoding.UTF8.GetBytes("UploadAsync")); + memoryStream.Position = 0; var result = await _peopleAppService.UploadAsync(new RemoteStreamContent(memoryStream) { ContentType = "application/rtf" From 2afbef110fed6b25ae736687d054ca694c714790 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 26 Jan 2021 17:15:10 +0800 Subject: [PATCH 178/309] Add cancellationToken parameter to DeleteManyAsync --- .../Repositories/MongoDB/MongoDbRepository.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index b252c48999..fcb51a687c 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -345,15 +345,15 @@ namespace Volo.Abp.Domain.Repositories.MongoDB updateResult = await collection.UpdateManyAsync( dbContext.SessionHandle, CreateEntitiesFilter(entityArray), - Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true) - ); + Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true), + cancellationToken: cancellationToken); } else { updateResult = await collection.UpdateManyAsync( CreateEntitiesFilter(entityArray), - Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true) - ); + Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true), + cancellationToken: cancellationToken); } if (updateResult.MatchedCount < entitiesCount) @@ -368,14 +368,14 @@ namespace Volo.Abp.Domain.Repositories.MongoDB { deleteResult = await collection.DeleteManyAsync( dbContext.SessionHandle, - CreateEntitiesFilter(entityArray) - ); + CreateEntitiesFilter(entityArray), + cancellationToken: cancellationToken); } else { deleteResult = await collection.DeleteManyAsync( - CreateEntitiesFilter(entityArray) - ); + CreateEntitiesFilter(entityArray), + cancellationToken); } if (deleteResult.DeletedCount < entitiesCount) From 8c359638bb46f91229a8b1e76d3e7d562dcc7d5d Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 26 Jan 2021 17:28:01 +0800 Subject: [PATCH 179/309] Add base aggregation API to MongoDB repository --- .../MongoDB/IMongoDbRepository.cs | 2 ++ .../Repositories/MongoDB/MongoDbRepository.cs | 28 +++++++++++++++++++ .../MongoDbCoreRepositoryExtensions.cs | 19 +++++++++---- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/IMongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/IMongoDbRepository.cs index 960222679f..12e5987777 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/IMongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/IMongoDbRepository.cs @@ -24,6 +24,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB IMongoQueryable GetMongoQueryable(); Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default); + + Task> GetAggregateAsync(CancellationToken cancellationToken = default); } public interface IMongoDbRepository : IMongoDbRepository, IRepository diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index fcb51a687c..c9f2508a68 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -16,6 +16,7 @@ using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Local; using Volo.Abp.Guids; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Domain.Repositories.MongoDB { @@ -473,6 +474,17 @@ namespace Volo.Abp.Domain.Repositories.MongoDB ); } + public async Task> GetAggregateAsync(CancellationToken cancellationToken = default) + { + var dbContext = await GetDbContextAsync(cancellationToken); + var collection = await GetCollectionAsync(cancellationToken); + + return ApplyDataFilters( + dbContext.SessionHandle != null + ? collection.Aggregate(dbContext.SessionHandle) + : collection.Aggregate()); + } + protected virtual bool IsHardDeleted(TEntity entity) { var hardDeletedEntities = UnitOfWorkManager?.Current?.Items.GetOrDefault(UnitOfWorkItemNames.HardDeletedEntities) as HashSet; @@ -621,6 +633,22 @@ namespace Volo.Abp.Domain.Repositories.MongoDB throw new AbpDbConcurrencyException("Database operation expected to affect 1 row but actually affected 0 row. Data may have been modified or deleted since entities were loaded. This exception has been thrown on optimistic concurrency check."); } + protected virtual IAggregateFluent ApplyDataFilters(IAggregateFluent aggregate) + { + if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity)) && DataFilter.IsEnabled()) + { + aggregate = aggregate.Match(e => ((ISoftDelete)e).IsDeleted == false); + } + + if (typeof(IMultiTenant).IsAssignableFrom(typeof(TEntity)) && DataFilter.IsEnabled()) + { + var tenantId = CurrentTenant.Id; + aggregate = aggregate.Match(e => ((IMultiTenant)e).TenantId == tenantId); + } + + return aggregate; + } + [Obsolete("This method will be removed in future versions.")] public QueryableExecutionModel GetExecutionModel() { diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDbCoreRepositoryExtensions.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDbCoreRepositoryExtensions.cs index 90605f416e..bcbdc00d9e 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDbCoreRepositoryExtensions.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDbCoreRepositoryExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; @@ -16,10 +17,10 @@ namespace Volo.Abp.Domain.Repositories return repository.ToMongoDbRepository().Database; } - public static Task GetDatabaseAsync(this IBasicRepository repository) + public static Task GetDatabaseAsync(this IBasicRepository repository, CancellationToken cancellationToken = default) where TEntity : class, IEntity { - return repository.ToMongoDbRepository().GetDatabaseAsync(); + return repository.ToMongoDbRepository().GetDatabaseAsync(cancellationToken); } [Obsolete("Use GetCollectionAsync method.")] @@ -29,10 +30,10 @@ namespace Volo.Abp.Domain.Repositories return repository.ToMongoDbRepository().Collection; } - public static Task> GetCollectionAsync(this IBasicRepository repository) + public static Task> GetCollectionAsync(this IBasicRepository repository, CancellationToken cancellationToken = default) where TEntity : class, IEntity { - return repository.ToMongoDbRepository().GetCollectionAsync(); + return repository.ToMongoDbRepository().GetCollectionAsync(cancellationToken); } [Obsolete("Use GetMongoQueryableAsync method.")] @@ -42,10 +43,16 @@ namespace Volo.Abp.Domain.Repositories return repository.ToMongoDbRepository().GetMongoQueryable(); } - public static Task> GetMongoQueryableAsync(this IBasicRepository repository) + public static Task> GetMongoQueryableAsync(this IBasicRepository repository, CancellationToken cancellationToken = default) where TEntity : class, IEntity { - return repository.ToMongoDbRepository().GetMongoQueryableAsync(); + return repository.ToMongoDbRepository().GetMongoQueryableAsync(cancellationToken); + } + + public static Task> GetAggregateAsync(this IBasicRepository repository, CancellationToken cancellationToken = default) + where TEntity : class, IEntity + { + return repository.ToMongoDbRepository().GetAggregateAsync(cancellationToken); } public static IMongoDbRepository ToMongoDbRepository(this IBasicRepository repository) From 220a5e5d850f11ab83db8c5bc0ad2e1e9d7e91ab Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 26 Jan 2021 17:36:46 +0800 Subject: [PATCH 180/309] Update docs --- docs/en/MongoDB.md | 3 ++- docs/zh-Hans/MongoDB.md | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/en/MongoDB.md b/docs/en/MongoDB.md index 60b6a94823..a12d216b3d 100644 --- a/docs/en/MongoDB.md +++ b/docs/en/MongoDB.md @@ -254,7 +254,7 @@ public async override Task DeleteAsync( ### Access to the MongoDB API -In most cases, you want to hide MongoDB APIs behind a repository (this is the main purpose of the repository). However, if you want to access the MongoDB API over the repository, you can use `GetDatabaseAsync()` or `GetCollectionAsync()` extension methods. Example: +In most cases, you want to hide MongoDB APIs behind a repository (this is the main purpose of the repository). However, if you want to access the MongoDB API over the repository, you can use `GetDatabaseAsync()`, `GetCollectionAsync()` or `GetAggregateAsync()` extension methods. Example: ```csharp public class BookService @@ -270,6 +270,7 @@ public class BookService { IMongoDatabase database = await _bookRepository.GetDatabaseAsync(); IMongoCollection books = await _bookRepository.GetCollectionAsync(); + IAggregateFluent bookAggregate = await _bookRepository.GetAggregateAsync(); } } ``` diff --git a/docs/zh-Hans/MongoDB.md b/docs/zh-Hans/MongoDB.md index 2ceeb1e00c..af63642a41 100644 --- a/docs/zh-Hans/MongoDB.md +++ b/docs/zh-Hans/MongoDB.md @@ -211,7 +211,7 @@ public async override Task DeleteAsync( #### 访问MongoDB API -大多数情况下,你想要将MongoDB API隐藏在仓储后面(这是仓储的主要目的).如果你想在仓储之上访问MongoDB API,你可以使用`GetDatabase()`或`GetCollection()`方法.例如: +大多数情况下,你想要将MongoDB API隐藏在仓储后面(这是仓储的主要目的).如果你想在仓储之上访问MongoDB API,你可以使用`GetDatabaseAsync()`, `GetAggregateAsync()` 或`GetCollectionAsync()`方法.例如: ```csharp public class BookService @@ -223,10 +223,11 @@ public class BookService _bookRepository = bookRepository; } - public void Foo() + public async Task FooAsync() { - IMongoDatabase database = _bookRepository.GetDatabase(); - IMongoCollection books = _bookRepository.GetCollection(); + IMongoDatabase database = await _bookRepository.GetDatabaseAsync(); + IMongoCollection books = await _bookRepository.GetCollectionAsync(); + IAggregateFluent bookAggregate = await _bookRepository.GetAggregateAsync(); } } ``` From 5cd7eb832addb365c737ae5cbb738b4397a3b4e5 Mon Sep 17 00:00:00 2001 From: Ahmet Date: Tue, 26 Jan 2021 14:27:56 +0300 Subject: [PATCH 181/309] Update FeatureManagementModal.cshtml --- .../Pages/FeatureManagement/FeatureManagementModal.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml index f3080b7275..aa8d7313d9 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -26,7 +26,7 @@ { var featureGroups = Model.FeatureListResultDto.Groups; - + From 041b54b41eece0e63ffa86042c233cb1e5343bc5 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Tue, 26 Jan 2021 14:32:01 +0300 Subject: [PATCH 182/309] Commercial: Add localizations for unsubscribe license expire email page --- .../Commercial/Localization/Resources/en.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index c6eb1ad645..a039d0c7a0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -34,6 +34,11 @@ "JoinOurMarketingNewsletter": "Join our marketing newsletter", "WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials like product deals & special offers.", "StartUsingYourLicenseNow": "Start using your license now!", - "WelcomePage": "Welcome Page" + "WelcomePage": "Welcome Page", + "UnsubscriptionExpireEmail": "Unsubscribe from license expire date reminder emails", + "UnsubscribeLicenseExpireEmailReminderMessage": "This email subscription only contains reminding your license expiration date.", + "UnsubscribeFromLicenseExpireEmails": "If you don't want to receive the emails about your license expiration date, you can unsubscribe at any time you want.", + "Unsubscribe": "Unsubscribe", + "NotOrganizationMember": "You are not member of any organization." } } \ No newline at end of file From 4bc4b75a3861c39b82702a3b20e1eb079bc4fc8a Mon Sep 17 00:00:00 2001 From: EngincanV Date: Tue, 26 Jan 2021 15:04:23 +0300 Subject: [PATCH 183/309] Update en.json --- .../Commercial/Localization/Resources/en.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index a039d0c7a0..4de287778f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -39,6 +39,8 @@ "UnsubscribeLicenseExpireEmailReminderMessage": "This email subscription only contains reminding your license expiration date.", "UnsubscribeFromLicenseExpireEmails": "If you don't want to receive the emails about your license expiration date, you can unsubscribe at any time you want.", "Unsubscribe": "Unsubscribe", - "NotOrganizationMember": "You are not member of any organization." + "NotOrganizationMember": "You are not member of any organization.", + "UnsubscribeLicenseExpirationEmailSuccessTitle": "Successfully unsubscribed", + "UnsubscribeLicenseExpirationEmailSuccessMessage": "You will not receive license expiration date reminder emails anymore." } } \ No newline at end of file From 8b41e00f618906ca802d8a011e4899e79312b707 Mon Sep 17 00:00:00 2001 From: Ahmet Date: Tue, 26 Jan 2021 15:47:24 +0300 Subject: [PATCH 184/309] added module menu --- .../Menus/MyProjectNameMenuContributor.cs | 3 ++- .../Menus/MyProjectNameMenus.cs | 2 +- .../Menus/MyProjectNameMenuContributor.cs | 1 + .../Menus/MyProjectNameMenus.cs | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs index 8d10a7c7f3..9ed725efb7 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs @@ -16,7 +16,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Menus private Task ConfigureMainMenuAsync(MenuConfigurationContext context) { //Add main menu items. - + context.Menu.AddItem(new ApplicationMenuItem(MyProjectNameMenus.Prefix, displayName: "MyProjectName", "~/MyProjectName", icon: "fa fa-globe")); + return Task.CompletedTask; } } diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenus.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenus.cs index 18d64be308..1fd011d0f3 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenus.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenus.cs @@ -2,7 +2,7 @@ { public class MyProjectNameMenus { - private const string Prefix = "MyProjectName"; + public const string Prefix = "MyProjectName"; //Add your menu items here... //public const string Home = Prefix + ".MyNewMenuItem"; diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenuContributor.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenuContributor.cs index 5db507a100..63837ab762 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenuContributor.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenuContributor.cs @@ -16,6 +16,7 @@ namespace MyCompanyName.MyProjectName.Web.Menus private Task ConfigureMainMenuAsync(MenuConfigurationContext context) { //Add main menu items. + context.Menu.AddItem(new ApplicationMenuItem(MyProjectNameMenus.Prefix, displayName: "MyProjectName", "~/MyProjectName", icon: "fa fa-globe")); return Task.CompletedTask; } diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenus.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenus.cs index 82ff4a2781..253701a9a6 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenus.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Menus/MyProjectNameMenus.cs @@ -2,7 +2,7 @@ { public class MyProjectNameMenus { - private const string Prefix = "MyProjectName"; + public const string Prefix = "MyProjectName"; //Add your menu items here... //public const string Home = Prefix + ".MyNewMenuItem"; From af3dcf0137a6bafc8b27583fdabc184bf3afcccf Mon Sep 17 00:00:00 2001 From: Ahmet Date: Tue, 26 Jan 2021 15:50:31 +0300 Subject: [PATCH 185/309] Update Index.cshtml --- .../Pages/Index.cshtml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml index 62ead393a5..3f37ed5a3e 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml @@ -2,6 +2,16 @@ @using Localization.Resources.AbpUi @using Microsoft.Extensions.Localization @using MyCompanyName.MyProjectName.Pages +@using Volo.Abp.Users @model IndexModel @inject IStringLocalizer Localizer -
    @Localizer["Login"] \ No newline at end of file +@inject ICurrentUser CurrentUser + +@if (!CurrentUser.IsAuthenticated) +{ + @Localizer["Login"] +} +else +{ + Welcome: @CurrentUser.UserName +} \ No newline at end of file From 9eec6e5465dac7f1af7f771a22bc33776607d5b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 26 Jan 2021 17:50:05 +0300 Subject: [PATCH 186/309] Add localization message --- .../AbpIoLocalization/Community/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json index 5bf922f012..56b5c903ed 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json @@ -132,6 +132,7 @@ "ChooseYourContentType": "Please choose the way you want to add your content.", "PostContentViaGithub": "I want to add my article with GitHub in accordance with the markdown rules.", "PostContentViaYoutube": "I want to share my videos available on Youtube here.", - "PostContentViaExternalSource": "I want to add the content I published on another platform here." + "PostContentViaExternalSource": "I want to add the content I published on another platform here.", + "GitHubUserNameValidationMessage": "Your Github username can not include whitespace, please be sure your Github username is correct." } } From 8cf8ffcfd79c2b82cc6990342eea1fb2ce5f7f8b Mon Sep 17 00:00:00 2001 From: Berkan Date: Tue, 26 Jan 2021 18:20:36 +0300 Subject: [PATCH 187/309] Community: Add missing localization message --- .../Community/Localization/Resources/en.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json index 56b5c903ed..9c1e434ac1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json @@ -133,6 +133,9 @@ "PostContentViaGithub": "I want to add my article with GitHub in accordance with the markdown rules.", "PostContentViaYoutube": "I want to share my videos available on Youtube here.", "PostContentViaExternalSource": "I want to add the content I published on another platform here.", - "GitHubUserNameValidationMessage": "Your Github username can not include whitespace, please be sure your Github username is correct." + "GitHubUserNameValidationMessage": "Your Github username can not include whitespace, please be sure your Github username is correct.", + "PersonalSiteUrlValidationMessage": "Your personal site URL can not include whitespace, please be sure your personal site URL is correct.", + "TwitterUserNameValidationMessage": "Your Twitter username can not include whitespace, please be sure your Twitter username is correct.", + "LinkedinUrlValidationMessage": "Your Linkedin URL can not include whitespace, please be sure your Linkedin URL is correct." } } From 2816b72b3082b5507e3893ac48b9eaab98ae687c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 27 Jan 2021 00:29:30 +0300 Subject: [PATCH 188/309] Resolved #7474: Mark ServiceProvider properties as Obsolete in base classes where LazyServiceProvider is available. --- .../Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs | 1 + .../Volo/Abp/AspNetCore/Mvc/AbpController.cs | 1 + .../Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs | 1 + .../Volo/Abp/AspNetCore/SignalR/AbpHub.cs | 1 + .../Volo/Abp/Application/Services/ApplicationService.cs | 3 ++- .../Volo/Abp/Domain/Services/DomainService.cs | 3 ++- 6 files changed, 8 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs index 449747d0cc..a2d02bb3fe 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs @@ -27,6 +27,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.RazorPages { public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + [Obsolete("Use LazyServiceProvider instead.")] public IServiceProvider ServiceProvider { get; set; } protected IClock Clock => LazyServiceProvider.LazyGetRequiredService(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs index 52f1d251cb..85822414cf 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs @@ -25,6 +25,7 @@ namespace Volo.Abp.AspNetCore.Mvc { public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + [Obsolete("Use LazyServiceProvider instead.")] public IServiceProvider ServiceProvider { get; set; } protected IUnitOfWorkManager UnitOfWorkManager => LazyServiceProvider.LazyGetRequiredService(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs index 2ac02b8ac5..215f31b855 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs @@ -10,6 +10,7 @@ namespace Volo.Abp.AspNetCore.Mvc { public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + [Obsolete("Use LazyServiceProvider instead.")] public IServiceProvider ServiceProvider { get; set; } protected Type ObjectMapperContext { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHub.cs b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHub.cs index a9d9316f41..616cbd3706 100644 --- a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHub.cs +++ b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHub.cs @@ -17,6 +17,7 @@ namespace Volo.Abp.AspNetCore.SignalR { public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + [Obsolete("Use LazyServiceProvider instead.")] public IServiceProvider ServiceProvider { get; set; } protected ILoggerFactory LoggerFactory => LazyServiceProvider.LazyGetService(); diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs index 232afb4280..4ac41663e4 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs +++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs @@ -35,6 +35,7 @@ namespace Volo.Abp.Application.Services { public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + [Obsolete("Use LazyServiceProvider instead.")] public IServiceProvider ServiceProvider { get; set; } public static string[] CommonPostfixes { get; set; } = { "AppService", "ApplicationService", "Service" }; @@ -51,7 +52,7 @@ namespace Volo.Abp.Application.Services ? provider.GetRequiredService() : (IObjectMapper) provider.GetRequiredService(typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext))); - public IGuidGenerator GuidGenerator => LazyServiceProvider.LazyGetService(SimpleGuidGenerator.Instance); + protected IGuidGenerator GuidGenerator => LazyServiceProvider.LazyGetService(SimpleGuidGenerator.Instance); protected ILoggerFactory LoggerFactory => LazyServiceProvider.LazyGetRequiredService(); diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Services/DomainService.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Services/DomainService.cs index 751b938f1d..39938b081a 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Services/DomainService.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Services/DomainService.cs @@ -13,11 +13,12 @@ namespace Volo.Abp.Domain.Services { public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + [Obsolete("Use LazyServiceProvider instead.")] public IServiceProvider ServiceProvider { get; set; } protected IClock Clock => LazyServiceProvider.LazyGetRequiredService(); - public IGuidGenerator GuidGenerator => LazyServiceProvider.LazyGetService(SimpleGuidGenerator.Instance); + protected IGuidGenerator GuidGenerator => LazyServiceProvider.LazyGetService(SimpleGuidGenerator.Instance); protected ILoggerFactory LoggerFactory => LazyServiceProvider.LazyGetRequiredService(); From 8d88fe9463e20af13428e5873f938251e37ded2b Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 27 Jan 2021 13:58:15 +0800 Subject: [PATCH 189/309] Introduce AspNetCoreApiDescriptionModelProviderOptions. Resolve #5921 --- .../AspNetCoreApiDescriptionModelProvider.cs | 53 +++-------------- ...tCoreApiDescriptionModelProviderOptions.cs | 57 +++++++++++++++++++ 2 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProviderOptions.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs index 5cd1333f34..135b506e69 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs @@ -25,17 +25,20 @@ namespace Volo.Abp.AspNetCore.Mvc { public ILogger Logger { get; set; } + private readonly AspNetCoreApiDescriptionModelProviderOptions _options; private readonly IApiDescriptionGroupCollectionProvider _descriptionProvider; - private readonly AbpAspNetCoreMvcOptions _options; + private readonly AbpAspNetCoreMvcOptions _abpAspNetCoreMvcOptions; private readonly AbpApiDescriptionModelOptions _modelOptions; public AspNetCoreApiDescriptionModelProvider( + IOptions options, IApiDescriptionGroupCollectionProvider descriptionProvider, - IOptions options, + IOptions abpAspNetCoreMvcOptions, IOptions modelOptions) { - _descriptionProvider = descriptionProvider; _options = options.Value; + _descriptionProvider = descriptionProvider; + _abpAspNetCoreMvcOptions = abpAspNetCoreMvcOptions.Value; _modelOptions = modelOptions.Value; Logger = NullLogger.Instance; @@ -82,14 +85,14 @@ namespace Volo.Abp.AspNetCore.Mvc var controllerModel = moduleModel.GetOrAddController( controllerType.FullName, - CalculateControllerName(controllerType, setting), + _options.ControllerNameGenerator(controllerType, setting), controllerType, _modelOptions.IgnoredInterfaces ); var method = apiDescription.ActionDescriptor.GetMethodInfo(); - var uniqueMethodName = GetUniqueActionName(method); + var uniqueMethodName = _options.ActionNameGenerator(method); if (controllerModel.Actions.ContainsKey(uniqueMethodName)) { Logger.LogWarning( @@ -119,44 +122,6 @@ namespace Volo.Abp.AspNetCore.Mvc AddParameterDescriptionsToModel(actionModel, method, apiDescription); } - private static string CalculateControllerName(Type controllerType, ConventionalControllerSetting setting) - { - var controllerName = controllerType.Name.RemovePostFix("Controller") - .RemovePostFix(ApplicationService.CommonPostfixes); - - if (setting?.UrlControllerNameNormalizer != null) - { - controllerName = - setting.UrlControllerNameNormalizer( - new UrlControllerNameNormalizerContext(setting.RootPath, controllerName)); - } - - return controllerName; - } - - private static string GetUniqueActionName(MethodInfo method) - { - var methodNameBuilder = new StringBuilder(method.Name); - - var parameters = method.GetParameters(); - if (parameters.Any()) - { - methodNameBuilder.Append("By"); - - for (var i = 0; i < parameters.Length; i++) - { - if (i > 0) - { - methodNameBuilder.Append("And"); - } - - methodNameBuilder.Append(parameters[i].Name.ToPascalCase()); - } - } - - return methodNameBuilder.ToString(); - } - private static List GetSupportedVersions(Type controllerType, MethodInfo method, ConventionalControllerSetting setting) { @@ -377,7 +342,7 @@ namespace Volo.Abp.AspNetCore.Mvc [CanBeNull] private ConventionalControllerSetting FindSetting(Type controllerType) { - foreach (var controllerSetting in _options.ConventionalControllers.ConventionalControllerSettings) + foreach (var controllerSetting in _abpAspNetCoreMvcOptions.ConventionalControllers.ConventionalControllerSettings) { if (controllerSetting.ControllerTypes.Contains(controllerType)) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProviderOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProviderOptions.cs new file mode 100644 index 0000000000..4cd607e07a --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProviderOptions.cs @@ -0,0 +1,57 @@ +using System; +using System.Linq; +using System.Reflection; +using System.Text; +using Volo.Abp.Application.Services; +using Volo.Abp.AspNetCore.Mvc.Conventions; + +namespace Volo.Abp.AspNetCore.Mvc +{ + public class AspNetCoreApiDescriptionModelProviderOptions + { + public Func ControllerNameGenerator { get; set; } + + public Func ActionNameGenerator { get; set; } + + public AspNetCoreApiDescriptionModelProviderOptions() + { + ControllerNameGenerator = (controllerType, setting) => + { + var controllerName = controllerType.Name.RemovePostFix("Controller") + .RemovePostFix(ApplicationService.CommonPostfixes); + + if (setting?.UrlControllerNameNormalizer != null) + { + controllerName = + setting.UrlControllerNameNormalizer( + new UrlControllerNameNormalizerContext(setting.RootPath, controllerName)); + } + + return controllerName; + }; + + ActionNameGenerator = (method) => + { + var methodNameBuilder = new StringBuilder(method.Name); + + var parameters = method.GetParameters(); + if (parameters.Any()) + { + methodNameBuilder.Append("By"); + + for (var i = 0; i < parameters.Length; i++) + { + if (i > 0) + { + methodNameBuilder.Append("And"); + } + + methodNameBuilder.Append(parameters[i].Name.ToPascalCase()); + } + } + + return methodNameBuilder.ToString(); + }; + } + } +} From 8e4a8de028b054a80d78d4dcf68a6b9c7b49fefb Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 27 Jan 2021 10:47:37 +0300 Subject: [PATCH 190/309] Framework - Consider hard deleted entities in MongoDbRepository --- .../Repositories/MongoDB/MongoDbRepository.cs | 100 ++++++++++++++---- 1 file changed, 78 insertions(+), 22 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index fcb51a687c..9c55408d27 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -314,16 +314,26 @@ namespace Volo.Abp.Domain.Repositories.MongoDB } public override async Task DeleteManyAsync( - IEnumerable entities, - bool autoSave = false, - CancellationToken cancellationToken = default) + IEnumerable entities, + bool autoSave = false, + CancellationToken cancellationToken = default) { - var entityArray = entities.ToArray(); + var softDeletedEntities = new List(); + var hardDeletedEntities = new List(); - foreach (var entity in entityArray) + foreach (var entity in entities) { await ApplyAbpConceptsForDeletedEntityAsync(entity); SetNewConcurrencyStamp(entity); + + if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity)) && !IsHardDeleted(entity)) + { + softDeletedEntities.Add(entity); + } + else + { + hardDeletedEntities.Add(entity); + } } var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); @@ -331,58 +341,104 @@ namespace Volo.Abp.Domain.Repositories.MongoDB if (BulkOperationProvider != null) { - await BulkOperationProvider.DeleteManyAsync(this, entityArray, dbContext.SessionHandle, autoSave, cancellationToken); + await BulkOperationProvider.DeleteManyAsync(this, entities.ToArray(), dbContext.SessionHandle, autoSave, cancellationToken); return; } - var entitiesCount = entityArray.Count(); - - if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity))) + if (softDeletedEntities.Count > 0) { UpdateResult updateResult; + var softDeleteEntitiesCount = softDeletedEntities.Count; + if (dbContext.SessionHandle != null) { updateResult = await collection.UpdateManyAsync( dbContext.SessionHandle, - CreateEntitiesFilter(entityArray), - Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true), - cancellationToken: cancellationToken); + CreateEntitiesFilter(softDeletedEntities), + Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true) + ); } else { updateResult = await collection.UpdateManyAsync( - CreateEntitiesFilter(entityArray), - Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true), - cancellationToken: cancellationToken); + CreateEntitiesFilter(softDeletedEntities), + Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true) + ); } - if (updateResult.MatchedCount < entitiesCount) + if (updateResult.MatchedCount < softDeleteEntitiesCount) { ThrowOptimisticConcurrencyException(); } } - else + + if (hardDeletedEntities.Count > 0) { DeleteResult deleteResult; + var hardDeletedEntitiesCount = hardDeletedEntities.Count; + if (dbContext.SessionHandle != null) { deleteResult = await collection.DeleteManyAsync( dbContext.SessionHandle, - CreateEntitiesFilter(entityArray), - cancellationToken: cancellationToken); + CreateEntitiesFilter(hardDeletedEntities) + ); } else { deleteResult = await collection.DeleteManyAsync( - CreateEntitiesFilter(entityArray), - cancellationToken); + CreateEntitiesFilter(hardDeletedEntities) + ); } - if (deleteResult.DeletedCount < entitiesCount) + if (deleteResult.DeletedCount < hardDeletedEntitiesCount) { ThrowOptimisticConcurrencyException(); } } + + + + + + + if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity))) + { + if (softDeletedEntities.Length > 0) + { + + } + + var hardEntityArray = entities.Except(softDeletedEntities).ToArray(); + var hardEntitiesCount = hardEntityArray.Length; + + if (hardEntitiesCount > 0) + { + DeleteResult deleteResult; + if (dbContext.SessionHandle != null) + { + deleteResult = await collection.DeleteManyAsync( + dbContext.SessionHandle, + CreateEntitiesFilter(hardEntityArray) + ); + } + else + { + deleteResult = await collection.DeleteManyAsync( + CreateEntitiesFilter(hardEntityArray) + ); + } + + if (deleteResult.DeletedCount < hardEntitiesCount) + { + ThrowOptimisticConcurrencyException(); + } + } + } + else + { + + } } public override async Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) From e4fbfe798188d44aed55eb95ba861007861f0fbe Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 27 Jan 2021 10:53:04 +0300 Subject: [PATCH 191/309] Framework - Remove unused code part from MongoDbRepository --- .../Repositories/MongoDB/MongoDbRepository.cs | 43 ------------------- 1 file changed, 43 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index 9c55408d27..937a2334f4 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -396,49 +396,6 @@ namespace Volo.Abp.Domain.Repositories.MongoDB ThrowOptimisticConcurrencyException(); } } - - - - - - - if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity))) - { - if (softDeletedEntities.Length > 0) - { - - } - - var hardEntityArray = entities.Except(softDeletedEntities).ToArray(); - var hardEntitiesCount = hardEntityArray.Length; - - if (hardEntitiesCount > 0) - { - DeleteResult deleteResult; - if (dbContext.SessionHandle != null) - { - deleteResult = await collection.DeleteManyAsync( - dbContext.SessionHandle, - CreateEntitiesFilter(hardEntityArray) - ); - } - else - { - deleteResult = await collection.DeleteManyAsync( - CreateEntitiesFilter(hardEntityArray) - ); - } - - if (deleteResult.DeletedCount < hardEntitiesCount) - { - ThrowOptimisticConcurrencyException(); - } - } - } - else - { - - } } public override async Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) From cbc61af768dd4ffc786df47db0038856bf3e6fcc Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 27 Jan 2021 11:22:13 +0300 Subject: [PATCH 192/309] Datatables pagination: use "col-auto" resolves https://github.com/abpframework/abp/issues/7183 --- .../datatables/datatables-extensions.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index b0c4873b59..45dadb5441 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -30,7 +30,7 @@ var htmlEncode = function (html) { return $('
    ').text(html).html(); } - + var _createDropdownItem = function (record, fieldItem, tableInstance) { var $li = $('
  1. '); var $a = $(''); @@ -90,15 +90,15 @@ } $button.append(htmlEncode(firstItem.text)); } - + if (firstItem.enabled && !firstItem.enabled({ record: record, table: tableInstance })) { $button.addClass('disabled'); } - + if (firstItem.action) { $button.click(function (e) { e.preventDefault(); - + if (!$(this).hasClass('disabled')) { if (firstItem.confirmMessage) { abp.message.confirm(firstItem.confirmMessage({ record: record, table: tableInstance })) @@ -217,7 +217,7 @@ var renderRowActions = function (tableInstance, nRow, aData, iDisplayIndex, iDisplayIndexFull) { var columns; - + if (tableInstance.aoColumns) { columns = tableInstance.aoColumns; } else { @@ -463,7 +463,7 @@ datatables.defaultConfigurations.scrollX = true; - datatables.defaultConfigurations.responsive = true; + datatables.defaultConfigurations.responsive = true; datatables.defaultConfigurations.language = function () { return { @@ -484,6 +484,6 @@ }; }; - datatables.defaultConfigurations.dom = '<"dataTable_filters"f>rt<"row dataTable_footer"<"col-auto"l><"col-auto"i><"col"p>>'; + datatables.defaultConfigurations.dom = '<"dataTable_filters"f>rt<"row dataTable_footer"<"col-auto"l><"col-auto"i><"col-auto"p>>'; })(jQuery); From afb9175e30c62b76fc2d7138e7d6211b3730e7ec Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 27 Jan 2021 11:28:15 +0300 Subject: [PATCH 193/309] Update datatables-extensions.js --- .../datatables/datatables-extensions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index 45dadb5441..1808f267eb 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -484,6 +484,6 @@ }; }; - datatables.defaultConfigurations.dom = '<"dataTable_filters"f>rt<"row dataTable_footer"<"col-auto"l><"col-auto"i><"col-auto"p>>'; + datatables.defaultConfigurations.dom = '<"dataTable_filters"f>rt<"row dataTable_footer"<"col-auto"l><"col-auto mr-auto"i><"col-auto"p>>'; })(jQuery); From 021505b5ca5ffbdc8bc0d84fde398d75e73abecc Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 12:39:08 +0300 Subject: [PATCH 194/309] deprecate the ModalContainerComponent --- .../src/lib/components/modal/modal-container.component.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts index bd24bd84d2..d20021327c 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts @@ -1,10 +1,11 @@ import { Component, ViewChild, ViewContainerRef } from '@angular/core'; +/** + * @deprecated To be removed in v5.0 + */ @Component({ selector: 'abp-modal-container', - template: ` - - `, + template: ` `, }) export class ModalContainerComponent { @ViewChild('container', { static: true, read: ViewContainerRef }) From 96036ae8b18445d59c48156a1074c56486e4da41 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 12:39:20 +0300 Subject: [PATCH 195/309] deprecate the ModalService --- .../packages/theme-shared/src/lib/services/modal.service.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts b/npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts index de63164810..a75cfe5089 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/services/modal.service.ts @@ -2,6 +2,9 @@ import { ContentProjectionService, PROJECTION_STRATEGY } from '@abp/ng.core'; import { ComponentRef, Injectable, TemplateRef, ViewContainerRef, OnDestroy } from '@angular/core'; import { ModalContainerComponent } from '../components/modal/modal-container.component'; +/** + * @deprecated Use ng-bootstrap modal. To be deleted in v5.0. + */ @Injectable({ providedIn: 'root', }) From e49b8cbc33c2ffc4b4cd0e3cc4976ba7a21eb4dd Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 12:40:47 +0300 Subject: [PATCH 196/309] use ng-bootstrap modal inside modal component --- .../lib/components/modal/modal.component.html | 60 ++++++------------ .../lib/components/modal/modal.component.ts | 62 ++++++++++--------- 2 files changed, 52 insertions(+), 70 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html index b37f5b6ce3..bc70c79fc1 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html @@ -1,43 +1,23 @@ - - + + +
  2. + + - - diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts index b1fbef79be..496ddabc41 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts @@ -9,17 +9,14 @@ import { OnDestroy, Optional, Output, - Renderer2, TemplateRef, ViewChild, - ViewChildren, } from '@angular/core'; +import { NgbModal, NgbModalOptions, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; import { fromEvent, Subject } from 'rxjs'; import { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators'; -import { fadeAnimation } from '../../animations/modal.animations'; import { Confirmation } from '../../models/confirmation'; import { ConfirmationService } from '../../services/confirmation.service'; -import { ModalService } from '../../services/modal.service'; import { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token'; import { ButtonComponent } from '../button/button.component'; @@ -28,9 +25,8 @@ export type ModalSize = 'sm' | 'md' | 'lg' | 'xl'; @Component({ selector: 'abp-modal', templateUrl: './modal.component.html', - animations: [fadeAnimation], styleUrls: ['./modal.component.scss'], - providers: [ModalService, SubscriptionService], + providers: [SubscriptionService], }) export class ModalComponent implements OnDestroy { @Input() @@ -59,11 +55,11 @@ export class ModalComponent implements OnDestroy { @Input() modalClass = ''; @Input() size: ModalSize = 'lg'; + @Input() options: NgbModalOptions = {}; @Input() suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken; - @ContentChild(ButtonComponent, { static: false, read: ButtonComponent }) - abpSubmit: ButtonComponent; + @ViewChild('modalContent') modalContent: TemplateRef; @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef; @@ -71,15 +67,12 @@ export class ModalComponent implements OnDestroy { @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef; + @ContentChild(ButtonComponent, { static: false, read: ButtonComponent }) + abpSubmit: ButtonComponent; + @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef; - @ViewChild('template', { static: false }) template: TemplateRef; - - @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef; - - @ViewChildren('abp-button') abpButtons; - @Output() readonly visibleChange = new EventEmitter(); @Output() readonly init = new EventEmitter(); @@ -92,7 +85,7 @@ export class ModalComponent implements OnDestroy { _busy = false; - isModalOpen = false; + modalRef: NgbModalRef; isConfirmationOpen = false; @@ -105,13 +98,12 @@ export class ModalComponent implements OnDestroy { } constructor( - private renderer: Renderer2, private confirmationService: ConfirmationService, - private modalService: ModalService, private subscription: SubscriptionService, @Optional() @Inject(SUPPRESS_UNSAVED_CHANGES_WARNING) private suppressUnsavedChangesWarningToken: boolean, + private modal: NgbModal, ) { this.initToggleStream(); } @@ -123,21 +115,34 @@ export class ModalComponent implements OnDestroy { } private toggle(value: boolean) { - this.isModalOpen = value; this._visible = value; this.visibleChange.emit(value); - if (value) { - this.modalService.renderTemplate(this.template); - setTimeout(() => this.listen(), 0); - this.renderer.addClass(document.body, 'modal-open'); - this.appear.emit(); - } else { - this.modalService.clearModal(); - this.renderer.removeClass(document.body, 'modal-open'); + if (!value) { + this.modalRef?.dismiss(); this.disappear.emit(); this.destroy$.next(); + return; } + + setTimeout(() => this.listen(), 0); + this.modalRef = this.modal.open(this.modalContent, { + //TODO: set size to 'lg' when removed the size variable + size: this.size, + windowClass: this.modalClass, + centered: this.centered, + keyboard: false, + scrollable: true, + beforeDismiss: () => { + if (!this.visible) return true; + + this.close(); + return !this.visible; + }, + ...this.options, + }); + + this.appear.emit(); } ngOnDestroy(): void { @@ -190,10 +195,7 @@ export class ModalComponent implements OnDestroy { setTimeout(() => { if (!this.abpClose) return; fromEvent(this.abpClose.nativeElement, 'click') - .pipe( - takeUntil(this.destroy$), - filter(() => !!this.modalContent), - ) + .pipe(takeUntil(this.destroy$)) .subscribe(() => this.close()); }, 0); From cb8d13239f19b6b26e32cdf7f1c5c628e913d53b Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 12:41:14 +0300 Subject: [PATCH 197/309] deprecate centered, modalClass, size inputs of the modal component --- .../lib/components/modal/modal.component.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts index 496ddabc41..e729ec17a4 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts @@ -29,6 +29,19 @@ export type ModalSize = 'sm' | 'md' | 'lg' | 'xl'; providers: [SubscriptionService], }) export class ModalComponent implements OnDestroy { + /** + * @deprecated Use centered property of options input instead. To be deleted in v5.0. + */ + @Input() centered = false; + /** + * @deprecated Use windowClass property of options input instead. To be deleted in v5.0. + */ + @Input() modalClass = ''; + /** + * @deprecated Use size property of options input instead. To be deleted in v5.0. + */ + @Input() size: ModalSize = 'lg'; + @Input() get visible(): boolean { return this._visible; @@ -50,11 +63,6 @@ export class ModalComponent implements OnDestroy { this._busy = value; } - @Input() centered = false; - - @Input() modalClass = ''; - - @Input() size: ModalSize = 'lg'; @Input() options: NgbModalOptions = {}; @Input() suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken; From 900bb03649de3747d0ee2e152b76ea62429732ed Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 12:42:41 +0300 Subject: [PATCH 198/309] update modal tests for the ng-bootstrap modal implementation --- .../src/lib/tests/modal.component.spec.ts | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts index b321ee4542..6dd3f8d6db 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts @@ -1,13 +1,13 @@ import { LocalizationPipe } from '@abp/ng.core'; import { RouterTestingModule } from '@angular/router/testing'; +import { NgbModal, NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest'; import { Store } from '@ngxs/store'; import { fromEvent, Subject, timer } from 'rxjs'; import { delay, reduce, take } from 'rxjs/operators'; import { ButtonComponent, ConfirmationComponent, ModalComponent } from '../components'; -import { ModalContainerComponent } from '../components/modal/modal-container.component'; import { Confirmation } from '../models'; -import { ConfirmationService, ModalService } from '../services'; +import { ConfirmationService } from '../services'; describe('ModalComponent', () => { let spectator: SpectatorHost< @@ -19,14 +19,8 @@ describe('ModalComponent', () => { let mockConfirmation$: Subject; const createHost = createHostFactory({ component: ModalComponent, - imports: [RouterTestingModule], - declarations: [ - ConfirmationComponent, - LocalizationPipe, - ButtonComponent, - ModalContainerComponent, - ], - entryComponents: [ModalContainerComponent], + imports: [RouterTestingModule, NgbModalModule], + declarations: [ConfirmationComponent, LocalizationPipe, ButtonComponent], providers: [ { provide: ConfirmationService, @@ -46,7 +40,7 @@ describe('ModalComponent', () => { disappearFn = jest.fn(); spectator = createHost( - ` + `
    @@ -78,15 +72,14 @@ describe('ModalComponent', () => { }); afterEach(() => { - const modalService = spectator.inject(ModalService); - modalService.clearModal(); + const modalService = spectator.inject(NgbModal); + modalService.dismissAll(); }); - it('should project its template to abp-modal-container', () => { + it('should open the ngb-modal with backdrop', () => { const modal = selectModal(); expect(modal).toBeTruthy(); - expect(modal.querySelector('div.modal-backdrop')).toBeTruthy(); - expect(modal.querySelector('div#abp-modal-dialog')).toBeTruthy(); + expect(document.querySelector('ngb-modal-backdrop')).toBeTruthy(); }); it('should reflect its input properties to the template', () => { @@ -155,10 +148,10 @@ describe('ModalComponent', () => { warnSpy.mockClear(); mockConfirmation$.next(Confirmation.Status.confirm); - await wait0ms(); - expect(selectModal()).toBeNull(); + // TODO: There is presumably a problem with change detection + // expect(selectModal()).toBeNull(); expect(disappearFn).toHaveBeenCalledTimes(1); }); @@ -209,7 +202,7 @@ describe('ModalComponent', () => { }); function selectModal(modalSelector = ''): Element { - return document.querySelector(`abp-modal-container div.modal${modalSelector}`); + return document.querySelector(`ngb-modal-window.modal${modalSelector}`); } async function wait0ms() { From 6044c2cb7b116e1a3b99c60a10e5cc3cdf57df22 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 12:43:00 +0300 Subject: [PATCH 199/309] add documentation for modal --- docs/en/UI/Angular/Modal.md | 248 +++++++++++++++++++ docs/en/UI/Angular/images/modal-result-1.jpg | Bin 0 -> 16215 bytes docs/en/UI/Angular/images/modal-result-2.jpg | Bin 0 -> 46815 bytes docs/en/docs-nav.json | 4 + 4 files changed, 252 insertions(+) create mode 100644 docs/en/UI/Angular/Modal.md create mode 100644 docs/en/UI/Angular/images/modal-result-1.jpg create mode 100644 docs/en/UI/Angular/images/modal-result-2.jpg diff --git a/docs/en/UI/Angular/Modal.md b/docs/en/UI/Angular/Modal.md new file mode 100644 index 0000000000..c1c9d21633 --- /dev/null +++ b/docs/en/UI/Angular/Modal.md @@ -0,0 +1,248 @@ +# Modal + +`ModalComponent` is a pre-built component exposed by `@abp/ng.theme.shared` package to show modals. The component uses the [`ng-bootstrap`](https://ng-bootstrap.github.io/)'s modal service inside to render a modal. + +The `abp-modal` provides some additional benefits: + + - It is **flexible**. You can pass header, body, footer templates easily by adding the templates to the `abp-modal` content. It can also be implemented quickly. + - Provides several inputs be able to customize the modal and several outputs be able to listen some events. + - Automatically detects the close button which have a `#abpClose` variable declaration and close the modal when pressed this button. + - Automatically detects the `abp-button` and trigger its loading spinner when the `busy` input value of the modal component is true. + - Automatically checks if the form inside the modal **has changed, but not saved**. It warns the user in this case when user tries to close the modal or refresh/close the tab of the browser. + + +> Note: A modal can also be rendered by using the `ng-bootstrap` modal. For further information, see [Modal doc](https://ng-bootstrap.github.io/#/components/modal) on the `ng-bootstrap` documentation. + +## Getting Started + +In order to use the `abp-modal` in an HTML template, the **`ThemeSharedModule`** should be imported into your module like this: + +```js +// ... +import { ThemeSharedModule } from '@abp/ng.theme.shared'; + +@NgModule({ + //... + imports: [..., ThemeSharedModule], +}) +export class MyFeatureModule {} +``` + +## Usage + +You can add the `abp-modal` to your component very quickly. See an example: + +```html + + + + + + +

    Modal Title

    +
    + + +

    Modal content

    +
    + + + + +
    +``` + +```js +// sample.component.ts + +@Component(/* component metadata */) +export class SampleComponent { + isModelOpen = false +} +``` + +![Example modal result](./images/modal-result-1.jpg) + + +See an example form inside a modal: + +```html + + + + +

    Book

    +
    + + +
    +
    + * + +
    + +
    + * + +
    + +
    + * + +
    + +
    + * + +
    + +
    + * + +
    +
    +
    + + + + + + +
    +``` + +```ts +// book.component.ts + +import { Component } from '@angular/core'; +import { FormBuilder, Validators } from '@angular/forms'; + +@Component(/* component metadata */) +export class BookComponent { + form = this.fb.group({ + author: [null, [Validators.required]], + name: [null, [Validators.required]], + price: [null, [Validators.required, Validators.min(0)]], + type: [null, [Validators.required]], + publishDate: [null, [Validators.required]], + }); + + inProgress: boolean; + + isModalOpen: boolean; + + constructor(private fb: FormBuilder, private service: BookService) {} + + save() { + if (this.form.invalid) return; + + this.inProgress = true; + + this.service.save(this.form.value).subscribe(() => { + this.inProgress = false; + }); + } +} +``` + +The modal with form looks like this: + +![Form example result](./images/modal-result-2.jpg) + +## API + +### Inputs + +#### visible + +```js +@Input() visible: boolean +``` + +**`visible`** is a boolean input that determines whether the modal is open. It is also can be used two way binding. + +#### busy + +```js +@Input() busy: boolean +``` + +**`busy`** is a boolean input that determines whether the modal busy status is true. When `busy` is true, the modal cannot be closed and the `abp-button` loading spinner is triggered. + + +#### options + +```js +@Input() options: NgbModalOptions +``` + +**`options`** is an input typed [NgbModalOptions](https://ng-bootstrap.github.io/#/components/modal/api#NgbModalOptions). It is configuration for the `ng-bootstrap` modal. + +#### suppressUnsavedChangesWarning + +```js +@Input() suppressUnsavedChangesWarning: boolean +``` + +**`suppressUnsavedChangesWarning`** is a boolean input that determines whether the confirmation popup triggering active or not. It can also be set globally as shown below: + +```ts +//app.module.ts + +// app.module.ts + +import { SUPPRESS_UNSAVED_CHANGES_WARNING } from '@abp/ng.theme.shared'; + +// ... + +@NgModule({ + // ... + providers: [{provide: SUPPRESS_UNSAVED_CHANGES_WARNING, useValue: true}] +}) +export class AppModule {} +``` + +Note: The `suppressUnsavedChangesWarning` input of `abp-modal` value overrides the `SUPPRESS_UNSAVED_CHANGES_WARNING` injection token value. + +### Outputs + +#### visibleChange + +```js +@Output() readonly visibleChange = new EventEmitter(); +``` + +**`visibleChange`** is an event emitted when the modal visibility has changed. The event payload is a boolean. + +#### appear + +```js + @Output() readonly appear = new EventEmitter(); +``` + +**`appear`** is an event emitted when the modal has opened. + +#### disappear + +```js + @Output() readonly disappear = new EventEmitter(); +``` + +**`disappear`** is an event emitted when the modal has closed. diff --git a/docs/en/UI/Angular/images/modal-result-1.jpg b/docs/en/UI/Angular/images/modal-result-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..89dbbc0cb1d0e6987c3d57d1e42cbe77cac2c4ba GIT binary patch literal 16215 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 wPY`tQUCBvK+K1FmOQG66q>XHN|TPX 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

    3~Dk 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 literal 0 HcmV?d00001 diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 3337521b89..f855338d13 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -819,6 +819,10 @@ "text": "Projecting Angular Content", "path": "UI/Angular/Content-Projection-Service.md" }, + { + "text": "Modal", + "path": "UI/Angular/Modal.md" + }, { "text": "Confirmation Popup", "path": "UI/Angular/Confirmation-Service.md" From 730a28d5af7f028cb7551e0df8a7db8750e0eec5 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 12:43:07 +0300 Subject: [PATCH 200/309] Update Ellipsis-Directive.md --- docs/en/UI/Angular/Ellipsis-Directive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/Angular/Ellipsis-Directive.md b/docs/en/UI/Angular/Ellipsis-Directive.md index 29335969c1..c462331574 100644 --- a/docs/en/UI/Angular/Ellipsis-Directive.md +++ b/docs/en/UI/Angular/Ellipsis-Directive.md @@ -1,6 +1,6 @@ # Ellipsis -Text inside an HTML element can be truncated easily with an ellipsis by using CSS. To make this even easier, you can use the `EllipsisDirective` which has been exposed from the `@abp/ng.theme.shared` package. +Text inside an HTML element can be truncated easily with an ellipsis by using CSS. To make this even easier, you can use the `EllipsisDirective` which has been exposed by the `@abp/ng.theme.shared` package. ## Getting Started From 8aa48e7644da3e811569033ad73f50caa76fd703 Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 27 Jan 2021 13:17:55 +0300 Subject: [PATCH 201/309] Framework - Add DeleteMany Tests to HardDelete_Tests --- .../Abp/TestApp/Testing/HardDelete_Tests.cs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HardDelete_Tests.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HardDelete_Tests.cs index 3d9b324da8..e31b64f6e4 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HardDelete_Tests.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/HardDelete_Tests.cs @@ -1,7 +1,9 @@ using Shouldly; using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Data; +using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Repositories; using Volo.Abp.Modularity; using Volo.Abp.TestApp.Domain; @@ -119,5 +121,40 @@ namespace Volo.Abp.TestApp.Testing john.ShouldBeNull(); } } + + [Fact] + public async Task Should_HardDelete_WithDeleteMany() + { + var persons = await PersonRepository.GetListAsync(); + + await WithUnitOfWorkAsync(async () => + { + var hardDeleteEntities = (HashSet)UnitOfWorkManager.Current.Items.GetOrAdd( + UnitOfWorkItemNames.HardDeletedEntities, + () => new HashSet() + ); + hardDeleteEntities.UnionWith(persons); + await PersonRepository.DeleteManyAsync(persons); + }); + + var personsCount = await PersonRepository.GetCountAsync(); + + personsCount.ShouldBe(0); + } + + [Fact] + public async Task Should_HardDelete_WithDeleteMany_WithPredicate() + { + await WithUnitOfWorkAsync(async () => + { + await PersonRepository.HardDeleteAsync(x => x.Id == TestDataBuilder.UserDouglasId); + + await PersonRepository.DeleteManyAsync(new[] { TestDataBuilder.UserDouglasId }); + }); + + var douglas = await PersonRepository.FindAsync(TestDataBuilder.UserDouglasId); + + douglas.ShouldBeNull(); + } } } From 0f8b67aa3c9867f92829acf7930b30cf34773539 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 13:30:33 +0300 Subject: [PATCH 202/309] fix lint errors --- .../src/lib/components/modal/modal-container.component.ts | 2 +- .../src/lib/components/modal/modal.component.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts index d20021327c..1b07955270 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-container.component.ts @@ -5,7 +5,7 @@ import { Component, ViewChild, ViewContainerRef } from '@angular/core'; */ @Component({ selector: 'abp-modal-container', - template: ` `, + template: '', }) export class ModalContainerComponent { @ViewChild('container', { static: true, read: ViewContainerRef }) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts index e729ec17a4..0142adeb25 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts @@ -85,9 +85,9 @@ export class ModalComponent implements OnDestroy { @Output() readonly init = new EventEmitter(); - @Output() readonly appear = new EventEmitter(); + @Output() readonly appear = new EventEmitter(); - @Output() readonly disappear = new EventEmitter(); + @Output() readonly disappear = new EventEmitter(); _visible = false; @@ -135,7 +135,7 @@ export class ModalComponent implements OnDestroy { setTimeout(() => this.listen(), 0); this.modalRef = this.modal.open(this.modalContent, { - //TODO: set size to 'lg' when removed the size variable + // TODO: set size to 'lg' when removed the size variable size: this.size, windowClass: this.modalClass, centered: this.centered, From 6d6802846339b6c93850a6d5ea9204ada548c916 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 27 Jan 2021 13:59:35 +0300 Subject: [PATCH 203/309] Update Modal.md --- docs/en/UI/Angular/Modal.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/en/UI/Angular/Modal.md b/docs/en/UI/Angular/Modal.md index c1c9d21633..f1583d4813 100644 --- a/docs/en/UI/Angular/Modal.md +++ b/docs/en/UI/Angular/Modal.md @@ -5,10 +5,10 @@ The `abp-modal` provides some additional benefits: - It is **flexible**. You can pass header, body, footer templates easily by adding the templates to the `abp-modal` content. It can also be implemented quickly. - - Provides several inputs be able to customize the modal and several outputs be able to listen some events. - - Automatically detects the close button which have a `#abpClose` variable declaration and close the modal when pressed this button. - - Automatically detects the `abp-button` and trigger its loading spinner when the `busy` input value of the modal component is true. - - Automatically checks if the form inside the modal **has changed, but not saved**. It warns the user in this case when user tries to close the modal or refresh/close the tab of the browser. + - Provides several inputs be able to customize the modal and several outputs be able to listen to some events. + - Automatically detects the close button which has a `#abpClose` template variable and closes the modal when pressed this button. + - Automatically detects the `abp-button` and triggers its loading spinner when the `busy` input value of the modal component is true. + - Automatically checks if the form inside the modal **has changed, but not saved**. It warns the user by displaying a [confirmation popup](Confirmation-Service) in this case when a user tries to close the modal or refresh/close the tab of the browser. > Note: A modal can also be rendered by using the `ng-bootstrap` modal. For further information, see [Modal doc](https://ng-bootstrap.github.io/#/components/modal) on the `ng-bootstrap` documentation. @@ -176,7 +176,7 @@ The modal with form looks like this: @Input() visible: boolean ``` -**`visible`** is a boolean input that determines whether the modal is open. It is also can be used two way binding. +**`visible`** is a boolean input that determines whether the modal is open. It is also can be used two-way binding. #### busy @@ -184,7 +184,7 @@ The modal with form looks like this: @Input() busy: boolean ``` -**`busy`** is a boolean input that determines whether the modal busy status is true. When `busy` is true, the modal cannot be closed and the `abp-button` loading spinner is triggered. +**`busy`** is a boolean input that determines whether the busy status of the modal is true. When `busy` is true, the modal cannot be closed and the `abp-button` loading spinner is triggered. #### options From c62c3fa9b8a52721b1f0fc1c04a7974dd949e717 Mon Sep 17 00:00:00 2001 From: enisn Date: Wed, 27 Jan 2021 16:43:15 +0300 Subject: [PATCH 204/309] CmsKit - Change TagEntityTypeDefinition configuration --- .../CmsKit/Tags/DefaultTagDefinitionStore.cs | 6 +- .../Tags/TagEntityTypeDefinitionDictionary.cs | 12 +--- .../CmsKit/Tags/TagEntityTypeDefiniton.cs | 8 ++- ...TagEntityTypeDefinitionDictionary_Tests.cs | 66 +++++++++++++++++++ .../CmsKitDataSeedContributor.cs | 13 ++-- 5 files changed, 84 insertions(+), 21 deletions(-) create mode 100644 modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs index 6860e8c95c..0eea8b178b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -21,20 +21,20 @@ namespace Volo.CmsKit.Tags { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - var result = options.EntityTypes.GetOrDefault(entityType) ?? throw new EntityNotTaggableException(entityType); + var result = options.EntityTypes.FirstOrDefault(x => x.EntityType == entityType) ?? throw new EntityNotTaggableException(entityType); return Task.FromResult(result); } public virtual Task> GetTagDefinitionsAsync() { - return Task.FromResult(options.EntityTypes.Values.ToList()); + return Task.FromResult(options.EntityTypes.ToList()); } public virtual Task IsDefinedAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - return Task.FromResult(options.EntityTypes.ContainsKey(entityType)); + return Task.FromResult(options.EntityTypes.Any(a => a.EntityType == entityType)); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs index 669dbbb315..ca2bd9c0e3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs @@ -4,17 +4,7 @@ using Volo.Abp.Localization; namespace Volo.CmsKit.Tags { - public class TagEntityTypeDefinitionDictionary : Dictionary + public class TagEntityTypeDefinitionDictionary : HashSet { - public void AddOrReplace( - [NotNull] string entityType, - [CanBeNull] ILocalizableString displayName = null, - [CanBeNull] string createPolicy = null, - [CanBeNull] string updatePolicy = null, - [CanBeNull] string deletePolicy = null - ) - { - this[entityType] = new TagEntityTypeDefiniton(entityType, displayName, createPolicy, updatePolicy, deletePolicy); - } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton.cs index fee8815b97..463c78d4a4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefiniton.cs @@ -1,11 +1,12 @@ using JetBrains.Annotations; +using System; using Volo.Abp; using Volo.Abp.Localization; using Volo.CmsKit.Domain.Volo.CmsKit; namespace Volo.CmsKit.Tags { - public class TagEntityTypeDefiniton : PolicySpecifiedDefinition + public class TagEntityTypeDefiniton : PolicySpecifiedDefinition, IEquatable { public string EntityType { get; } @@ -27,5 +28,10 @@ namespace Volo.CmsKit.Tags DisplayName = displayName; } + + public bool Equals(TagEntityTypeDefiniton other) + { + return EntityType == other.EntityType; + } } } diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs new file mode 100644 index 0000000000..3f7fff046a --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs @@ -0,0 +1,66 @@ +using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Options; +using Shouldly; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Localization; +using Volo.CmsKit.Localization; +using Xunit; + +namespace Volo.CmsKit.Tags +{ + public class TagEntityTypeDefinitionDictionary_Tests : CmsKitDomainTestBase + { + private readonly CmsKitTagOptions cmsKitTagOptions; + + public TagEntityTypeDefinitionDictionary_Tests() + { + var options = GetRequiredService>(); + cmsKitTagOptions = options.Value; + } + + [Fact] + public void ShouldAddEntityTypeProperly_WithOnlyEntityType() + { + cmsKitTagOptions.EntityTypes.Add(new TagEntityTypeDefiniton("My.Entity.Type")); + } + + [Fact] + public void ShouldAddEntityTypeProperly_WithEntityTypeAndDisplayName() + { + cmsKitTagOptions.EntityTypes.Add( + new TagEntityTypeDefiniton( + "My.Entity.Type", + LocalizableString.Create("MyEntity"))); + } + + [Fact] + public void ShouldAddEntityType_WithAllParameters() + { + cmsKitTagOptions.EntityTypes.Add( + new TagEntityTypeDefiniton( + "My.Entity.Type", + LocalizableString.Create("MyEntity"), + "SomeCreatePolicy", + "SomeUpdatePolicy", + "SomeDeletePolicy" + )); + } + + [Fact] + public void ShouldThrowException_WhileAddingExistingType() + { + var expectedCount = cmsKitTagOptions.EntityTypes.Count + 1; + + var entityTypeDefinition = new TagEntityTypeDefiniton("My.Entity.Type"); + + cmsKitTagOptions.EntityTypes.Add(entityTypeDefinition); + cmsKitTagOptions.EntityTypes.Add(entityTypeDefinition); + + cmsKitTagOptions.EntityTypes.Count.ShouldBe(expectedCount); + } + } +} diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index 3dc77fe1fc..e916dd22b3 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.Options; using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Volo.Abp.Data; @@ -86,12 +87,12 @@ namespace Volo.CmsKit } private Task ConfigureCmsKitOptionsAsync() - { - _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.EntityType1); - _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.EntityType2); - _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.Content_1_EntityType); - _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.Content_2_EntityType); - _tagOptions.Value.EntityTypes.AddOrReplace(_cmsKitTestData.TagDefinition_1_EntityType); + { + _tagOptions.Value.EntityTypes.AddIfNotContains(new TagEntityTypeDefiniton(_cmsKitTestData.EntityType1)); + _tagOptions.Value.EntityTypes.AddIfNotContains(new TagEntityTypeDefiniton(_cmsKitTestData.EntityType2)); + _tagOptions.Value.EntityTypes.AddIfNotContains(new TagEntityTypeDefiniton(_cmsKitTestData.Content_1_EntityType)); + _tagOptions.Value.EntityTypes.AddIfNotContains(new TagEntityTypeDefiniton(_cmsKitTestData.Content_2_EntityType)); + _tagOptions.Value.EntityTypes.AddIfNotContains(new TagEntityTypeDefiniton(_cmsKitTestData.TagDefinition_1_EntityType)); return Task.CompletedTask; } From 95f261e104c98e0fee8ab9771ce6998a64479895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 27 Jan 2021 19:15:53 +0300 Subject: [PATCH 205/309] Created blog post for 4.2.0 final --- .../2021-01-28 v4_2_Release_Stable/POST.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md diff --git a/docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md b/docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md new file mode 100644 index 0000000000..b5664d8de8 --- /dev/null +++ b/docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md @@ -0,0 +1,53 @@ +# ABP.IO Platform 4.2 Final Has Been Released! + +[ABP Framework](https://abp.io/) and [ABP Commercial](https://commercial.abp.io/) 4.2 versions have been released today. + +## What's New With 4.2? + +Since all the new features are already explained in details with the [4.2 RC Announcement Post](https://blog.abp.io/abp/ABP-IO-Platform-v4-2-RC-Has-Been-Released), I will not repeat all the details again. See the [RC Blog Post](https://blog.abp.io/abp/ABP-IO-Platform-v4-2-RC-Has-Been-Released) for all the features and enhancements. + +## Creating New Solutions + +You can create a new solution with the ABP Framework version 4.2 by either using the `abp new` command or using the **direct download** tab on the [get started page](https://abp.io/get-started). + +> See the [getting started document](https://docs.abp.io/en/abp/latest/Getting-Started) for details. + +## How to Upgrade an Existing Solution + +### Install/Update the ABP CLI + +First of all, install the ABP CLI or upgrade to the latest version. + +If you haven't installed yet: + +```bash +dotnet tool install -g Volo.Abp.Cli +``` + +To update an existing installation: + +```bash +dotnet tool update -g Volo.Abp.Cli +``` + +### ABP UPDATE Command + +[ABP CLI](https://docs.abp.io/en/abp/latest/CLI) provides a handy command to update all the ABP related NuGet and NPM packages in your solution with a single command: + +```bash +abp update +``` + +Run this command in the root folder of your solution. + +## Migration Guide + +Check [the migration guide](https://docs.abp.io/en/abp/4.2/Migration-Guides/Abp-4_2) for the applications with the version 4.x upgrading to the version 4.2. + +> It is strongly recommended to check the migration guide for this version. Especially, the new `IRepository.GetQueryableAsync()` method is a core change should be considered after upgrading the solution. + +## About the Next Version + +The next feature version will be 4.3. It is planned to release the 4.3 RC (Release Candidate) on March 11 and the final version on March 25, 2021. + +We decided to slow down the feature development for the [next milestone](https://github.com/abpframework/abp/milestone/49). We will continue to improve the existing features and introduce new ones, sure, but wanted to have more time for the planning, documentation, creating guides and improving the development experience. \ No newline at end of file From baab26379003e76b83bf80aab685212f0837a716 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 28 Jan 2021 11:56:09 +0800 Subject: [PATCH 206/309] Upgrade Npgsql.EntityFrameworkCore.PostgreSQL to 5.0.2 https://github.com/npgsql/efcore.pg/milestone/35?closed=1 https://github.com/npgsql/efcore.pg/milestone/36?closed=1 --- .../Volo.Abp.EntityFrameworkCore.PostgreSql.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj index 8616838cc0..e8c90ccf13 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj @@ -19,7 +19,7 @@ - + From cc748b88b9e13b4e10900304fe792b17a89ebef2 Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Thu, 28 Jan 2021 09:28:18 +0300 Subject: [PATCH 207/309] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 8f5177c477..f5db446396 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 4.2.0-rc.2 + 4.2.0 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From 103b2117abb33eac3a02db6fff0a9c656d1d4cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 09:39:29 +0300 Subject: [PATCH 208/309] Resolved #7489: Async implementation for Transaction Commit/Rollback. --- .../EfCoreTransactionApi.cs | 33 +++++++++---------- .../UnitOfWorkDbContextProvider.cs | 6 ++-- .../Abp/Uow/MongoDB/MongoDbTransactionApi.cs | 27 +++++++-------- .../UnitOfWorkMongoDbContextProvider.cs | 10 ++++-- .../Volo/Abp/Uow/ISupportsRollback.cs | 4 +-- .../Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs | 21 ------------ 6 files changed, 40 insertions(+), 61 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs index 99622dda96..625ba72ee2 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Threading; namespace Volo.Abp.Uow.EntityFrameworkCore { @@ -14,22 +15,22 @@ namespace Volo.Abp.Uow.EntityFrameworkCore public IEfCoreDbContext StarterDbContext { get; } public List AttendedDbContexts { get; } - public EfCoreTransactionApi(IDbContextTransaction dbContextTransaction, IEfCoreDbContext starterDbContext) + protected ICancellationTokenProvider CancellationTokenProvider { get; } + + public EfCoreTransactionApi( + IDbContextTransaction dbContextTransaction, + IEfCoreDbContext starterDbContext, + ICancellationTokenProvider cancellationTokenProvider) { DbContextTransaction = dbContextTransaction; StarterDbContext = starterDbContext; + CancellationTokenProvider = cancellationTokenProvider; AttendedDbContexts = new List(); } - public Task CommitAsync() - { - Commit(); - return Task.CompletedTask; - } - - protected void Commit() + public async Task CommitAsync() { - DbContextTransaction.Commit(); + await DbContextTransaction.CommitAsync(CancellationTokenProvider.Token); foreach (var dbContext in AttendedDbContexts) { @@ -38,7 +39,7 @@ namespace Volo.Abp.Uow.EntityFrameworkCore continue; //Relational databases use the shared transaction } - dbContext.Database.CommitTransaction(); + await dbContext.Database.CommitTransactionAsync(CancellationTokenProvider.Token); } } @@ -47,15 +48,11 @@ namespace Volo.Abp.Uow.EntityFrameworkCore DbContextTransaction.Dispose(); } - public void Rollback() - { - DbContextTransaction.Rollback(); - } - public Task RollbackAsync(CancellationToken cancellationToken) { - DbContextTransaction.Rollback(); - return Task.CompletedTask; + return DbContextTransaction.RollbackAsync( + CancellationTokenProvider.FallbackToProvider(cancellationToken) + ); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs index 564a3ef8ad..49abdced36 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs @@ -168,7 +168,8 @@ namespace Volo.Abp.Uow.EntityFrameworkCore transactionApiKey, new EfCoreTransactionApi( dbtransaction, - dbContext + dbContext, + _cancellationTokenProvider ) ); @@ -212,7 +213,8 @@ namespace Volo.Abp.Uow.EntityFrameworkCore transactionApiKey, new EfCoreTransactionApi( dbTransaction, - dbContext + dbContext, + _cancellationTokenProvider ) ); diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbTransactionApi.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbTransactionApi.cs index 6c3ab76ee5..f376c2f804 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbTransactionApi.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbTransactionApi.cs @@ -1,7 +1,7 @@ -using System.Collections.Generic; -using System.Threading; +using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; +using Volo.Abp.Threading; namespace Volo.Abp.Uow.MongoDB { @@ -9,19 +9,19 @@ namespace Volo.Abp.Uow.MongoDB { public IClientSessionHandle SessionHandle { get; } - public MongoDbTransactionApi(IClientSessionHandle sessionHandle) + protected ICancellationTokenProvider CancellationTokenProvider { get; } + + public MongoDbTransactionApi( + IClientSessionHandle sessionHandle, + ICancellationTokenProvider cancellationTokenProvider) { SessionHandle = sessionHandle; + CancellationTokenProvider = cancellationTokenProvider; } public async Task CommitAsync() { - await SessionHandle.CommitTransactionAsync(); - } - - protected void Commit() - { - SessionHandle.CommitTransaction(); + await SessionHandle.CommitTransactionAsync(CancellationTokenProvider.Token); } public void Dispose() @@ -29,14 +29,11 @@ namespace Volo.Abp.Uow.MongoDB SessionHandle.Dispose(); } - public void Rollback() - { - SessionHandle.AbortTransaction(); - } - public async Task RollbackAsync(CancellationToken cancellationToken) { - await SessionHandle.AbortTransactionAsync(cancellationToken); + await SessionHandle.AbortTransactionAsync( + CancellationTokenProvider.FallbackToProvider(cancellationToken) + ); } } } diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs index 2b279f9c37..a7c4691f47 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs @@ -178,7 +178,10 @@ namespace Volo.Abp.Uow.MongoDB unitOfWork.AddTransactionApi( transactionApiKey, - new MongoDbTransactionApi(session) + new MongoDbTransactionApi( + session, + _cancellationTokenProvider + ) ); dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, session); @@ -215,7 +218,10 @@ namespace Volo.Abp.Uow.MongoDB unitOfWork.AddTransactionApi( transactionApiKey, - new MongoDbTransactionApi(session) + new MongoDbTransactionApi( + session, + _cancellationTokenProvider + ) ); dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, session); diff --git a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/ISupportsRollback.cs b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/ISupportsRollback.cs index 4c211d652d..2286a386b8 100644 --- a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/ISupportsRollback.cs +++ b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/ISupportsRollback.cs @@ -5,8 +5,6 @@ namespace Volo.Abp.Uow { public interface ISupportsRollback { - void Rollback(); - Task RollbackAsync(CancellationToken cancellationToken); } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs index 955fa6b449..878c03d629 100644 --- a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs +++ b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs @@ -262,27 +262,6 @@ namespace Volo.Abp.Uow } } - protected virtual void RollbackAll() - { - foreach (var databaseApi in GetAllActiveDatabaseApis()) - { - try - { - (databaseApi as ISupportsRollback)?.Rollback(); - } - catch { } - } - - foreach (var transactionApi in GetAllActiveTransactionApis()) - { - try - { - (transactionApi as ISupportsRollback)?.Rollback(); - } - catch { } - } - } - protected virtual async Task RollbackAllAsync(CancellationToken cancellationToken) { foreach (var databaseApi in GetAllActiveDatabaseApis()) From 16fdc527cc85f6fd3c2565df30753b5b9a2f80f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 12:09:11 +0300 Subject: [PATCH 209/309] Fixed #5215: When tiered templates, tenants of independent databases cannot login (AngularUI). --- .../DbContextOptionsFactory.cs | 29 +- .../UnitOfWorkDbContextProvider.cs | 39 +- .../UnitOfWorkMemoryDatabaseProvider.cs | 35 +- .../UnitOfWorkMongoDbContextProvider.cs | 39 +- .../IIdentityServerDbContext.cs | 2 + .../IdentityServerDbContext.cs | 2 + templates/app/angular/yarn.lock | 9826 +++++++++++++++++ 7 files changed, 9960 insertions(+), 12 deletions(-) create mode 100644 templates/app/angular/yarn.lock diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/DbContextOptionsFactory.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/DbContextOptionsFactory.cs index 0147de12fb..c0603ec6f1 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/DbContextOptionsFactory.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/DbContextOptionsFactory.cs @@ -4,6 +4,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.Data; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.EntityFrameworkCore.DependencyInjection { @@ -86,16 +87,34 @@ namespace Volo.Abp.EntityFrameworkCore.DependencyInjection } var connectionStringName = ConnectionStringNameAttribute.GetConnStringName(); - - //Use DefaultConnectionStringResolver.Resolve when we remove IConnectionStringResolver.Resolve -#pragma warning disable 618 - var connectionString = serviceProvider.GetRequiredService().Resolve(connectionStringName); -#pragma warning restore 618 + var connectionString = ResolveConnectionString(serviceProvider, connectionStringName); return new DbContextCreationContext( connectionStringName, connectionString ); } + + private static string ResolveConnectionString( + IServiceProvider serviceProvider, + string connectionStringName) + { + // Use DefaultConnectionStringResolver.Resolve when we remove IConnectionStringResolver.Resolve +#pragma warning disable 618 + var connectionStringResolver = serviceProvider.GetRequiredService(); + var currentTenant = serviceProvider.GetRequiredService(); + + // Multi-tenancy unaware contexts should always use the host connection string + if (typeof(TDbContext).IsDefined(typeof(IgnoreMultiTenancyAttribute), false)) + { + using (currentTenant.Change(null)) + { + return connectionStringResolver.Resolve(connectionStringName); + } + } + + return connectionStringResolver.Resolve(connectionStringName); +#pragma warning restore 618 + } } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs index 49abdced36..dee4d3444d 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.DependencyInjection; +using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; namespace Volo.Abp.Uow.EntityFrameworkCore @@ -23,15 +24,18 @@ namespace Volo.Abp.Uow.EntityFrameworkCore private readonly IUnitOfWorkManager _unitOfWorkManager; private readonly IConnectionStringResolver _connectionStringResolver; private readonly ICancellationTokenProvider _cancellationTokenProvider; + private readonly ICurrentTenant _currentTenant; public UnitOfWorkDbContextProvider( IUnitOfWorkManager unitOfWorkManager, IConnectionStringResolver connectionStringResolver, - ICancellationTokenProvider cancellationTokenProvider) + ICancellationTokenProvider cancellationTokenProvider, + ICurrentTenant currentTenant) { _unitOfWorkManager = unitOfWorkManager; _connectionStringResolver = connectionStringResolver; _cancellationTokenProvider = cancellationTokenProvider; + _currentTenant = currentTenant; Logger = NullLogger>.Instance; } @@ -57,7 +61,7 @@ namespace Volo.Abp.Uow.EntityFrameworkCore } var connectionStringName = ConnectionStringNameAttribute.GetConnStringName(); - var connectionString = _connectionStringResolver.Resolve(connectionStringName); + var connectionString = ResolveConnectionString(connectionStringName); var dbContextKey = $"{typeof(TDbContext).FullName}_{connectionString}"; @@ -79,7 +83,7 @@ namespace Volo.Abp.Uow.EntityFrameworkCore } var connectionStringName = ConnectionStringNameAttribute.GetConnStringName(); - var connectionString = await _connectionStringResolver.ResolveAsync(connectionStringName); + var connectionString = await ResolveConnectionStringAsync(connectionStringName); var dbContextKey = $"{typeof(TDbContext).FullName}_{connectionString}"; @@ -241,6 +245,35 @@ namespace Volo.Abp.Uow.EntityFrameworkCore } } + private async Task ResolveConnectionStringAsync(string connectionStringName) + { + // Multi-tenancy unaware contexts should always use the host connection string + if (typeof(TDbContext).IsDefined(typeof(IgnoreMultiTenancyAttribute), false)) + { + using (_currentTenant.Change(null)) + { + return await _connectionStringResolver.ResolveAsync(connectionStringName); + } + } + + return await _connectionStringResolver.ResolveAsync(connectionStringName); + } + + [Obsolete("Use ResolveConnectionStringAsync method.")] + private string ResolveConnectionString(string connectionStringName) + { + // Multi-tenancy unaware contexts should always use the host connection string + if (typeof(TDbContext).IsDefined(typeof(IgnoreMultiTenancyAttribute), false)) + { + using (_currentTenant.Change(null)) + { + return _connectionStringResolver.Resolve(connectionStringName); + } + } + + return _connectionStringResolver.Resolve(connectionStringName); + } + protected virtual CancellationToken GetCancellationToken(CancellationToken preferredValue = default) { return _cancellationTokenProvider.FallbackToProvider(preferredValue); diff --git a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Uow/MemoryDb/UnitOfWorkMemoryDatabaseProvider.cs b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Uow/MemoryDb/UnitOfWorkMemoryDatabaseProvider.cs index c2c5a1df71..9772bac8a0 100644 --- a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Uow/MemoryDb/UnitOfWorkMemoryDatabaseProvider.cs +++ b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Uow/MemoryDb/UnitOfWorkMemoryDatabaseProvider.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Volo.Abp.Data; using Volo.Abp.Domain.Repositories.MemoryDb; using Volo.Abp.MemoryDb; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Uow.MemoryDb { @@ -14,17 +15,20 @@ namespace Volo.Abp.Uow.MemoryDb private readonly IUnitOfWorkManager _unitOfWorkManager; private readonly IConnectionStringResolver _connectionStringResolver; private readonly MemoryDatabaseManager _memoryDatabaseManager; + private readonly ICurrentTenant _currentTenant; public UnitOfWorkMemoryDatabaseProvider( IUnitOfWorkManager unitOfWorkManager, IConnectionStringResolver connectionStringResolver, TMemoryDbContext dbContext, - MemoryDatabaseManager memoryDatabaseManager) + MemoryDatabaseManager memoryDatabaseManager, + ICurrentTenant currentTenant) { _unitOfWorkManager = unitOfWorkManager; _connectionStringResolver = connectionStringResolver; DbContext = dbContext; _memoryDatabaseManager = memoryDatabaseManager; + _currentTenant = currentTenant; } public Task GetDbContextAsync() @@ -72,5 +76,34 @@ namespace Volo.Abp.Uow.MemoryDb return ((MemoryDbDatabaseApi)databaseApi).Database; } + + private async Task ResolveConnectionStringAsync() + { + // Multi-tenancy unaware contexts should always use the host connection string + if (typeof(TMemoryDbContext).IsDefined(typeof(IgnoreMultiTenancyAttribute), false)) + { + using (_currentTenant.Change(null)) + { + return await _connectionStringResolver.ResolveAsync(); + } + } + + return await _connectionStringResolver.ResolveAsync(); + } + + [Obsolete("Use ResolveConnectionStringAsync method.")] + private string ResolveConnectionString() + { + // Multi-tenancy unaware contexts should always use the host connection string + if (typeof(TMemoryDbContext).IsDefined(typeof(IgnoreMultiTenancyAttribute), false)) + { + using (_currentTenant.Change(null)) + { + return _connectionStringResolver.Resolve(); + } + } + + return _connectionStringResolver.Resolve(); + } } } diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs index a7c4691f47..684593fb7f 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs @@ -8,6 +8,7 @@ using MongoDB.Bson; using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; namespace Volo.Abp.Uow.MongoDB @@ -20,15 +21,18 @@ namespace Volo.Abp.Uow.MongoDB private readonly IUnitOfWorkManager _unitOfWorkManager; private readonly IConnectionStringResolver _connectionStringResolver; private readonly ICancellationTokenProvider _cancellationTokenProvider; + private readonly ICurrentTenant _currentTenant; public UnitOfWorkMongoDbContextProvider( IUnitOfWorkManager unitOfWorkManager, IConnectionStringResolver connectionStringResolver, - ICancellationTokenProvider cancellationTokenProvider) + ICancellationTokenProvider cancellationTokenProvider, + ICurrentTenant currentTenant) { _unitOfWorkManager = unitOfWorkManager; _connectionStringResolver = connectionStringResolver; _cancellationTokenProvider = cancellationTokenProvider; + _currentTenant = currentTenant; Logger = NullLogger>.Instance; } @@ -54,7 +58,7 @@ namespace Volo.Abp.Uow.MongoDB $"A {nameof(IMongoDatabase)} instance can only be created inside a unit of work!"); } - var connectionString = _connectionStringResolver.Resolve(); + var connectionString = ResolveConnectionString(); var dbContextKey = $"{typeof(TMongoDbContext).FullName}_{connectionString}"; var mongoUrl = new MongoUrl(connectionString); @@ -81,7 +85,7 @@ namespace Volo.Abp.Uow.MongoDB $"A {nameof(IMongoDatabase)} instance can only be created inside a unit of work!"); } - var connectionString = await _connectionStringResolver.ResolveAsync(); + var connectionString = await ResolveConnectionStringAsync(); var dbContextKey = $"{typeof(TMongoDbContext).FullName}_{connectionString}"; var mongoUrl = new MongoUrl(connectionString); @@ -234,6 +238,35 @@ namespace Volo.Abp.Uow.MongoDB return dbContext; } + private async Task ResolveConnectionStringAsync() + { + // Multi-tenancy unaware contexts should always use the host connection string + if (typeof(TMongoDbContext).IsDefined(typeof(IgnoreMultiTenancyAttribute), false)) + { + using (_currentTenant.Change(null)) + { + return await _connectionStringResolver.ResolveAsync(); + } + } + + return await _connectionStringResolver.ResolveAsync(); + } + + [Obsolete("Use ResolveConnectionStringAsync method.")] + private string ResolveConnectionString() + { + // Multi-tenancy unaware contexts should always use the host connection string + if (typeof(TMongoDbContext).IsDefined(typeof(IgnoreMultiTenancyAttribute), false)) + { + using (_currentTenant.Change(null)) + { + return _connectionStringResolver.Resolve(); + } + } + + return _connectionStringResolver.Resolve(); + } + protected virtual CancellationToken GetCancellationToken(CancellationToken preferredValue = default) { return _cancellationTokenProvider.FallbackToProvider(preferredValue); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IIdentityServerDbContext.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IIdentityServerDbContext.cs index 75343419a8..41845c432b 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IIdentityServerDbContext.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IIdentityServerDbContext.cs @@ -7,9 +7,11 @@ using Volo.Abp.IdentityServer.Clients; using Volo.Abp.IdentityServer.Devices; using Volo.Abp.IdentityServer.Grants; using Volo.Abp.IdentityServer.IdentityResources; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.IdentityServer.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(AbpIdentityServerDbProperties.ConnectionStringName)] public interface IIdentityServerDbContext : IEfCoreDbContext { diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContext.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContext.cs index 9bff7f13a1..236c6f8e66 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContext.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContext.cs @@ -7,9 +7,11 @@ using Volo.Abp.IdentityServer.Clients; using Volo.Abp.IdentityServer.Devices; using Volo.Abp.IdentityServer.Grants; using Volo.Abp.IdentityServer.IdentityResources; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.IdentityServer.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(AbpIdentityServerDbProperties.ConnectionStringName)] public class IdentityServerDbContext : AbpDbContext, IIdentityServerDbContext { diff --git a/templates/app/angular/yarn.lock b/templates/app/angular/yarn.lock new file mode 100644 index 0000000000..901d6aba40 --- /dev/null +++ b/templates/app/angular/yarn.lock @@ -0,0 +1,9826 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@abp/ng.components@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-4.2.0-rc.2.tgz#a7fe0346ce23b48bddec42dcd6fb7ec2c3bfee4d" + integrity sha512-fNKeBZu7XuO8mbnSnwc5OrMIRB884ab/ofmxpl2NOByzvDKF5g2nC4mdWj5n5BDmjPyWH1l7OX6Gifa0UtJESQ== + dependencies: + ng-zorro-antd "^11.0.0" + tslib "^2.0.0" + +"@abp/ng.core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.2.tgz#d5ae888cd6beba0ab7cc92a9759e8f3b4095f5dc" + integrity sha512-uPsxulybSdGyBpR08d9XR3i/YdG/ILvo1Gzyz2wTOG/gay12hh/p83S50kWeBuPkh8uOiT3ezO9BY/GPVrRI+Q== + dependencies: + "@abp/utils" "^4.2.0-rc.1" + "@angular/localize" "~10.0.10" + "@ngxs/store" "^3.7.0" + angular-oauth2-oidc "^10.0.0" + just-clone "^3.1.0" + just-compare "^1.3.0" + snq "^1.0.3" + ts-toolbelt "6.15.4" + tslib "^2.0.0" + +"@abp/ng.feature-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.2.tgz#c0273a07f73d95e7133ec90c1facd5de51121430" + integrity sha512-sGQfh0plQGtm3qCGYs1qmCtWt2EOwVgRyUcNd2ipzorH55S5/dX7or9dYKZofPz7GF55FohbfpxBqnKnBo0WOQ== + dependencies: + "@abp/ng.theme.shared" "~4.2.0-rc.2" + tslib "^2.0.0" + +"@abp/ng.identity@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.2.tgz#fe20f05b60980561218f8357df55c00d85af8eb2" + integrity sha512-zrY5oPhDq8lPcvDvxYM/hS5CtRj71Zlu04Slz4f+ljlStWHBOBZx1VVBl4OQvbDGxDGC04Pf2Sj3PtppEU28gw== + dependencies: + "@abp/ng.permission-management" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0-rc.2" + tslib "^2.0.0" + +"@abp/ng.permission-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.2.tgz#771285283bf3c82dcdd6a07ef444ada73b918d4a" + integrity sha512-FSMSiXGhalTMZIJzQCS6fYRdFH2eVmk73aPeFn1NnMxNdhzCXfbsHpX/lVes+UMw7CddEEgriv0GQYi8dYMnDw== + dependencies: + "@abp/ng.theme.shared" "~4.2.0-rc.2" + tslib "^2.0.0" + +"@abp/ng.schematics@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.2.tgz#93774148f57964c72498fa060c04eb99f6c3987d" + integrity sha512-Ul/+nPTnGpNhi0NMfeYY9fDnsTVzVxP4iSIdqXevPxugeY6pqCefC84i0XHdkVsxIi1UR7VP84tqE9SCv7KnCw== + dependencies: + "@angular-devkit/core" "~11.0.2" + "@angular-devkit/schematics" "~11.0.2" + got "^11.5.2" + jsonc-parser "^2.3.0" + typescript "~3.9.2" + +"@abp/ng.setting-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.2.tgz#a7c5bb30e881f8efe702fcc8f3b95bf442b0289a" + integrity sha512-5sOk19EzFBIIdeTAx6EEmgh2pYOj5oRXq6uuAOmGVzZiX7arFoyqvTR4OAypIBQdMlZ0Iv4EApvJLD6/1IIrqw== + dependencies: + "@abp/ng.theme.shared" "~4.2.0-rc.2" + tslib "^2.0.0" + +"@abp/ng.tenant-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.2.tgz#dc5c019f16ac679589dbeac85317628ec6682096" + integrity sha512-O2Lb0Fe+L11yC69DAcgX4hY6KwI9ojaDnPTFxGtvvTjaUVKnxxchQrJwP0ITsudZe5cWKbF7cME3b3uH4jorBA== + dependencies: + "@abp/ng.feature-management" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0-rc.2" + tslib "^2.0.0" + +"@abp/ng.theme.basic@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.2.tgz#83c6ae4d0d95fc0271386a02c2f22531325c3b26" + integrity sha512-VGEDWIIRnmHPrhcjIhhBcqILI8NUsuVIX7K5XfJUuf3WmEzH9Ru9Yyi81AYZNuBNXNAjyjRH/nIxwljnHxO8bA== + dependencies: + "@abp/ng.theme.shared" "~4.2.0-rc.2" + tslib "^2.0.0" + +"@abp/ng.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.2.tgz#935ca3aa32d8ced85d277139ce790f3cc3faa184" + integrity sha512-UjYPd6KL3bO9PN9XEmBlKQSc0C3EJsLHhifoV+rgtqAHvortOygSHHknOthRA4PN+cg2/PiuWA5gpvMHP1K7Ow== + dependencies: + "@abp/ng.core" "~4.2.0-rc.2" + "@fortawesome/fontawesome-free" "^5.14.0" + "@ng-bootstrap/ng-bootstrap" "^7.0.0" + "@ngx-validate/core" "^0.0.13" + "@swimlane/ngx-datatable" "^17.1.0" + bootstrap "^4.5.0" + chart.js "^2.9.3" + tslib "^2.0.0" + +"@abp/utils@^4.2.0-rc.1": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== + dependencies: + just-compare "^1.3.0" + +"@angular-devkit/architect@0.1100.7": + version "0.1100.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1100.7.tgz#6c39b886bbdb5d0e5a2d9921aa5816209041e105" + integrity sha512-b2zv2yiRbdhJ7hJfZsAvGYcqgh2DVtc7gRIPo1eDPvOAKrenmZ4zo/v0PRYScrTsPzqmoCokNA5nIwufwUEnuA== + dependencies: + "@angular-devkit/core" "11.0.7" + rxjs "6.6.3" + +"@angular-devkit/build-angular@~0.1100.0": + version "0.1100.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.1100.7.tgz#e5577998e67e89137c2b7c9d232a58b2fdca91dc" + integrity sha512-erc+AtSU46ZIX7A5dmeZ0/G/SQIbqMAGbTKZbf11GePyhT0JAAnfMQtOHMb6AaX85n4yQTg1uMo9f5+8V3lfKA== + dependencies: + "@angular-devkit/architect" "0.1100.7" + "@angular-devkit/build-optimizer" "0.1100.7" + "@angular-devkit/build-webpack" "0.1100.7" + "@angular-devkit/core" "11.0.7" + "@babel/core" "7.12.3" + "@babel/generator" "7.12.1" + "@babel/plugin-transform-runtime" "7.12.1" + "@babel/preset-env" "7.12.1" + "@babel/runtime" "7.12.1" + "@babel/template" "7.10.4" + "@jsdevtools/coverage-istanbul-loader" "3.0.5" + "@ngtools/webpack" "11.0.7" + ansi-colors "4.1.1" + autoprefixer "9.8.6" + babel-loader "8.1.0" + browserslist "^4.9.1" + cacache "15.0.5" + caniuse-lite "^1.0.30001032" + circular-dependency-plugin "5.2.0" + copy-webpack-plugin "6.2.1" + core-js "3.6.5" + css-loader "4.3.0" + cssnano "4.1.10" + file-loader "6.1.1" + find-cache-dir "3.3.1" + glob "7.1.6" + inquirer "7.3.3" + jest-worker "26.5.0" + karma-source-map-support "1.4.0" + less "3.12.2" + less-loader "7.0.2" + license-webpack-plugin "2.3.1" + loader-utils "2.0.0" + mini-css-extract-plugin "1.2.1" + minimatch "3.0.4" + open "7.3.0" + ora "5.1.0" + parse5-html-rewriting-stream "6.0.1" + pnp-webpack-plugin "1.6.4" + postcss "7.0.32" + postcss-import "12.0.1" + postcss-loader "4.0.4" + raw-loader "4.0.2" + regenerator-runtime "0.13.7" + resolve-url-loader "3.1.2" + rimraf "3.0.2" + rollup "2.32.1" + rxjs "6.6.3" + sass "1.27.0" + sass-loader "10.0.5" + semver "7.3.2" + source-map "0.7.3" + source-map-loader "1.1.2" + source-map-support "0.5.19" + speed-measure-webpack-plugin "1.3.3" + style-loader "2.0.0" + stylus "0.54.8" + stylus-loader "4.3.1" + terser "5.3.7" + terser-webpack-plugin "4.2.3" + text-table "0.2.0" + tree-kill "1.2.2" + webpack "4.44.2" + webpack-dev-middleware "3.7.2" + webpack-dev-server "3.11.0" + webpack-merge "5.2.0" + webpack-sources "2.0.1" + webpack-subresource-integrity "1.5.1" + worker-plugin "5.0.0" + +"@angular-devkit/build-optimizer@0.1100.7": + version "0.1100.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1100.7.tgz#fef39c8db5d178f223d43bd1c6e3a566e19c24c1" + integrity sha512-bHIIub0d1trVAmAX/EaNR6Zo4b7hkscewK394qYYp/w8VKQkLSAPMUbt2YTWN+erR9yyHnJ2y7tBabIui75Wdw== + dependencies: + loader-utils "2.0.0" + source-map "0.7.3" + tslib "2.0.3" + typescript "4.0.5" + webpack-sources "2.0.1" + +"@angular-devkit/build-webpack@0.1100.7": + version "0.1100.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1100.7.tgz#d62df6bd70b495df7dc335f80ecd925e0f3b3e4d" + integrity sha512-/6Hudd1hs/GMHX4C/Qk7jueIMNg8NKFJWDEbvMPMgDzTqUIa680PTD6SNSCcY5Cz9mEpdpYCZo5N31JB7dlpOg== + dependencies: + "@angular-devkit/architect" "0.1100.7" + "@angular-devkit/core" "11.0.7" + rxjs "6.6.3" + +"@angular-devkit/core@11.0.7", "@angular-devkit/core@~11.0.2": + version "11.0.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-11.0.7.tgz#05b82be7e11ddc2a7836c777297ee45eee20ff55" + integrity sha512-1GKnIT++YSUHpzzRx9QC0+8yOw4wy+ZpiJVDlroPSeK4FGrTCJqJKenkfRjVFRFOSrzTiJds+IU6kI4+bFbw9g== + dependencies: + ajv "6.12.6" + fast-json-stable-stringify "2.1.0" + magic-string "0.25.7" + rxjs "6.6.3" + source-map "0.7.3" + +"@angular-devkit/schematics@11.0.7", "@angular-devkit/schematics@~11.0.2": + version "11.0.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.0.7.tgz#7cd2398c98d82f8e5bdc3bb5c70e92d6b1d12a12" + integrity sha512-mKkXWmSTlZYjQO4i7xUX+bG1E9h9Ke3GgGQQouA+kth06IPO+VcywLQNsui4qcyLDUjyo8CaX+44aoSXoX3Tgg== + dependencies: + "@angular-devkit/core" "11.0.7" + ora "5.1.0" + rxjs "6.6.3" + +"@angular/animations@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-11.0.9.tgz#fb8052f55aa2851ab375dcb99d8d59c34a03a745" + integrity sha512-/KsMBUbRTqp29CNLbRIe4/8IxWxhnbUUZWqULaySnRDDW/p2m4miPcFVSp4zjrDZPqdXSibDiCyTiWmQ5PTuKA== + dependencies: + tslib "^2.0.0" + +"@angular/cdk@^11.0.2": + version "11.1.1" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-11.1.1.tgz#87cf1ff8eef898296129742b503bff1f979b7bc1" + integrity sha512-rIog+eqv6RtpSWKM+iHQ5oHyOALMxRXkeTiJyvPfBCYQ2hzPN16+eNxP/JOR+C4y7pMaJyPur0pC572IZEnCsw== + dependencies: + tslib "^2.0.0" + optionalDependencies: + parse5 "^5.0.0" + +"@angular/cli@~11.0.0": + version "11.0.7" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-11.0.7.tgz#b1c35cd23eeb966dabb575c7ff41111507113147" + integrity sha512-gKHfkkjduNi5OFaEKd75UKpZ7gg9h2+eVoo7ufrZda87PLP7v/XB/QoFz9zj6tTM2/IWkKhJhcsE2MLyIOTUZA== + dependencies: + "@angular-devkit/architect" "0.1100.7" + "@angular-devkit/core" "11.0.7" + "@angular-devkit/schematics" "11.0.7" + "@schematics/angular" "11.0.7" + "@schematics/update" "0.1100.7" + "@yarnpkg/lockfile" "1.1.0" + ansi-colors "4.1.1" + debug "4.2.0" + ini "1.3.6" + inquirer "7.3.3" + npm-package-arg "8.1.0" + npm-pick-manifest "6.1.0" + open "7.3.0" + pacote "9.5.12" + resolve "1.18.1" + rimraf "3.0.2" + semver "7.3.2" + symbol-observable "2.0.3" + universal-analytics "0.4.23" + uuid "8.3.1" + +"@angular/common@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-11.0.9.tgz#423a10eb6133b5090966e33b14cfcb2a7ed1c118" + integrity sha512-QYJx+Y7Bmqdwtyk8TZDqF6io7gPaiZnUPrS/JbV/qB1QA8Q0OVaJSRRy/d0ahsc385+OiUhT7gVnbEh92oWXmQ== + dependencies: + tslib "^2.0.0" + +"@angular/compiler-cli@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-11.0.9.tgz#a3e9a554fecbdf23f83303704861aae52a9bdae9" + integrity sha512-ctqT4k5FJpFDUmH05WVVvzcDEHi2ZAgxbdrPtirQXHvjZ7s16WDBsdOQPlrSnsi3HmBD3rqxFf7c305boEI9Rw== + dependencies: + "@babel/core" "^7.8.6" + "@babel/types" "^7.8.6" + canonical-path "1.0.0" + chokidar "^3.0.0" + convert-source-map "^1.5.1" + dependency-graph "^0.7.2" + fs-extra "4.0.2" + magic-string "^0.25.0" + minimist "^1.2.0" + reflect-metadata "^0.1.2" + semver "^6.3.0" + source-map "^0.6.1" + sourcemap-codec "^1.4.8" + tslib "^2.0.0" + yargs "^16.1.1" + +"@angular/compiler@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" + integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== + +"@angular/compiler@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-11.0.9.tgz#524757eac7c9915605c3579f12b2a80cb9d4d783" + integrity sha512-H2IfS6ciPWN0kmKhbwDuvS8ry5GcRFKfoyA/HGk+nQwCE2nAHC8VNwldbtoisO7XfRWr/uaTrh6z/vdfxsAiHw== + dependencies: + tslib "^2.0.0" + +"@angular/core@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e" + integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w== + +"@angular/core@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-11.0.9.tgz#5e509af2d2580a07f9ddfe3b99ce86ae67689daf" + integrity sha512-J0ff3UK2Cw7Z0eNLtUXrpMFvmmkvPPZWLYIwimyc1pZys7qsIVT6cy2ybGEOhbJgC6qt3fo0DoJV3pGXTalb8A== + dependencies: + tslib "^2.0.0" + +"@angular/forms@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-11.0.9.tgz#c7238af3d42e75f436840f5cf3002cbd41811d84" + integrity sha512-DHi4puesP5iSBToT4FZVqLYZZpZDlAy2wgBe+OhCq7GCIqi8OLejB3bp9BnUd/WnNAHJd3zEjytexih6EPE0Xg== + dependencies: + tslib "^2.0.0" + +"@angular/language-service@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-11.0.9.tgz#44a2999992187de8ba978724807220909021afc2" + integrity sha512-wmt/siAwHUMNIXeu4OCW3z6JtP/VoJLkiQXDfSnetuCfHwy401b72L4h+TWiX3x2ZLzeYwmi0sbqMb5UCctrIw== + +"@angular/localize@~10.0.10": + version "10.0.14" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-10.0.14.tgz#99064a3b12e94e54e791c0638fbbbcc8783d8a62" + integrity sha512-tV1oUii6bxpQ6bKELcZsibUEEGmNiROxy8xRW015VgrgMFhuNuesHSmNUIstZ7ag8/sjh0/w1p55PUB6LEiPFA== + dependencies: + "@babel/core" "7.8.3" + glob "7.1.2" + yargs "15.3.0" + +"@angular/platform-browser-dynamic@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.0.9.tgz#280f5733ffd0135ad232d56022d445b57cee976d" + integrity sha512-OCbXCXxPvpPu7vh3Ra1X+FfqA27TP2NcL/AlWhPTSGB+ggrEUgfdUjBSsULpMVPsD6pG/runGdM9CQjEK7g+DQ== + dependencies: + tslib "^2.0.0" + +"@angular/platform-browser@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-11.0.9.tgz#354795d82b961c164e40b54fe8125ceabcd096b6" + integrity sha512-snuq8SaIRuVDYJLy80kYCEuVITZZbtG3PvxamATvzpgYpAzBskToc4/7LKJk0IEVSMvKzi8eSBCDaK2f2ZJB3A== + dependencies: + tslib "^2.0.0" + +"@angular/router@~11.0.0": + version "11.0.9" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-11.0.9.tgz#3798ab2c5a905f73d927d3779942e3a9d2bf5ddc" + integrity sha512-WopMMhOw4YT8cplDXxxnTS7ByaGop3+frLOkVirY9MKcpcqLwXPblVq4rNKn395XgBVjNK6hmU91RScBnAuVLQ== + dependencies: + tslib "^2.0.0" + +"@ant-design/colors@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-5.0.1.tgz#09670f2f44a7473d7bc01be901c48ec10f12c7a4" + integrity sha512-x1TUaRILaqy3zgFNo+kIqOa3eTYPt81H1/3E4dCjDP4Qvk/xaPEizLDFdRUcIx0cWwyu2LklwfyLHWpbYK8v6A== + dependencies: + "@ctrl/tinycolor" "^3.3.1" + +"@ant-design/icons-angular@^11.0.1": + version "11.0.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons-angular/-/icons-angular-11.0.1.tgz#8ff3131f3d9b4b25fd28c64c4a9bdfe36da54942" + integrity sha512-WwxVx/aToxTjWmB5+O+3rOjSYdF8FC/Yd/8jF1ZGQMtLWAzP8/foQmKvPAktTUsh0/Ijhtur7LrHN2VuUedMcA== + dependencies: + "@ant-design/colors" "^5.0.0" + tslib "^2.0.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11", "@babel/code-frame@^7.8.3": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" + integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== + +"@babel/core@7.12.3": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" + integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" + integrity sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helpers" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.7.5", "@babel/core@^7.8.6": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.10" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" + integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== + dependencies: + "@babel/types" "^7.12.1" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11", "@babel/generator@^7.8.3": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" + integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== + dependencies: + "@babel/types" "^7.12.11" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d" + integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-compilation-targets@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" + integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== + dependencies: + "@babel/compat-data" "^7.12.5" + "@babel/helper-validator-option" "^7.12.1" + browserslist "^4.14.5" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" + integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" + integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + regexpu-core "^4.7.1" + +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" + integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" + integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/types" "^7.12.11" + +"@babel/helper-get-function-arity@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" + integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-module-imports@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== + dependencies: + "@babel/types" "^7.12.5" + +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" + integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-remap-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" + integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/types" "^7.12.1" + +"@babel/helper-replace-supers@^7.12.1": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" + integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.7" + "@babel/helper-optimise-call-expression" "^7.12.10" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.11" + +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" + integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== + dependencies: + "@babel/types" "^7.12.11" + +"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-option@^7.12.1": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f" + integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== + +"@babel/helper-wrap-function@^7.10.4": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" + integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helpers@^7.12.1", "@babel/helpers@^7.12.5", "@babel/helpers@^7.8.3": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7", "@babel/parser@^7.8.3": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" + integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== + +"@babel/plugin-proposal-async-generator-functions@^7.12.1": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566" + integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-dynamic-import@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" + integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-export-namespace-from@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" + integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" + integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" + integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" + integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.1" + +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" + integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" + integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-private-methods@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" + integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" + integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" + integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" + integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" + +"@babel/plugin-transform-block-scoped-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" + integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-block-scoping@^7.12.1": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca" + integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-classes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" + integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.10.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" + integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-destructuring@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" + integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" + integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-duplicate-keys@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" + integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-exponentiation-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" + integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-for-of@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" + integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-function-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" + integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" + integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" + integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-modules-amd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" + integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== + dependencies: + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" + integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== + dependencies: + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.12.1" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" + integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== + dependencies: + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-identifier" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" + integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== + dependencies: + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" + integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + +"@babel/plugin-transform-new-target@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" + integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-object-super@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" + integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + +"@babel/plugin-transform-parameters@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" + integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-property-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" + integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-regenerator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" + integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" + integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" + integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" + integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" + integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + +"@babel/plugin-transform-sticky-regex@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" + integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-template-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" + integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-typeof-symbol@^7.12.1": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b" + integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-escapes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" + integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" + integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/preset-env@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" + integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== + dependencies: + "@babel/compat-data" "^7.12.1" + "@babel/helper-compilation-targets" "^7.12.1" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-dynamic-import" "^7.12.1" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.12.1" + core-js-compat "^3.6.2" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" + integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.8.4": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.8.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.8.3": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" + integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== + dependencies: + "@babel/code-frame" "^7.12.11" + "@babel/generator" "^7.12.11" + "@babel/helper-function-name" "^7.12.11" + "@babel/helper-split-export-declaration" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/types" "^7.12.12" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" + integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@ctrl/tinycolor@^3.3.1": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.3.3.tgz#980487763bc7c9238d6d88d1ac0dee2d4df3df68" + integrity sha512-v75yutF4BDMv9weDQVM+K5XEfjiODhugSV729pnoxtBDO61ij2CsDnQa4N4E9xGaH3/FX5ASZjnajljT2F71tA== + +"@fortawesome/fontawesome-free@^5.14.0": + version "5.15.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz#218cd7276ab4f9ab57cc3d2efa2697e6a579f25d" + integrity sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA== + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jsdevtools/coverage-istanbul-loader@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz#2a4bc65d0271df8d4435982db4af35d81754ee26" + integrity sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA== + dependencies: + convert-source-map "^1.7.0" + istanbul-lib-instrument "^4.0.3" + loader-utils "^2.0.0" + merge-source-map "^1.1.0" + schema-utils "^2.7.0" + +"@ng-bootstrap/ng-bootstrap@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-7.0.0.tgz#3bfa62eb52fdb891b1ce693ea11c39127e2d1ab7" + integrity sha512-SxUaptGWJmCxM0d2Zy1mx7K7p/YBwGZ69NmmBQVY4BE6p5av0hWrVmv9rzzfBz0rhxU7RPZLor2Jpaoq8Xyl4w== + dependencies: + tslib "^2.0.0" + +"@ngtools/webpack@11.0.7": + version "11.0.7" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-11.0.7.tgz#3ec8cd967fdf1dfc79e6b1469369148bc3a93bd1" + integrity sha512-OWGiiDc7s4T53BBCY8tLkLUjgw44HrixW8Wh8e4thFH1eIUM0NHe087s/B5hDNu72W/GqK4IoBbhNQ2wiCR7qQ== + dependencies: + "@angular-devkit/core" "11.0.7" + enhanced-resolve "5.3.1" + webpack-sources "2.0.1" + +"@ngx-validate/core@^0.0.13": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@ngx-validate/core/-/core-0.0.13.tgz#954c6d247df8107668f23a39db24ca45c274f3d9" + integrity sha512-H0RohQz1AAx8J5KlbP0+hcApukA5uVxWg2eQve5YuKYpaD4sC8T613ZzoJEFVua5AfKbWqMXm4hx8mG3ISm7Ig== + dependencies: + tslib "^1.9.0" + +"@ngxs/store@^3.7.0": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@ngxs/store/-/store-3.7.1.tgz#3333379eb36cfe475d019b6c894b263ea515b8a5" + integrity sha512-Qg4rkF8XoIg/E2SGUfBbr4JmR8ZbRfeg1X++fF0HJymK1PtbIxtEXQXm7VTH0+GSmYDCwPJb8Im9dZHGZWF5ww== + dependencies: + tslib "^1.9.0" + +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + dependencies: + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + +"@npmcli/move-file@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8" + integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^2.7.1" + +"@rollup/plugin-commonjs@^17.0.0": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz#2ae2228354cf0fbba6cf9f06f30b2c66a974324c" + integrity sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.0.tgz#fa0f888297b3aebcd6534e8aba4e6fe01997649a" + integrity sha512-ouBBppRdWJKCllDXGzJ7ZIkYbaq+5TmyP0smt1vdJCFfoZhLi31vhpmjLhyo8lreHf4RoeSNllaWrvSqHpHRog== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@schematics/angular@11.0.7": + version "11.0.7" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-11.0.7.tgz#bb992d25d5291fd31f048cbb295c3a7bbde6a4e1" + integrity sha512-h8ZmHJvMcvre3rzaDBu1b5RxaaBe008kcniFNeks5nHTQRqDL/5Thg4YhIgH9VQ9Yf8U4atLjRJK5PG1OzmgDA== + dependencies: + "@angular-devkit/core" "11.0.7" + "@angular-devkit/schematics" "11.0.7" + jsonc-parser "2.3.1" + +"@schematics/update@0.1100.7": + version "0.1100.7" + resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1100.7.tgz#7c8a395567641a8ce3e2a9a33e8598b8656cc139" + integrity sha512-DXxWr4FwzhhpzDLivpA/QgXrnBHLSL5EQHcLLRylg3TISJFGKEQGYMYPw5V2ZS43hPM2zoJI/Dkcoo/PHBmNYw== + dependencies: + "@angular-devkit/core" "11.0.7" + "@angular-devkit/schematics" "11.0.7" + "@yarnpkg/lockfile" "1.1.0" + ini "1.3.6" + npm-package-arg "^8.0.0" + pacote "9.5.12" + semver "7.3.2" + semver-intersect "1.4.0" + +"@sindresorhus/is@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== + +"@swimlane/ngx-datatable@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@swimlane/ngx-datatable/-/ngx-datatable-17.1.0.tgz#ef2f91c3783526e7e89ac7a62a53e7bc9e1c90d5" + integrity sha512-zYUS7uNO9OJ5UQZFuuTRjlPu6vdKA+FHYLfeEs7PgSuUiDCcbl2SWoUdS/3zIoWn/qQyws767ueWiAvvWUbpEw== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/estree@*": + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + +"@types/jasmine@*": + version "3.6.3" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.6.3.tgz#824df555b8a5114f91619e78d8f59624d6f23050" + integrity sha512-5QKAG8WfC9XrOgYLXPrxv1G2IIUE6zDyzTWamhNWJO0LqPRUbZ0q0zGHDhDJ7MpFloUuyME/jpBIdPjq3/P3jA== + +"@types/jasmine@~3.5.0": + version "3.5.14" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.5.14.tgz#f41a14e8ffa939062a71cf9722e5ee7d4e1f94af" + integrity sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w== + +"@types/jasminewd2@~2.0.3": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@types/jasminewd2/-/jasminewd2-2.0.8.tgz#67afe5098d5ef2386073a7b7384b69a840dfe93b" + integrity sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg== + dependencies: + "@types/jasmine" "*" + +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "14.14.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" + integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== + +"@types/node@^12.11.1": + version "12.19.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.15.tgz#0de7e978fb43db62da369db18ea088a63673c182" + integrity sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/q@^0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" + integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU= + +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/selenium-webdriver@^3.0.0": + version "3.0.17" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz#50bea0c3c2acc31c959c5b1e747798b3b3d06d4b" + integrity sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/webpack-sources@^0.1.5": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81" + integrity sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"@yarnpkg/lockfile@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +JSONStream@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +adm-zip@^0.4.9: + version "0.4.16" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" + integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@6.12.6, ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" + integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +angular-oauth2-oidc@^10.0.0: + version "10.0.3" + resolved "https://registry.yarnpkg.com/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz#612ef75c2e07b56592d2506f9618ee6a61857ad9" + integrity sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg== + dependencies: + tslib "^2.0.0" + +ansi-colors@4.1.1, ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-root-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" + integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" + integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= + dependencies: + ast-types-flow "0.0.7" + commander "^2.11.0" + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@9.8.6, autoprefixer@^9.6.5: + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axobject-query@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" + integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== + dependencies: + ast-types-flow "0.0.7" + +babel-loader@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +blocking-proxy@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-1.0.1.tgz#81d6fd1fe13a4c0d6957df7f91b75e98dac40cb2" + integrity sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA== + dependencies: + minimist "^1.2.0" + +bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + +body-parser@1.19.0, body-parser@^1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +bootstrap@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7" + integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1, browserslist@^4.9.1: + version "4.16.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" + integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== + dependencies: + caniuse-lite "^1.0.30001173" + colorette "^1.2.1" + electron-to-chromium "^1.3.634" + escalade "^3.1.1" + node-releases "^1.1.69" + +browserstack@^1.5.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.6.1.tgz#e051f9733ec3b507659f395c7a4765a1b1e358b3" + integrity sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw== + dependencies: + https-proxy-agent "^2.2.1" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@15.0.5, cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" + unique-filename "^1.1.1" + +cacache@^12.0.0, cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@5.3.1, camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001173: + version "1.0.30001180" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001180.tgz#67abcd6d1edf48fa5e7d1e84091d1d65ab76e33b" + integrity sha512-n8JVqXuZMVSPKiPiypjFtDTXc4jWIdjxull0f92WLo7e1MSi3uJ3NvveakSh/aCl1QKFAvIz3vIj0v+0K+FrXw== + +canonical-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" + integrity sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chart.js@^2.9.3: + version "2.9.4" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" + integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== + dependencies: + chartjs-color "^2.1.0" + moment "^2.10.2" + +chartjs-color-string@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== + dependencies: + color-name "^1.0.0" + +chartjs-color@^2.1.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== + dependencies: + chartjs-color-string "^0.6.0" + color-convert "^1.9.3" + +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.4.1, chokidar@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-dependency-plugin@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" + integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.4.0, cli-spinners@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +codelyzer@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-6.0.1.tgz#c0e9668e847255b37c759e68fb2700b11e277d0f" + integrity sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g== + dependencies: + "@angular/compiler" "9.0.0" + "@angular/core" "9.0.0" + app-root-path "^3.0.0" + aria-query "^3.0.0" + axobject-query "2.0.2" + css-selector-tokenizer "^0.7.1" + cssauron "^1.4.0" + damerau-levenshtein "^1.0.4" + rxjs "^6.5.3" + semver-dsl "^1.0.1" + source-map "^0.5.7" + sprintf-js "^1.1.2" + tslib "^1.10.0" + zone.js "~0.10.3" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.4" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +colors@1.4.0, colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.11.0, commander@^2.12.1, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2" + integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1, component-emitter@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +connect@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@1.7.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +copy-anything@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a" + integrity sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g== + dependencies: + is-what "^3.7.1" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-webpack-plugin@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz#8015e4d5c5e637ab7b39c76daa9e03c7a4bf1ae5" + integrity sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q== + dependencies: + cacache "^15.0.5" + fast-glob "^3.2.4" + find-cache-dir "^3.3.1" + glob-parent "^5.1.1" + globby "^11.0.1" + loader-utils "^2.0.0" + normalize-path "^3.0.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + webpack-sources "^1.4.3" + +core-js-compat@^3.6.2: + version "3.8.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.3.tgz#9123fb6b9cad30f0651332dc77deba48ef9b0b3f" + integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== + dependencies: + browserslist "^4.16.1" + semver "7.0.0" + +core-js@3.6.5: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== + dependencies: + camelcase "^6.0.0" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^2.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.3" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" + +css-parse@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" + integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= + dependencies: + css "^2.0.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-selector-tokenizer@^0.7.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" + integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssauron@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" + integrity sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg= + dependencies: + through X.X.X + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cuint@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +date-fns@^2.10.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" + integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== + +date-format@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" + integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== + +date-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" + integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +dependency-graph@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.7.2.tgz#91db9de6eb72699209d88aea4c1fd5221cac1c49" + integrity sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ== + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +dom-serialize@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.634: + version "1.3.647" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.647.tgz#8f1750ab7a5137f1a9a27f8f4ebdf550e08ae10b" + integrity sha512-Or2Nu8TjkmSywY9hk85K/Y6il28hchlonITz30fkC87qvSNupQl29O12BzDDDTnUFlo6kEIFL2QGSpkZDMxH8g== + +elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.0.tgz#fc1b4d9616288ce4f2daf06dcf612413dec941c7" + integrity sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.4" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" + integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "~7.4.2" + +enhanced-resolve@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz#3f988d0d7775bdc2d96ede321dc81f8249492f57" + integrity sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.0.0" + +enhanced-resolve@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.2: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.1: + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.1" + is-regex "^1.1.1" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1, fast-glob@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" + integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-loader@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" + integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2, finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@3.3.1, find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-parent-dir@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ= + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flatted@^2.0.1, flatted@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.13.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" + integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" + integrity sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +fsevents@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" + integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.0.tgz#892e62931e6938c8a23ea5aaebcfb67bd97da97e" + integrity sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.6, glob@^7.0.3, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^11.0.1: + version "11.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +got@^11.5.2: + version "11.8.1" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" + integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hosted-git-info@^3.0.6: + version "3.0.7" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" + integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== + dependencies: + lru-cache "^6.0.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.0-beta.5.2" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.6.tgz#f1c46a2a93a253e7b3905115e74d527cd23061a1" + integrity sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +injection-js@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.4.0.tgz#ebe8871b1a349f23294eaa751bbd8209a636e754" + integrity sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA== + dependencies: + tslib "^2.0.0" + +inquirer@7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@1.1.5, ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.0.0, is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== + dependencies: + is-path-inside "^1.0.0" + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-regex@^1.0.4, is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-what@^3.7.1: + version "3.12.0" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz#f4405ce4bd6dd420d3ced51a026fb90e03705e55" + integrity sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw== + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isbinaryfile@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" + integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jasmine-core@^3.6.0, jasmine-core@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20" + integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw== + +jasmine-core@~2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" + integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= + +jasmine-spec-reporter@~5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz#b61288ab074ad440dc2477c4d42840b0e74a6b95" + integrity sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g== + dependencies: + colors "1.4.0" + +jasmine@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" + integrity sha1-awicChFXax8W3xG4AUbZHU6Lij4= + dependencies: + exit "^0.1.2" + glob "^7.0.6" + jasmine-core "~2.8.0" + +jasminewd2@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e" + integrity sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4= + +jest-worker@26.5.0: + version "26.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" + integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^26.5.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.0, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonc-parser@2.3.1, jsonc-parser@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" + integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jszip@^3.1.3: + version "3.5.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6" + integrity sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +just-clone@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/just-clone/-/just-clone-3.1.0.tgz#10efc422e9b041355c43b8076d7b768b7a09fbbd" + integrity sha512-sROn15yHaeNYSTG49HmfbQLtsZvMBb2COvVofNXbeUXx6GkERkdjG3dfejD0fe78gdHJLyS+fOz897H73S8LqA== + +just-compare@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-1.3.0.tgz#a53c31373f150a5b238555c243af4d8a38d7a0e5" + integrity sha512-i4QNo3mPYubDmAwPbCKQl5C2b5s0yudP5V5GDp6lGR1PM22Em4Idf7mcaIzXYcL6/RLdZtuGrAqkBe9RYM/t4w== + +karma-chrome-launcher@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz#805a586799a4d05f4e54f72a204979f3f3066738" + integrity sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg== + dependencies: + which "^1.2.1" + +karma-coverage-istanbul-reporter@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz#f3b5303553aadc8e681d40d360dfdc19bc7e9fe9" + integrity sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw== + dependencies: + istanbul-lib-coverage "^3.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^3.0.6" + istanbul-reports "^3.0.2" + minimatch "^3.0.4" + +karma-jasmine-html-reporter@^1.5.0: + version "1.5.4" + resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz#669f33d694d88fce1b0ccfda57111de716cb0192" + integrity sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q== + +karma-jasmine@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-4.0.1.tgz#b99e073b6d99a5196fc4bffc121b89313b0abd82" + integrity sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw== + dependencies: + jasmine-core "^3.6.0" + +karma-source-map-support@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b" + integrity sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A== + dependencies: + source-map-support "^0.5.5" + +karma@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-5.1.1.tgz#4e472c1e5352d73edbd2090726afdb01d7869d72" + integrity sha512-xAlOr5PMqUbiKXSv5PCniHWV3aiwj6wIZ0gUVcwpTCPVQm/qH2WAMFWxtnpM6KJqhkRWrIpovR4Rb0rn8GtJzQ== + dependencies: + body-parser "^1.19.0" + braces "^3.0.2" + chokidar "^3.0.0" + colors "^1.4.0" + connect "^3.7.0" + di "^0.0.1" + dom-serialize "^2.2.1" + flatted "^2.0.2" + glob "^7.1.6" + graceful-fs "^4.2.4" + http-proxy "^1.18.1" + isbinaryfile "^4.0.6" + lodash "^4.17.15" + log4js "^6.2.1" + mime "^2.4.5" + minimatch "^3.0.4" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^2.3.0" + source-map "^0.6.1" + tmp "0.2.1" + ua-parser-js "0.7.21" + yargs "^15.3.1" + +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +less-loader@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-7.0.2.tgz#0d73a49ec32a9d3ff12614598e6e2b47fb2a35c4" + integrity sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +less@3.12.2: + version "3.12.2" + resolved "https://registry.yarnpkg.com/less/-/less-3.12.2.tgz#157e6dd32a68869df8859314ad38e70211af3ab4" + integrity sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q== + dependencies: + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + native-request "^1.0.5" + source-map "~0.6.0" + +less@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/less/-/less-4.1.0.tgz#a12708d1951239db1c9d7eaa405f1ebac9a75b8d" + integrity sha512-w1Ag/f34g7LwtQ/sMVSGWIyZx+gG9ZOAEtyxeX1fG75is6BMyC2lD5kG+1RueX7PkAvlQBm2Lf2aN2j0JbVr2A== + dependencies: + copy-anything "^2.0.1" + parse-node-version "^1.0.1" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + needle "^2.5.2" + source-map "~0.6.0" + +license-webpack-plugin@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz#08eddb2f776c7c64c02f308a00e017d6e824d0b6" + integrity sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ== + dependencies: + "@types/webpack-sources" "^0.1.5" + webpack-sources "^1.2.0" + +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log4js@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" + integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== + dependencies: + date-format "^3.0.0" + debug "^4.1.1" + flatted "^2.0.1" + rfdc "^1.1.4" + streamroller "^2.2.4" + +loglevel@^1.6.8: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@0.25.7, magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" + integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== + dependencies: + agentkeepalive "^3.4.1" + cacache "^12.0.0" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + dependencies: + mime-db "1.45.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.3.1, mime@^2.4.4, mime@^2.4.5: + version "2.5.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" + integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mini-css-extract-plugin@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz#30ea7dee632b3002b0c77aeed447790408cb247e" + integrity sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +moment@^2.10.2: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-request@^1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb" + integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== + +needle@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +ng-packagr@^11.0.1: + version "11.1.2" + resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-11.1.2.tgz#d9e9439911d57603d80c4ea33cb31418ce9a36c1" + integrity sha512-Ud6DJC4eiiQHDUi3BegW50gJfvUfbXTu9fqR/Hhj0s42PLDOfGzbIAFhz8AhiDNdzptZTsinITvESuKj12CIAA== + dependencies: + "@rollup/plugin-commonjs" "^17.0.0" + "@rollup/plugin-json" "^4.1.0" + "@rollup/plugin-node-resolve" "^11.1.0" + ajv "^7.0.3" + ansi-colors "^4.1.1" + autoprefixer "^9.6.5" + browserslist "^4.16.1" + chokidar "^3.5.1" + commander "^7.0.0" + cssnano-preset-default "^4.0.7" + glob "^7.1.6" + injection-js "^2.4.0" + less "^4.1.0" + node-sass-tilde-importer "^1.0.2" + ora "^5.1.0" + postcss "^7.0.29" + postcss-url "^8.0.0" + read-pkg-up "^5.0.0" + rimraf "^3.0.0" + rollup "^2.37.0" + rollup-plugin-sourcemaps "^0.6.3" + rxjs "^6.5.0" + sass "^1.32.5" + stylus "^0.54.8" + terser "^5.5.1" + +ng-zorro-antd@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/ng-zorro-antd/-/ng-zorro-antd-11.1.0.tgz#2b6f982fccc73749d2ba61e60220288e2fb80d3c" + integrity sha512-3EMqRRM7Gc4OghfjmKtQxRV1dv0Mao2USNyokAPSxAXDhYVtMz+AJRVwf7bpnjxxzxe7RQU5GChGeNewUNmPBw== + dependencies: + "@angular/cdk" "^11.0.2" + "@ant-design/icons-angular" "^11.0.1" + date-fns "^2.10.0" + resize-observer-polyfill "^1.5.1" + tslib "^2.0.0" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch-npm@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^1.1.69: + version "1.1.70" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" + integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== + +node-sass-tilde-importer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz#1a15105c153f648323b4347693fdb0f331bad1ce" + integrity sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg== + dependencies: + find-parent-dir "^0.3.0" + +normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-package-arg@8.1.0, npm-package-arg@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" + integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== + dependencies: + hosted-git-info "^3.0.6" + semver "^7.0.0" + validate-npm-package-name "^3.0.0" + +npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.1.12: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" + integrity sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw== + dependencies: + npm-install-checks "^4.0.0" + npm-package-arg "^8.0.0" + semver "^7.0.0" + +npm-pick-manifest@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" + integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-registry-fetch@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz#57951bf6541e0246b34c9f9a38ab73607c9449d7" + integrity sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.2.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.8.0, object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + +object-is@^1.0.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" + integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" + integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" + integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +ora@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" + integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== + dependencies: + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.4.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" + integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== + dependencies: + bl "^4.0.3" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pacote@9.5.12: + version "9.5.12" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" + integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== + dependencies: + bluebird "^3.5.3" + cacache "^12.0.2" + chownr "^1.1.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.3" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-normalize-package-bin "^1.0.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.12" + npm-pick-manifest "^3.0.0" + npm-registry-fetch "^4.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.6.0" + ssri "^6.0.1" + tar "^4.4.10" + unique-filename "^1.1.1" + which "^1.3.1" + +pako@~1.0.2, pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-node-version@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse5-html-rewriting-stream@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz#de1820559317ab4e451ea72dba05fddfd914480b" + integrity sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg== + dependencies: + parse5 "^6.0.1" + parse5-sax-parser "^6.0.1" + +parse5-sax-parser@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz#98b4d366b5b266a7cd90b4b58906667af882daba" + integrity sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg== + dependencies: + parse5 "^6.0.1" + +parse5@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-import@12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" + integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== + dependencies: + postcss "^7.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-loader@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.4.tgz#b2d005b52e008a44991cf8123bee207e635eb53e" + integrity sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-8.0.0.tgz#7b10059bd12929cdbb1971c60f61a0e5af86b4ca" + integrity sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw== + dependencies: + mime "^2.3.1" + minimatch "^3.0.4" + mkdirp "^0.5.0" + postcss "^7.0.2" + xxhashjs "^0.2.1" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.29, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== + dependencies: + genfun "^5.0.0" + +protractor@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/protractor/-/protractor-7.0.0.tgz#c3e263608bd72e2c2dc802b11a772711a4792d03" + integrity sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw== + dependencies: + "@types/q" "^0.0.32" + "@types/selenium-webdriver" "^3.0.0" + blocking-proxy "^1.0.0" + browserstack "^1.5.1" + chalk "^1.1.3" + glob "^7.0.3" + jasmine "2.8.0" + jasminewd2 "^2.1.0" + q "1.4.1" + saucelabs "^1.5.0" + selenium-webdriver "3.6.0" + source-map-support "~0.4.0" + webdriver-js-extender "2.1.0" + webdriver-manager "^12.1.7" + yargs "^15.3.1" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= + +q@^1.1.2, q@^1.4.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qjobs@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-loader@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + dependencies: + pify "^2.3.0" + +read-pkg-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" + integrity sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg== + dependencies: + find-up "^3.0.0" + read-pkg "^5.0.0" + +read-pkg@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +reflect-metadata@^0.1.2: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@0.13.7, regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.6" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.6.tgz#6d8c939d1a654f78859b08ddcc4aa777f3fa800a" + integrity sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ== + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request@^2.87.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-alpn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url-loader@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" + integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.3.2, resolve@^1.8.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rfdc@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.2.0.tgz#9e9894258f48f284b43c3143c68070a4f373b949" + integrity sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-sourcemaps@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz#bf93913ffe056e414419607f1d02780d7ece84ed" + integrity sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw== + dependencies: + "@rollup/pluginutils" "^3.0.9" + source-map-resolve "^0.6.0" + +rollup@2.32.1: + version "2.32.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.32.1.tgz#625a92c54f5b4d28ada12d618641491d4dbb548c" + integrity sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw== + optionalDependencies: + fsevents "~2.1.2" + +rollup@^2.37.0: + version "2.38.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.0.tgz#57942d5a10826cb12ed1f19c261f774efa502d2d" + integrity sha512-ay9zDiNitZK/LNE/EM2+v5CZ7drkB2xyDljvb1fQJCGnq43ZWRkhxN145oV8GmoW1YNi4sA/1Jdkr2LfawJoXw== + optionalDependencies: + fsevents "~2.1.2" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@6.6.3, rxjs@^6.5.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@~6.6.0: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-loader@10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769" + integrity sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +sass@1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.27.0.tgz#0657ff674206b95ec20dc638a93e179c78f6ada2" + integrity sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +sass@^1.32.5: + version "1.32.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.5.tgz#2882d22ad5748c05fa9bff6c3b0ffbc4f4b9e1dc" + integrity sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +saucelabs@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" + integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ== + dependencies: + https-proxy-agent "^2.2.1" + +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" + integrity sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q== + dependencies: + jszip "^3.1.3" + rimraf "^2.5.4" + tmp "0.0.30" + xml2js "^0.4.17" + +selfsigned@^1.10.7: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + dependencies: + node-forge "^0.10.0" + +semver-dsl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" + integrity sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA= + dependencies: + semver "^5.3.0" + +semver-intersect@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.4.0.tgz#bdd9c06bedcdd2fedb8cd352c3c43ee8c61321f3" + integrity sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ== + dependencies: + semver "^5.0.0" + +"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.0.0, semver@^7.1.1, semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +snq@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/snq/-/snq-1.0.3.tgz#f9661d10eebb224c52fc3c50106445c268618168" + integrity sha512-bXcxd1ppFnSNYKq84HyOYuYtbMHCFTZvuPSNCn/80yx9+DLkU/hLqjqCRKRHSDISrL1T/lWGXJyQxWS8TnutFA== + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" + integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" + has-binary2 "~1.0.2" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== + dependencies: + component-emitter "~1.3.0" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== + dependencies: + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2" + integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w== + dependencies: + debug "~4.1.0" + engine.io "~3.5.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.4.0" + socket.io-parser "~3.4.0" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.4.0" + websocket-driver "0.6.5" + +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + +source-list-map@^2.0.0, source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-loader@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.1.2.tgz#5b782bf08496d3a7f355e1780df0e25190a80991" + integrity sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA== + dependencies: + abab "^2.0.5" + iconv-lite "^0.6.2" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + source-map "^0.6.1" + whatwg-mimetype "^2.3.0" + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + +source-map-support@0.5.19, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@~0.4.0: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +speed-measure-webpack-plugin@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz#6ff894fc83e8a6310dde3af863a0329cd79da4f5" + integrity sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ== + dependencies: + chalk "^2.0.1" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.0, ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +streamroller@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" + integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== + dependencies: + date-format "^2.1.0" + debug "^4.1.1" + fs-extra "^8.1.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +style-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +stylus-loader@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-4.3.1.tgz#8b4e749294d9fe0729c2e5e1f04cbf87e1c941aa" + integrity sha512-apDYJEM5ZpOAWbWInWcsbtI8gHNr/XYVcSY/tWqOUPt7M5tqhtwXVsAkgyiVjhuvw2Yrjq474a9H+g4d047Ebw== + dependencies: + fast-glob "^3.2.4" + klona "^2.0.4" + loader-utils "^2.0.0" + normalize-path "^3.0.0" + schema-utils "^3.0.0" + +stylus@0.54.8, stylus@^0.54.8: + version "0.54.8" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147" + integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== + dependencies: + css-parse "~2.0.0" + debug "~3.1.0" + glob "^7.1.6" + mkdirp "~1.0.4" + safer-buffer "^2.1.2" + sax "~1.2.4" + semver "^6.3.0" + source-map "^0.7.3" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-observable@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" + integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +tar@^4.4.10: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +tar@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terser-webpack-plugin@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.4" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@5.3.7: + version "5.3.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.7.tgz#798a4ae2e7ff67050c3e99fcc4e00725827d97e2" + integrity sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.3.4, terser@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +text-table@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +"through@>=2.2.7 <3", through@X.X.X, through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tmp@0.0.30: + version "0.0.30" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" + integrity sha1-ckGdSovn1s51FI/YsyTlk6cRwu0= + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +ts-node@~8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" + integrity sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "^3.0.0" + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +ts-toolbelt@6.15.4: + version "6.15.4" + resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.4.tgz#f7fad584e197d0f495f77b5e3ee75a8f4c4dd3da" + integrity sha512-Ifp2yNo4I8q5UwNARUBMnBiFpv5DEtTbCtS8RCjjLOz+PNcThbjUsPJCK3hRnz0dTygM1Fi3Mgvnt/DoKUTU2g== + +tslib@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + +tslib@^1.10.0, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +tslint@~6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" + integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.3" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.13.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" + integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@4.0.5, typescript@~4.0.3: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== + +typescript@~3.9.2: + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== + +ua-parser-js@0.7.21: + version "0.7.21" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universal-analytics@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.23.tgz#d915e676850c25c4156762471bdd7cf2eaaca8ac" + integrity sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A== + dependencies: + debug "^4.1.1" + request "^2.88.2" + uuid "^3.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@8.3.1: + version "8.3.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" + integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== + +uuid@^3.0.0, uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webdriver-js-extender@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz#57d7a93c00db4cc8d556e4d3db4b5db0a80c3bb7" + integrity sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ== + dependencies: + "@types/selenium-webdriver" "^3.0.0" + selenium-webdriver "^3.0.1" + +webdriver-manager@^12.1.7: + version "12.1.8" + resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.1.8.tgz#5e70e73eaaf53a0767d5745270addafbc5905fd4" + integrity sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg== + dependencies: + adm-zip "^0.4.9" + chalk "^1.1.1" + del "^2.2.0" + glob "^7.0.3" + ini "^1.3.4" + minimist "^1.2.0" + q "^1.4.1" + request "^2.87.0" + rimraf "^2.5.2" + semver "^5.3.0" + xml2js "^0.4.17" + +webpack-dev-middleware@3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.20" + sockjs-client "1.4.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.2.0.tgz#31cbcc954f8f89cd4b06ca8d97a38549f7f3f0c9" + integrity sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.1.tgz#1467f6e692ddce91e88b8044c44347b1087bbd4f" + integrity sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-subresource-integrity@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz#6f44ea99987266b70c4ec42ac51064d33e982277" + integrity sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q== + dependencies: + webpack-sources "^1.3.0" + +webpack@4.44.2: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= + dependencies: + websocket-extensions ">=0.1.1" + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.1, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-plugin@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/worker-plugin/-/worker-plugin-5.0.0.tgz#113b5fe1f4a5d6a957cecd29915bedafd70bb537" + integrity sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ== + dependencies: + loader-utils "^1.1.0" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@~7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + +xml2js@^0.4.17: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xxhashjs@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" + integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== + dependencies: + cuint "^0.2.2" + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.0, yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs@15.3.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.0.tgz#403af6edc75b3ae04bf66c94202228ba119f0976" + integrity sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.1.1: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +yn@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zone.js@~0.10.2, zone.js@~0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.10.3.tgz#3e5e4da03c607c9dcd92e37dd35687a14a140c16" + integrity sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg== From 7339efd02a8f3e13ef69628cc91bdd6a92aa98b3 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 28 Jan 2021 12:43:45 +0300 Subject: [PATCH 210/309] CmsKit - Refactor TagEntityTypeDefinition --- .../Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs | 3 ++- .../Tags/TagEntityTypeDefinitionDictionary_Tests.cs | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs index ca2bd9c0e3..888ad15577 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagEntityTypeDefinitionDictionary.cs @@ -1,10 +1,11 @@ using JetBrains.Annotations; +using System; using System.Collections.Generic; using Volo.Abp.Localization; namespace Volo.CmsKit.Tags { - public class TagEntityTypeDefinitionDictionary : HashSet + public class TagEntityTypeDefinitionDictionary : List { } } diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs index 3f7fff046a..a405c27190 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/TagEntityTypeDefinitionDictionary_Tests.cs @@ -55,10 +55,8 @@ namespace Volo.CmsKit.Tags { var expectedCount = cmsKitTagOptions.EntityTypes.Count + 1; - var entityTypeDefinition = new TagEntityTypeDefiniton("My.Entity.Type"); - - cmsKitTagOptions.EntityTypes.Add(entityTypeDefinition); - cmsKitTagOptions.EntityTypes.Add(entityTypeDefinition); + cmsKitTagOptions.EntityTypes.Add(new TagEntityTypeDefiniton("My.Entity.Type")); + cmsKitTagOptions.EntityTypes.AddIfNotContains(new TagEntityTypeDefiniton("My.Entity.Type")); cmsKitTagOptions.EntityTypes.Count.ShouldBe(expectedCount); } From aa34547aa8b64e2b625ccdba251a7eeaf5b27dc1 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 28 Jan 2021 12:55:42 +0300 Subject: [PATCH 211/309] CmsKit - Refactor TagDefinitionStore --- .../CmsKit/Tags/DefaultTagDefinitionStore.cs | 24 ++++++++++++++++--- .../Volo/CmsKit/Tags/ITagDefinitionStore.cs | 2 +- .../Volo/CmsKit/Tags/TagManager.cs | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs index 0eea8b178b..5a79bea25a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/DefaultTagDefinitionStore.cs @@ -1,5 +1,6 @@ using JetBrains.Annotations; using Microsoft.Extensions.Options; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -17,24 +18,41 @@ namespace Volo.CmsKit.Tags this.options = options.Value; } + ///

    + /// Gets single by entityType. + /// + /// EntityType to get definition. + /// Thrown when EntityType is not configured as taggable. + /// More than one element satisfies the condition in predicate. public virtual Task GetTagEntityTypeDefinitionsAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - var result = options.EntityTypes.FirstOrDefault(x => x.EntityType == entityType) ?? throw new EntityNotTaggableException(entityType); + var result = options.EntityTypes.SingleOrDefault(x => x.EntityType == entityType) ?? throw new EntityNotTaggableException(entityType); return Task.FromResult(result); } - public virtual Task> GetTagDefinitionsAsync() + /// + /// Gets all defined elements. + /// + public virtual Task> GetTagEntityTypeDefinitionListAsync() { return Task.FromResult(options.EntityTypes.ToList()); } + /// + /// Checks if EntityType defined as taggable. + /// + /// EntityType to check. + /// More than one element satisfies the condition in predicate." public virtual Task IsDefinedAsync([NotNull] string entityType) { Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); - return Task.FromResult(options.EntityTypes.Any(a => a.EntityType == entityType)); + + var definition = options.EntityTypes.SingleOrDefault(x => x.EntityType == entityType); + + return Task.FromResult(definition != null); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs index 1221e3660d..1dd8ae2bc3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagDefinitionStore.cs @@ -6,7 +6,7 @@ namespace Volo.CmsKit.Tags { public interface ITagDefinitionStore { - Task> GetTagDefinitionsAsync(); + Task> GetTagEntityTypeDefinitionListAsync(); Task GetTagEntityTypeDefinitionsAsync([NotNull] string entityType); diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs index 9c881226fa..77d50e9949 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/TagManager.cs @@ -85,7 +85,7 @@ namespace Volo.CmsKit.Tags public Task> GetTagDefinitionsAsync(CancellationToken cancellationToken = default) { - return _tagDefinitionStore.GetTagDefinitionsAsync(); + return _tagDefinitionStore.GetTagEntityTypeDefinitionListAsync(); } } } \ No newline at end of file From db1630d490203cd09a3ec3bedaf61bb129530255 Mon Sep 17 00:00:00 2001 From: erolarkat Date: Thu, 28 Jan 2021 13:54:02 +0300 Subject: [PATCH 212/309] npm packages 4.2.0 --- .../package.json | 2 +- .../yarn.lock | 224 +- .../package.json | 4 +- .../yarn.lock | 260 +- .../app/Volo.BloggingTestApp/package.json | 4 +- .../app/Volo.BloggingTestApp/yarn.lock | 332 +- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 238 +- modules/cms-kit/angular/package.json | 8 +- .../angular/projects/cms-kit/package.json | 4 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 238 +- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 238 +- .../host/Volo.CmsKit.Web.Unified/package.json | 4 +- .../host/Volo.CmsKit.Web.Unified/yarn.lock | 258 +- modules/docs/app/VoloDocs.Web/package.json | 4 +- modules/docs/app/VoloDocs.Web/yarn.lock | 298 +- npm/lerna.json | 2 +- npm/ng-packs/lerna.version.json | 2 +- npm/ng-packs/package.json | 20 +- npm/ng-packs/packages/components/package.json | 4 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/identity/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 4 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 4 +- .../packages/theme-shared/package.json | 4 +- npm/ng-packs/yarn.lock | 106 +- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 30 +- npm/packs/aspnetcore.mvc.ui/package-lock.json | 2 +- npm/packs/aspnetcore.mvc.ui/package.json | 2 +- npm/packs/blogging/package.json | 10 +- npm/packs/bootstrap-datepicker/package.json | 2 +- npm/packs/bootstrap/package.json | 4 +- npm/packs/chart.js/package.json | 2 +- npm/packs/clipboard/package.json | 4 +- npm/packs/cms-kit/package.json | 4 +- npm/packs/codemirror/package.json | 4 +- npm/packs/core/package.json | 4 +- npm/packs/cropperjs/package.json | 4 +- npm/packs/datatables.net-bs4/package.json | 4 +- npm/packs/datatables.net/package.json | 4 +- npm/packs/docs/package.json | 12 +- npm/packs/flag-icon-css/package.json | 2 +- npm/packs/font-awesome/package.json | 4 +- npm/packs/highlight.js/package.json | 4 +- npm/packs/jquery-form/package.json | 4 +- .../package.json | 4 +- npm/packs/jquery-validation/package.json | 4 +- npm/packs/jquery/package.json | 4 +- npm/packs/jstree/package.json | 4 +- npm/packs/lodash/package.json | 4 +- npm/packs/luxon/package.json | 4 +- .../package.json | 4 +- npm/packs/markdown-it/package.json | 4 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/star-rating-svg/package.json | 4 +- npm/packs/sweetalert/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 10 +- npm/packs/uppy/package.json | 4 +- npm/packs/utils/package.json | 2 +- npm/packs/vee-validate/package.json | 4 +- npm/packs/virtual-file-explorer/package.json | 6 +- npm/packs/vue/package.json | 2 +- templates/app/angular/package.json | 16 +- templates/app/angular/yarn.lock | 9826 ----------------- .../package.json | 2 +- .../yarn.lock | 238 +- .../package.json | 2 +- .../yarn.lock | 238 +- .../package.json | 2 +- .../yarn.lock | 238 +- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web/yarn.lock | 238 +- templates/module/angular/package.json | 16 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../yarn.lock | 238 +- .../package.json | 2 +- .../yarn.lock | 238 +- .../package.json | 2 +- .../yarn.lock | 238 +- 94 files changed, 2111 insertions(+), 11937 deletions(-) delete mode 100644 templates/app/angular/yarn.lock diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 9812ddc326..994844bec9 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.0-rc.2", + "@abp/aspnetcore.mvc.ui.theme.shared": "^4.2.0", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 2a08d4af29..a50932965e 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.shared@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -36,145 +36,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index a87af271a2..cc12cde188 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", - "@abp/prismjs": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0", + "@abp/prismjs": "^4.2.0" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index 1c363e7ca2..c3d415ce3b 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,162 +43,162 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.2.tgz#0cda5f6f3624e68e1ec7290517364d02f2b60e42" - integrity sha512-wF/d8Xuq+ORUkiWgDorM7rxueiygtELaZKlRDYzmQRnwJN4vS1q/4/UtPaLSlcGhHxWuxu2XSWQtzcphfBjFWA== +"@abp/clipboard@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0.tgz#860220df1d57ef64e864401d56cb5cf7068d5861" + integrity sha512-yBgMDhpqPEHp9N9//Ur1BEIOicFIoKBut75PMz9XPOttLyqCmqHYEPj/jgAkUzLd5O+fJM9TE3yGNM7YdRbRPg== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" clipboard "^2.0.6" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.2.tgz#6fe8f0063f4d674ddf309725acf65225ee3b1b1e" - integrity sha512-pvqGp5FmcDPVKBsPsPbJsbdLRK1i9RJGawYZUSwzyNOdjckf+jWviyFCN/xwt8gx5eHB2eY/VO957yX0y0ti2A== +"@abp/prismjs@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0.tgz#8cedfac538d225930c3654f0d94cad0102faa2f4" + integrity sha512-f4duxGD47p2TDMNiiBcvvjOG1hjhSbAoXyq306RrbP0CBUVTdjzzVhCPPnr5+nMoG55VlRBqh92zkax5kdgwQg== dependencies: - "@abp/clipboard" "~4.2.0-rc.2" - "@abp/core" "~4.2.0-rc.2" + "@abp/clipboard" "~4.2.0" + "@abp/core" "~4.2.0" prismjs "^1.20.0" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 1a97b62da3..dd0661267d 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", - "@abp/blogging": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0", + "@abp/blogging": "^4.2.0" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 6f7c1a81f7..21cabeb03f 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,214 +43,214 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/blogging@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.2.0-rc.2.tgz#ba757ce0dc244dad0e5a807b3d4540320cfa79c4" - integrity sha512-iWksm+5YJDryVdh1VZwnBaRy6fsJzeZBdeM3fCFQIYaKHF6orYfVUeLXuLXFVjDfuV8alhlo7rI5ANG6dsI0bw== +"@abp/blogging@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.2.0.tgz#5eaef63ea06f86cca8ca2727624cdc224566b473" + integrity sha512-rSJ0mSGInIDQcFUDGVVlWjXEF8T81BQ0u41vuURm3f06MBcK3TficQbl0Xnvx0Pc9Cbs4mFNd3UiZcsGp4MeMg== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - "@abp/owl.carousel" "~4.2.0-rc.2" - "@abp/prismjs" "~4.2.0-rc.2" - "@abp/tui-editor" "~4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + "@abp/owl.carousel" "~4.2.0" + "@abp/prismjs" "~4.2.0" + "@abp/tui-editor" "~4.2.0" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.2.tgz#0cda5f6f3624e68e1ec7290517364d02f2b60e42" - integrity sha512-wF/d8Xuq+ORUkiWgDorM7rxueiygtELaZKlRDYzmQRnwJN4vS1q/4/UtPaLSlcGhHxWuxu2XSWQtzcphfBjFWA== +"@abp/clipboard@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0.tgz#860220df1d57ef64e864401d56cb5cf7068d5861" + integrity sha512-yBgMDhpqPEHp9N9//Ur1BEIOicFIoKBut75PMz9XPOttLyqCmqHYEPj/jgAkUzLd5O+fJM9TE3yGNM7YdRbRPg== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" clipboard "^2.0.6" -"@abp/codemirror@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.2.0-rc.2.tgz#70086f33b73c75a4e0e8e5552b812b1e466d4a3f" - integrity sha512-FM3lCG6e3Xxy9AyfVbOvVBysH4rnIYyG/IOHxqW3h6Twz2pWi+s5vA4dXnbb/+ODeFwD72+eJ5F6yRKXWamrmA== +"@abp/codemirror@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.2.0.tgz#4dac96e8bd908c0a77d1d2ca488cc08c30a123dc" + integrity sha512-urWA355XeP56NpPLDoByc7btjCSQY66jLe2G1/x/3zznChdFqEdWkql5nbLgsnfiPb0CaIntoWCKeqSnEz08kQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" codemirror "^5.54.0" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.2.0-rc.2.tgz#c7e99394868863265b20328c2189d14d0630501d" - integrity sha512-bBjAPSHRGHz7xhtpC4oy3L/QV6mJuHx3LRxyd5wwhuyWsuv9qzo4GoHQsgR6gK9ANI9LGbVp+91vFaXjsNGj2A== +"@abp/highlight.js@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.2.0.tgz#92b1885fcfe4e94a4eaa3b7deffe9b62b4767692" + integrity sha512-C6gOvrp/pexbxgcd8rwN3McI4CVPWgE4JwgGrVw/VOuNF5eB4Bvy1ELI9bQNiLnoGNHhdUJD5a7nCNOMW4L9cA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.2.0-rc.2.tgz#b3b983e2b0a4f6ff99223b2cd7982144c1683226" - integrity sha512-jiBUx6bzbBfjDry6kEdZsKYylkixzPHeNuJ8AsMsF1FqJ6LIgsuWeRbT+bToHd25AZ1ZxTnqYM5efKXia0N4/w== +"@abp/markdown-it@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.2.0.tgz#e04514da16f9fdbfe3cab2933a60aa9193784a0b" + integrity sha512-If9AH2QwXExsZdFH5Orfo9giSrGMr9HviNM9cxDnHPwID5MJFrc7zxalqNwXcArtjGxLB+QaAfxEACIvLfLp/g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" markdown-it "^11.0.0" -"@abp/owl.carousel@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.2.0-rc.2.tgz#c5cdf1f53e539b891f1fe265091570e71bdf83c0" - integrity sha512-hl8XtVB0II/piGeXLS0e50oKYWT8YDw5QsL9/DnvJnneigrFoAFnVR0siavgr+C6jY3XqQR8aCpxByi82PvUDQ== +"@abp/owl.carousel@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.2.0.tgz#1e02b137dc05529feca196568b87dd691a3d273a" + integrity sha512-T44Mvi7VlkDuv31WzoDLoskEF1jJ2KK/0UKtsg2ECauOfS1iQA1weoRx+ITK4Vg6RWayZxyQatVt1+6jz+0LcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" owl.carousel "^2.3.4" -"@abp/prismjs@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.2.tgz#6fe8f0063f4d674ddf309725acf65225ee3b1b1e" - integrity sha512-pvqGp5FmcDPVKBsPsPbJsbdLRK1i9RJGawYZUSwzyNOdjckf+jWviyFCN/xwt8gx5eHB2eY/VO957yX0y0ti2A== +"@abp/prismjs@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0.tgz#8cedfac538d225930c3654f0d94cad0102faa2f4" + integrity sha512-f4duxGD47p2TDMNiiBcvvjOG1hjhSbAoXyq306RrbP0CBUVTdjzzVhCPPnr5+nMoG55VlRBqh92zkax5kdgwQg== dependencies: - "@abp/clipboard" "~4.2.0-rc.2" - "@abp/core" "~4.2.0-rc.2" + "@abp/clipboard" "~4.2.0" + "@abp/core" "~4.2.0" prismjs "^1.20.0" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/tui-editor@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.2.0-rc.2.tgz#25e97dd47ccbd8a22ac47a9d46fd1d0f9a2f762a" - integrity sha512-7giF6IFxYOPfoDPJupEXeFKSzf7iB14RUIA6h7+8AXw7OfIeobpdZq3qCpRRgS4UiP1eemaegeT6s42maL498Q== +"@abp/tui-editor@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.2.0.tgz#893be49c6de9af515afab424bd3720796034190f" + integrity sha512-UN6CY5FGbqaYlRJoa8rLENibpMnB19XkhJReq05Bej6b/aCBiZCi7GAilgWPEghqublAObgdmeOe11NJlMrQ5Q== dependencies: - "@abp/codemirror" "~4.2.0-rc.2" - "@abp/highlight.js" "~4.2.0-rc.2" - "@abp/jquery" "~4.2.0-rc.2" - "@abp/markdown-it" "~4.2.0-rc.2" + "@abp/codemirror" "~4.2.0" + "@abp/highlight.js" "~4.2.0" + "@abp/jquery" "~4.2.0" + "@abp/markdown-it" "~4.2.0" tui-editor "^1.4.10" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 9fd2034ecb..0a602e5e82 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 8edfb8fa10..7b70feb736 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index f0c70ee363..1fcaa68498 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -16,10 +16,10 @@ "private": true, "dependencies": { "@abp/ng.account": "~3.3.2", - "@abp/ng.identity": "~4.2.0-rc.2", - "@abp/ng.setting-management": "~4.2.0-rc.2", - "@abp/ng.tenant-management": "~4.2.0-rc.2", - "@abp/ng.theme.basic": "~4.2.0-rc.2", + "@abp/ng.identity": "~4.2.0", + "@abp/ng.setting-management": "~4.2.0", + "@abp/ng.tenant-management": "~4.2.0", + "@abp/ng.theme.basic": "~4.2.0", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index a8e4549b0a..04018e4360 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.2.0-rc.2", - "@abp/ng.theme.shared": ">=4.2.0-rc.2" + "@abp/ng.core": ">=4.2.0", + "@abp/ng.theme.shared": ">=4.2.0" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 214c743fe8..1d3fc57a43 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 0118c5f1a3..2fc3f25822 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 807eaccef0..010901f2f3 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 0aff599aef..69cec15c38 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index bbb4ac8f0d..1c93432838 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", - "@abp/cms-kit": "4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0", + "@abp/cms-kit": "4.2.0" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 9a99b12cc0..4bcd9f8297 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,160 +43,160 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/cms-kit@4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.0-rc.2.tgz#0acd23315d4fe51b594739a11f9f28df25f53355" - integrity sha512-f1sCyqfdz91IGRvSKaFtAENfA7+spP2KwsmySMtgD4skj+9U2k28rluodI0YamxsplM+eaWCeG3h6Y84UJSk2w== +"@abp/cms-kit@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-4.2.0.tgz#cfca768d3d7f95251c224a2737e8a78038635e68" + integrity sha512-CbO3FLmdRHJVFE5tqqj2EKgfDkhFFDXu5H7nyAtwk9zi1yV8pGvNFTQVJfzgZ7g0r5KaKTMRL3rFvSixWTF4jg== dependencies: - "@abp/star-rating-svg" "~4.2.0-rc.2" + "@abp/star-rating-svg" "~4.2.0" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/star-rating-svg@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.0-rc.2.tgz#8060bf0c8b17858562c9346cc7413c6f0b219020" - integrity sha512-M/39KVFLeJGvfwdMiVw+qCc5HNixyHEWNjX7Dv0Coc7Av1aGWsFvEN3njnnKzMpSXAS+s3yQlMyXfTP+7YBBug== +"@abp/star-rating-svg@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-4.2.0.tgz#19d8ce9dacd92d573ff462aa194fdfa341a39ecc" + integrity sha512-jzcdwR1iz63OQaEgXBescuTntg+8DDAhDmDRMss6fO2ou1qlGLqs7mvb/al4z2FvxdDAqaoY8h9c1jKp7+yzuA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" star-rating-svg "^3.5.0" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index acf4b1cdde..ea20ee6d82 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2", - "@abp/docs": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0", + "@abp/docs": "^4.2.0" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index cac074bf26..3c3e937d50 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.2.0-rc.2.tgz#3b5e8150176173184ec4b83fada16bdb4ffe31fa" - integrity sha512-5H2N0ubkA2VHr6FyvhLiFjC30hP5A/hTKksdConGKy9XaNuEd5Z5sy2e04be7P9qzP89QOpjHCHd4u9Sl3lBfA== +"@abp/anchor-js@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.2.0.tgz#d45c1262e8fc5746e16b5cdd3a56cbb859cb25b5" + integrity sha512-Lx75d+eaDf15akt6xmEzaVKMassNg536ACU8p/FwKqtQuv7BLW09PWOPfFKuICXHoC/MDZwsyIYkxRxrGpSq6A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -51,181 +51,181 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0-rc.2.tgz#0cda5f6f3624e68e1ec7290517364d02f2b60e42" - integrity sha512-wF/d8Xuq+ORUkiWgDorM7rxueiygtELaZKlRDYzmQRnwJN4vS1q/4/UtPaLSlcGhHxWuxu2XSWQtzcphfBjFWA== +"@abp/clipboard@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.2.0.tgz#860220df1d57ef64e864401d56cb5cf7068d5861" + integrity sha512-yBgMDhpqPEHp9N9//Ur1BEIOicFIoKBut75PMz9XPOttLyqCmqHYEPj/jgAkUzLd5O+fJM9TE3yGNM7YdRbRPg== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" clipboard "^2.0.6" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/docs@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.2.0-rc.2.tgz#b845fb676ba3faa968daf73fbd810638e7ff8c3d" - integrity sha512-/UJ4JnQbrWmPLk8VeHmynEI6r2pU9aU/x8IRWoSzJq6Q1fRU0A2Ap7in2VQPAIbCWgv8tGzA4F0B2xSj0oljCA== +"@abp/docs@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.2.0.tgz#6520643a3aa6346a45789c63a6383439e126a5bb" + integrity sha512-JoQkUeqSN9LwvdWFI8zDNGi1lx+vG0aZHGsmoM7WgtMCcGDyv/NGEYwyKCKSXYiOQcXRqpSjOIxo5gi4RO0UzA== dependencies: - "@abp/anchor-js" "~4.2.0-rc.2" - "@abp/clipboard" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/popper.js" "~4.2.0-rc.2" - "@abp/prismjs" "~4.2.0-rc.2" + "@abp/anchor-js" "~4.2.0" + "@abp/clipboard" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/popper.js" "~4.2.0" + "@abp/prismjs" "~4.2.0" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.2.0-rc.2.tgz#9b6ef8183a3e94fb89d51cc60ac25ff38532642f" - integrity sha512-t4CO8SfOG1vTpA2ZjAGpQ0f7BpGrPBhWHmP3XZmiEciDfqiOugWqSrCcoNSZ+6NMaizIeJlunU/SkV8VZs/HtA== +"@abp/popper.js@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.2.0.tgz#9dcae6af647974b37ce650160d0ced003aa0efdc" + integrity sha512-ipaJqx72I2X+UcST2FOdAVm3AoMggJ+Cl1fbm+CdUcaVi50dhwxFV2E259neLNEHb6sCi3swao2YSAPMb7hX6Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" popper.js "^1.16.0" -"@abp/prismjs@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0-rc.2.tgz#6fe8f0063f4d674ddf309725acf65225ee3b1b1e" - integrity sha512-pvqGp5FmcDPVKBsPsPbJsbdLRK1i9RJGawYZUSwzyNOdjckf+jWviyFCN/xwt8gx5eHB2eY/VO957yX0y0ti2A== +"@abp/prismjs@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.2.0.tgz#8cedfac538d225930c3654f0d94cad0102faa2f4" + integrity sha512-f4duxGD47p2TDMNiiBcvvjOG1hjhSbAoXyq306RrbP0CBUVTdjzzVhCPPnr5+nMoG55VlRBqh92zkax5kdgwQg== dependencies: - "@abp/clipboard" "~4.2.0-rc.2" - "@abp/core" "~4.2.0-rc.2" + "@abp/clipboard" "~4.2.0" + "@abp/core" "~4.2.0" prismjs "^1.20.0" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/npm/lerna.json b/npm/lerna.json index 6d29e74c13..3d7e74f3b4 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index e1faf538dc..7834fe2f02 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 560d4d2937..9e98957798 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -26,16 +26,16 @@ "postinstall": "npm run compile:ivy" }, "devDependencies": { - "@abp/ng.core": "~4.2.0-rc.2", - "@abp/ng.feature-management": "~4.2.0-rc.2", - "@abp/ng.identity": "~4.2.0-rc.2", - "@abp/ng.permission-management": "~4.2.0-rc.2", - "@abp/ng.schematics": "~4.2.0-rc.2", - "@abp/ng.setting-management": "~4.2.0-rc.2", - "@abp/ng.tenant-management": "~4.2.0-rc.2", - "@abp/ng.theme.basic": "~4.2.0-rc.2", - "@abp/ng.theme.shared": "~4.2.0-rc.2", - "@abp/utils": "^4.2.0-rc.2", + "@abp/ng.core": "~4.2.0", + "@abp/ng.feature-management": "~4.2.0", + "@abp/ng.identity": "~4.2.0", + "@abp/ng.permission-management": "~4.2.0", + "@abp/ng.schematics": "~4.2.0", + "@abp/ng.setting-management": "~4.2.0", + "@abp/ng.tenant-management": "~4.2.0", + "@abp/ng.theme.basic": "~4.2.0", + "@abp/ng.theme.shared": "~4.2.0", + "@abp/utils": "^4.2.0", "@angular-builders/jest": "^10.0.0", "@angular-devkit/build-angular": "~0.1100.0", "@angular-devkit/build-ng-packagr": "~0.1001.2", diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index a7a67e9465..6e2c67f134 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.components", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=4.2.0-rc.2", + "@abp/ng.core": ">=4.2.0", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 3a66bc87ca..588ee4777f 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^4.2.0-rc.2", + "@abp/utils": "^4.2.0", "@angular/localize": "~10.0.10", "@ngxs/store": "^3.7.0", "angular-oauth2-oidc": "^10.0.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index e320859808..4177796777 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index ef4c78038b..7e00ecbe7e 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~4.2.0-rc.2", - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.permission-management": "~4.2.0", + "@abp/ng.theme.shared": "~4.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index b1cc0d8862..2484edc6fb 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 9edc3b5dfc..d403030597 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "4.2.0-rc.2", + "version": "4.2.0", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 8c596f3097..b29029fc4f 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.setting-management", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 14ea516dc0..396a41a160 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~4.2.0-rc.2", - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.feature-management": "~4.2.0", + "@abp/ng.theme.shared": "~4.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index b477b37837..fa60d130ff 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.basic", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.theme.shared": "~4.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 5e0979ac13..5271582e33 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "4.2.0-rc.2", + "version": "4.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~4.2.0-rc.2", + "@abp/ng.core": "~4.2.0", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.13", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index 94635e72ca..fa25a7302e 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@abp/ng.core@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.1.tgz#14bb772ea184153c5cb3fe0da538ff921892330a" - integrity sha512-2qyoGaU+eKwULenCG3sEhlztxA1vhECCs1gkGzsxIpZquFQCSdpRGAZNM4EUbLpBASXAYU/CGDWBgqYIIK/8Kw== +"@abp/ng.core@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.2.tgz#d5ae888cd6beba0ab7cc92a9759e8f3b4095f5dc" + integrity sha512-uPsxulybSdGyBpR08d9XR3i/YdG/ILvo1Gzyz2wTOG/gay12hh/p83S50kWeBuPkh8uOiT3ezO9BY/GPVrRI+Q== dependencies: - "@abp/utils" "^4.1.1" + "@abp/utils" "^4.2.0-rc.1" "@angular/localize" "~10.0.10" "@ngxs/store" "^3.7.0" angular-oauth2-oidc "^10.0.0" @@ -17,35 +17,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.1.tgz#08f85b70ea4d57e92a1e011e88cf1be8e6592c36" - integrity sha512-exZyx28Njt7x+70n1Okk8CGCAQf479TGWziMnZ6HaOoDTFxcDnk0jT62aO3AALMFr2cUmGUxxyWFo4Tan2CwDA== +"@abp/ng.feature-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.2.tgz#c0273a07f73d95e7133ec90c1facd5de51121430" + integrity sha512-sGQfh0plQGtm3qCGYs1qmCtWt2EOwVgRyUcNd2ipzorH55S5/dX7or9dYKZofPz7GF55FohbfpxBqnKnBo0WOQ== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.identity@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.1.tgz#9fdbafb53918ff36e64e1fbb685098b40e55acfd" - integrity sha512-/ftw1z6mEnmg//lWUns8r7GLVFBbRKvZX9sJ9gProwR/E6fnRuifv/q0p4Nsq+eOgudnQb/RlVg1JyTIDBt6YA== +"@abp/ng.identity@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.2.tgz#fe20f05b60980561218f8357df55c00d85af8eb2" + integrity sha512-zrY5oPhDq8lPcvDvxYM/hS5CtRj71Zlu04Slz4f+ljlStWHBOBZx1VVBl4OQvbDGxDGC04Pf2Sj3PtppEU28gw== dependencies: - "@abp/ng.permission-management" "~4.2.0-rc.1" - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.permission-management" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.permission-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.1.tgz#f4aaf505056d0238681ea32b6c7079a019120b39" - integrity sha512-9w3FZ4ztvoXRAT9FdhIYUnpXmvagDDPk9X9xKNT8Md5TX4ivynSs3pBHC2baqhR1Xc2FHHEbfVjN+FFMmDQRlg== +"@abp/ng.permission-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.2.tgz#771285283bf3c82dcdd6a07ef444ada73b918d4a" + integrity sha512-FSMSiXGhalTMZIJzQCS6fYRdFH2eVmk73aPeFn1NnMxNdhzCXfbsHpX/lVes+UMw7CddEEgriv0GQYi8dYMnDw== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.schematics@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.1.tgz#b62dcc2bd65e05810b46d40e46c4b871ed729196" - integrity sha512-2vcMuyxVziZDaFQbz1/DhaIErv6yVJMZILVOzbk1zCgIFtvoXIY/+XkHfChzUAeFkEe/rKGdZsXIG6LHsg7RuQ== +"@abp/ng.schematics@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.2.tgz#93774148f57964c72498fa060c04eb99f6c3987d" + integrity sha512-Ul/+nPTnGpNhi0NMfeYY9fDnsTVzVxP4iSIdqXevPxugeY6pqCefC84i0XHdkVsxIi1UR7VP84tqE9SCv7KnCw== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -53,37 +53,37 @@ jsonc-parser "^2.3.0" typescript "~3.9.2" -"@abp/ng.setting-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.1.tgz#74f9577193554997a47fef8c0f4e4d4b3228f6dc" - integrity sha512-T18tkvyIsER22fGWh0KRmxobhuFxuxbDB8vroV0k0/Zd4ULDrTuSoKXgWa/TiHe7RuO/tWKv0EEf/T4xaiWBGw== +"@abp/ng.setting-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.2.tgz#a7c5bb30e881f8efe702fcc8f3b95bf442b0289a" + integrity sha512-5sOk19EzFBIIdeTAx6EEmgh2pYOj5oRXq6uuAOmGVzZiX7arFoyqvTR4OAypIBQdMlZ0Iv4EApvJLD6/1IIrqw== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.tenant-management@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.1.tgz#94b8a0ff7987b8e7602be310b3f91742e1d6b0e8" - integrity sha512-SO3cxFCY6p0i/BywlHoAFeMEtJ0w9Q61jqW/1T8jQR8HDXNDeMeHdiUsAzjv9ILggy7OPFmGZQ8pcniwK3IQpQ== +"@abp/ng.tenant-management@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.2.tgz#dc5c019f16ac679589dbeac85317628ec6682096" + integrity sha512-O2Lb0Fe+L11yC69DAcgX4hY6KwI9ojaDnPTFxGtvvTjaUVKnxxchQrJwP0ITsudZe5cWKbF7cME3b3uH4jorBA== dependencies: - "@abp/ng.feature-management" "~4.2.0-rc.1" - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.feature-management" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.theme.basic@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.1.tgz#dbc1a47e7d311fc7ca5d212d6736fde49f4586f2" - integrity sha512-3fMeIbz4cotGqGty9QWyw4vrhkYJgLqgfunw+F+YxuLaXFq2JljlfZvzwDCw7EZ53N5atHT/um5RVAveWvKKmQ== +"@abp/ng.theme.basic@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.2.tgz#83c6ae4d0d95fc0271386a02c2f22531325c3b26" + integrity sha512-VGEDWIIRnmHPrhcjIhhBcqILI8NUsuVIX7K5XfJUuf3WmEzH9Ru9Yyi81AYZNuBNXNAjyjRH/nIxwljnHxO8bA== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.1" + "@abp/ng.theme.shared" "~4.2.0-rc.2" tslib "^2.0.0" -"@abp/ng.theme.shared@~4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.1.tgz#e3edecefd2a332740e80a7f6c6dbfa06f7580c89" - integrity sha512-/EOHL9WmtxJ6xgzUbNjc50p9oStycmpsz9Z/RZTffaUXUnVSDgqeArvBuPTGTuMJVipnbVfpYjC98eOixj5Ong== +"@abp/ng.theme.shared@~4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.2.tgz#935ca3aa32d8ced85d277139ce790f3cc3faa184" + integrity sha512-UjYPd6KL3bO9PN9XEmBlKQSc0C3EJsLHhifoV+rgtqAHvortOygSHHknOthRA4PN+cg2/PiuWA5gpvMHP1K7Ow== dependencies: - "@abp/ng.core" "~4.2.0-rc.1" + "@abp/ng.core" "~4.2.0-rc.2" "@fortawesome/fontawesome-free" "^5.14.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.13" @@ -92,13 +92,6 @@ chart.js "^2.9.3" tslib "^2.0.0" -"@abp/utils@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.1.1.tgz#87f453602d8d8381f730f720eff206f08f218de9" - integrity sha512-WtVKkXAW5bC6XtG/yjkChUM9Z8j+f4idc92CVQxUDOzXhQKGqNsi/3N+qacmD0o+dQVIokDgNmS10R1OaYKtcA== - dependencies: - just-compare "^1.3.0" - "@abp/utils@^4.2.0-rc.1": version "4.2.0-rc.1" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" @@ -106,6 +99,13 @@ dependencies: just-compare "^1.3.0" +"@abp/utils@^4.2.0-rc.2": + version "4.2.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" + integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== + dependencies: + just-compare "^1.3.0" + "@angular-builders/jest@^10.0.0": version "10.0.1" resolved "https://registry.yarnpkg.com/@angular-builders/jest/-/jest-10.0.1.tgz#a1a6fb5d11b5d54c051bdaa2012b5f046371560c" diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 52d5d9bd1c..8700f1803d 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 9687ca35bd..f9617344d5 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 5828177bab..453a30ef78 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,24 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~4.2.0-rc.2", - "@abp/bootstrap": "~4.2.0-rc.2", - "@abp/bootstrap-datepicker": "~4.2.0-rc.2", - "@abp/datatables.net-bs4": "~4.2.0-rc.2", - "@abp/font-awesome": "~4.2.0-rc.2", - "@abp/jquery-form": "~4.2.0-rc.2", - "@abp/jquery-validation-unobtrusive": "~4.2.0-rc.2", - "@abp/lodash": "~4.2.0-rc.2", - "@abp/luxon": "~4.2.0-rc.2", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.2", - "@abp/select2": "~4.2.0-rc.2", - "@abp/sweetalert": "~4.2.0-rc.2", - "@abp/timeago": "~4.2.0-rc.2", - "@abp/toastr": "~4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui": "~4.2.0", + "@abp/bootstrap": "~4.2.0", + "@abp/bootstrap-datepicker": "~4.2.0", + "@abp/datatables.net-bs4": "~4.2.0", + "@abp/font-awesome": "~4.2.0", + "@abp/jquery-form": "~4.2.0", + "@abp/jquery-validation-unobtrusive": "~4.2.0", + "@abp/lodash": "~4.2.0", + "@abp/luxon": "~4.2.0", + "@abp/malihu-custom-scrollbar-plugin": "~4.2.0", + "@abp/select2": "~4.2.0", + "@abp/sweetalert": "~4.2.0", + "@abp/timeago": "~4.2.0", + "@abp/toastr": "~4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index f6ce6e3334..d5beb86eb4 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "4.2.0-rc.2", + "version": "4.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index e5f5e57027..52fe50c6d8 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/aspnetcore.mvc.ui", "publishConfig": { "access": "public" diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 4cf7c6141c..4bf5ec4129 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0-rc.2", - "@abp/owl.carousel": "~4.2.0-rc.2", - "@abp/prismjs": "~4.2.0-rc.2", - "@abp/tui-editor": "~4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.0", + "@abp/owl.carousel": "~4.2.0", + "@abp/prismjs": "~4.2.0", + "@abp/tui-editor": "~4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 8b4805ff35..e73eec9382 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/bootstrap-datepicker", "publishConfig": { "access": "public" diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 028202cde6..ef3dc18eae 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/bootstrap", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "bootstrap": "^4.5.0", "bootstrap-v4-rtl": "4.4.1-2" }, diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index 331266bf27..481f75e5c6 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 9b77518da3..aef511167f 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 3f00950b2f..df593590b5 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/star-rating-svg": "~4.2.0-rc.2" + "@abp/star-rating-svg": "~4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 33107815cc..eec666c45d 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index b6973caf42..db309fa90b 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/core", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^4.2.0-rc.2" + "@abp/utils": "^4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 581333926e..1c5bc75fbc 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 7d66e52d37..d34d0ee9ef 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/datatables.net-bs4", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~4.2.0-rc.2", + "@abp/datatables.net": "~4.2.0", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index e223e6614d..5896c9e4a3 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/datatables.net", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 489053b8d8..6e7f410647 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~4.2.0-rc.2", - "@abp/clipboard": "~4.2.0-rc.2", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.0-rc.2", - "@abp/popper.js": "~4.2.0-rc.2", - "@abp/prismjs": "~4.2.0-rc.2" + "@abp/anchor-js": "~4.2.0", + "@abp/clipboard": "~4.2.0", + "@abp/malihu-custom-scrollbar-plugin": "~4.2.0", + "@abp/popper.js": "~4.2.0", + "@abp/prismjs": "~4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index af82d94171..9f9a124981 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 7a658d7975..688171c816 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/font-awesome", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index e0258813da..d31a060436 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2" + "@abp/core": "~4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index b230fe1c7a..271184d7e2 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/jquery-form", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 9d659360ff..a8fbb2f569 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/jquery-validation-unobtrusive", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~4.2.0-rc.2", + "@abp/jquery-validation": "~4.2.0", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 4a1b3a607c..bc7544605e 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/jquery-validation", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 69041232c7..a9723cbbb7 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/jquery", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "jquery": "~3.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 1001203f91..3a2fbd5432 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 4508cfeebf..b5a57ce9b6 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/lodash", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 004194978d..08de56fcc2 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/luxon", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "luxon": "^1.24.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index d14a9c01ca..2fad78829c 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/malihu-custom-scrollbar-plugin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index c0a8f6472c..78e9cd50c8 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index 1403a3bed5..0199aeb53f 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 1a865752a4..1223d3ee0c 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "popper.js": "^1.16.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 1353a0048a..420ef2b9dd 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.2.0-rc.2", - "@abp/core": "~4.2.0-rc.2", + "@abp/clipboard": "~4.2.0", + "@abp/core": "~4.2.0", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 29c156ec28..13680d73fc 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/select2", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 76642825e2..9c9c8a5c4c 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index 53589521cf..78924750bf 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert/package.json b/npm/packs/sweetalert/package.json index d11e1ebf48..3e3871e6c2 100644 --- a/npm/packs/sweetalert/package.json +++ b/npm/packs/sweetalert/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/sweetalert", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "sweetalert": "^2.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index a539a10b2d..3f77f86347 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/timeago", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 0e67eb53e8..da210c690f 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/toastr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~4.2.0-rc.2", + "@abp/jquery": "~4.2.0", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index f645614bf7..db03c57547 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~4.2.0-rc.2", - "@abp/highlight.js": "~4.2.0-rc.2", - "@abp/jquery": "~4.2.0-rc.2", - "@abp/markdown-it": "~4.2.0-rc.2", + "@abp/codemirror": "~4.2.0", + "@abp/highlight.js": "~4.2.0", + "@abp/jquery": "~4.2.0", + "@abp/markdown-it": "~4.2.0", "tui-editor": "^1.4.10" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index c75b04abdd..8f4e4606fa 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~4.2.0-rc.2", + "@abp/core": "~4.2.0", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 107e06925b..b3463e226c 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "4.2.0-rc.2", + "version": "4.2.0", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index 3b2605a7ba..9ba20affd2 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~4.2.0-rc.2", + "@abp/vue": "~4.2.0", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 63963370b3..46b16133ec 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~4.2.0-rc.2", - "@abp/prismjs": "~4.2.0-rc.2" + "@abp/clipboard": "~4.2.0", + "@abp/prismjs": "~4.2.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index 34eccc2f5c..a1545d9461 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "4.2.0-rc.2", + "version": "4.2.0", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 45e8452cfe..7d22702796 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,13 +12,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.2.0-rc.2", - "@abp/ng.core": "~4.2.0-rc.2", - "@abp/ng.identity": "~4.2.0-rc.2", - "@abp/ng.setting-management": "~4.2.0-rc.2", - "@abp/ng.tenant-management": "~4.2.0-rc.2", - "@abp/ng.theme.basic": "~4.2.0-rc.2", - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.components": "~4.2.0", + "@abp/ng.core": "~4.2.0", + "@abp/ng.identity": "~4.2.0", + "@abp/ng.setting-management": "~4.2.0", + "@abp/ng.tenant-management": "~4.2.0", + "@abp/ng.theme.basic": "~4.2.0", + "@abp/ng.theme.shared": "~4.2.0", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -32,7 +32,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.2.0-rc.2", + "@abp/ng.schematics": "~4.2.0", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/app/angular/yarn.lock b/templates/app/angular/yarn.lock deleted file mode 100644 index 901d6aba40..0000000000 --- a/templates/app/angular/yarn.lock +++ /dev/null @@ -1,9826 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@abp/ng.components@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-4.2.0-rc.2.tgz#a7fe0346ce23b48bddec42dcd6fb7ec2c3bfee4d" - integrity sha512-fNKeBZu7XuO8mbnSnwc5OrMIRB884ab/ofmxpl2NOByzvDKF5g2nC4mdWj5n5BDmjPyWH1l7OX6Gifa0UtJESQ== - dependencies: - ng-zorro-antd "^11.0.0" - tslib "^2.0.0" - -"@abp/ng.core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.2.tgz#d5ae888cd6beba0ab7cc92a9759e8f3b4095f5dc" - integrity sha512-uPsxulybSdGyBpR08d9XR3i/YdG/ILvo1Gzyz2wTOG/gay12hh/p83S50kWeBuPkh8uOiT3ezO9BY/GPVrRI+Q== - dependencies: - "@abp/utils" "^4.2.0-rc.1" - "@angular/localize" "~10.0.10" - "@ngxs/store" "^3.7.0" - angular-oauth2-oidc "^10.0.0" - just-clone "^3.1.0" - just-compare "^1.3.0" - snq "^1.0.3" - ts-toolbelt "6.15.4" - tslib "^2.0.0" - -"@abp/ng.feature-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.2.tgz#c0273a07f73d95e7133ec90c1facd5de51121430" - integrity sha512-sGQfh0plQGtm3qCGYs1qmCtWt2EOwVgRyUcNd2ipzorH55S5/dX7or9dYKZofPz7GF55FohbfpxBqnKnBo0WOQ== - dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" - tslib "^2.0.0" - -"@abp/ng.identity@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.2.tgz#fe20f05b60980561218f8357df55c00d85af8eb2" - integrity sha512-zrY5oPhDq8lPcvDvxYM/hS5CtRj71Zlu04Slz4f+ljlStWHBOBZx1VVBl4OQvbDGxDGC04Pf2Sj3PtppEU28gw== - dependencies: - "@abp/ng.permission-management" "~4.2.0-rc.2" - "@abp/ng.theme.shared" "~4.2.0-rc.2" - tslib "^2.0.0" - -"@abp/ng.permission-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.2.tgz#771285283bf3c82dcdd6a07ef444ada73b918d4a" - integrity sha512-FSMSiXGhalTMZIJzQCS6fYRdFH2eVmk73aPeFn1NnMxNdhzCXfbsHpX/lVes+UMw7CddEEgriv0GQYi8dYMnDw== - dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" - tslib "^2.0.0" - -"@abp/ng.schematics@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.2.tgz#93774148f57964c72498fa060c04eb99f6c3987d" - integrity sha512-Ul/+nPTnGpNhi0NMfeYY9fDnsTVzVxP4iSIdqXevPxugeY6pqCefC84i0XHdkVsxIi1UR7VP84tqE9SCv7KnCw== - dependencies: - "@angular-devkit/core" "~11.0.2" - "@angular-devkit/schematics" "~11.0.2" - got "^11.5.2" - jsonc-parser "^2.3.0" - typescript "~3.9.2" - -"@abp/ng.setting-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.2.tgz#a7c5bb30e881f8efe702fcc8f3b95bf442b0289a" - integrity sha512-5sOk19EzFBIIdeTAx6EEmgh2pYOj5oRXq6uuAOmGVzZiX7arFoyqvTR4OAypIBQdMlZ0Iv4EApvJLD6/1IIrqw== - dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" - tslib "^2.0.0" - -"@abp/ng.tenant-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.2.tgz#dc5c019f16ac679589dbeac85317628ec6682096" - integrity sha512-O2Lb0Fe+L11yC69DAcgX4hY6KwI9ojaDnPTFxGtvvTjaUVKnxxchQrJwP0ITsudZe5cWKbF7cME3b3uH4jorBA== - dependencies: - "@abp/ng.feature-management" "~4.2.0-rc.2" - "@abp/ng.theme.shared" "~4.2.0-rc.2" - tslib "^2.0.0" - -"@abp/ng.theme.basic@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.2.tgz#83c6ae4d0d95fc0271386a02c2f22531325c3b26" - integrity sha512-VGEDWIIRnmHPrhcjIhhBcqILI8NUsuVIX7K5XfJUuf3WmEzH9Ru9Yyi81AYZNuBNXNAjyjRH/nIxwljnHxO8bA== - dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" - tslib "^2.0.0" - -"@abp/ng.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.2.tgz#935ca3aa32d8ced85d277139ce790f3cc3faa184" - integrity sha512-UjYPd6KL3bO9PN9XEmBlKQSc0C3EJsLHhifoV+rgtqAHvortOygSHHknOthRA4PN+cg2/PiuWA5gpvMHP1K7Ow== - dependencies: - "@abp/ng.core" "~4.2.0-rc.2" - "@fortawesome/fontawesome-free" "^5.14.0" - "@ng-bootstrap/ng-bootstrap" "^7.0.0" - "@ngx-validate/core" "^0.0.13" - "@swimlane/ngx-datatable" "^17.1.0" - bootstrap "^4.5.0" - chart.js "^2.9.3" - tslib "^2.0.0" - -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== - dependencies: - just-compare "^1.3.0" - -"@angular-devkit/architect@0.1100.7": - version "0.1100.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1100.7.tgz#6c39b886bbdb5d0e5a2d9921aa5816209041e105" - integrity sha512-b2zv2yiRbdhJ7hJfZsAvGYcqgh2DVtc7gRIPo1eDPvOAKrenmZ4zo/v0PRYScrTsPzqmoCokNA5nIwufwUEnuA== - dependencies: - "@angular-devkit/core" "11.0.7" - rxjs "6.6.3" - -"@angular-devkit/build-angular@~0.1100.0": - version "0.1100.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.1100.7.tgz#e5577998e67e89137c2b7c9d232a58b2fdca91dc" - integrity sha512-erc+AtSU46ZIX7A5dmeZ0/G/SQIbqMAGbTKZbf11GePyhT0JAAnfMQtOHMb6AaX85n4yQTg1uMo9f5+8V3lfKA== - dependencies: - "@angular-devkit/architect" "0.1100.7" - "@angular-devkit/build-optimizer" "0.1100.7" - "@angular-devkit/build-webpack" "0.1100.7" - "@angular-devkit/core" "11.0.7" - "@babel/core" "7.12.3" - "@babel/generator" "7.12.1" - "@babel/plugin-transform-runtime" "7.12.1" - "@babel/preset-env" "7.12.1" - "@babel/runtime" "7.12.1" - "@babel/template" "7.10.4" - "@jsdevtools/coverage-istanbul-loader" "3.0.5" - "@ngtools/webpack" "11.0.7" - ansi-colors "4.1.1" - autoprefixer "9.8.6" - babel-loader "8.1.0" - browserslist "^4.9.1" - cacache "15.0.5" - caniuse-lite "^1.0.30001032" - circular-dependency-plugin "5.2.0" - copy-webpack-plugin "6.2.1" - core-js "3.6.5" - css-loader "4.3.0" - cssnano "4.1.10" - file-loader "6.1.1" - find-cache-dir "3.3.1" - glob "7.1.6" - inquirer "7.3.3" - jest-worker "26.5.0" - karma-source-map-support "1.4.0" - less "3.12.2" - less-loader "7.0.2" - license-webpack-plugin "2.3.1" - loader-utils "2.0.0" - mini-css-extract-plugin "1.2.1" - minimatch "3.0.4" - open "7.3.0" - ora "5.1.0" - parse5-html-rewriting-stream "6.0.1" - pnp-webpack-plugin "1.6.4" - postcss "7.0.32" - postcss-import "12.0.1" - postcss-loader "4.0.4" - raw-loader "4.0.2" - regenerator-runtime "0.13.7" - resolve-url-loader "3.1.2" - rimraf "3.0.2" - rollup "2.32.1" - rxjs "6.6.3" - sass "1.27.0" - sass-loader "10.0.5" - semver "7.3.2" - source-map "0.7.3" - source-map-loader "1.1.2" - source-map-support "0.5.19" - speed-measure-webpack-plugin "1.3.3" - style-loader "2.0.0" - stylus "0.54.8" - stylus-loader "4.3.1" - terser "5.3.7" - terser-webpack-plugin "4.2.3" - text-table "0.2.0" - tree-kill "1.2.2" - webpack "4.44.2" - webpack-dev-middleware "3.7.2" - webpack-dev-server "3.11.0" - webpack-merge "5.2.0" - webpack-sources "2.0.1" - webpack-subresource-integrity "1.5.1" - worker-plugin "5.0.0" - -"@angular-devkit/build-optimizer@0.1100.7": - version "0.1100.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1100.7.tgz#fef39c8db5d178f223d43bd1c6e3a566e19c24c1" - integrity sha512-bHIIub0d1trVAmAX/EaNR6Zo4b7hkscewK394qYYp/w8VKQkLSAPMUbt2YTWN+erR9yyHnJ2y7tBabIui75Wdw== - dependencies: - loader-utils "2.0.0" - source-map "0.7.3" - tslib "2.0.3" - typescript "4.0.5" - webpack-sources "2.0.1" - -"@angular-devkit/build-webpack@0.1100.7": - version "0.1100.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1100.7.tgz#d62df6bd70b495df7dc335f80ecd925e0f3b3e4d" - integrity sha512-/6Hudd1hs/GMHX4C/Qk7jueIMNg8NKFJWDEbvMPMgDzTqUIa680PTD6SNSCcY5Cz9mEpdpYCZo5N31JB7dlpOg== - dependencies: - "@angular-devkit/architect" "0.1100.7" - "@angular-devkit/core" "11.0.7" - rxjs "6.6.3" - -"@angular-devkit/core@11.0.7", "@angular-devkit/core@~11.0.2": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-11.0.7.tgz#05b82be7e11ddc2a7836c777297ee45eee20ff55" - integrity sha512-1GKnIT++YSUHpzzRx9QC0+8yOw4wy+ZpiJVDlroPSeK4FGrTCJqJKenkfRjVFRFOSrzTiJds+IU6kI4+bFbw9g== - dependencies: - ajv "6.12.6" - fast-json-stable-stringify "2.1.0" - magic-string "0.25.7" - rxjs "6.6.3" - source-map "0.7.3" - -"@angular-devkit/schematics@11.0.7", "@angular-devkit/schematics@~11.0.2": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.0.7.tgz#7cd2398c98d82f8e5bdc3bb5c70e92d6b1d12a12" - integrity sha512-mKkXWmSTlZYjQO4i7xUX+bG1E9h9Ke3GgGQQouA+kth06IPO+VcywLQNsui4qcyLDUjyo8CaX+44aoSXoX3Tgg== - dependencies: - "@angular-devkit/core" "11.0.7" - ora "5.1.0" - rxjs "6.6.3" - -"@angular/animations@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-11.0.9.tgz#fb8052f55aa2851ab375dcb99d8d59c34a03a745" - integrity sha512-/KsMBUbRTqp29CNLbRIe4/8IxWxhnbUUZWqULaySnRDDW/p2m4miPcFVSp4zjrDZPqdXSibDiCyTiWmQ5PTuKA== - dependencies: - tslib "^2.0.0" - -"@angular/cdk@^11.0.2": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-11.1.1.tgz#87cf1ff8eef898296129742b503bff1f979b7bc1" - integrity sha512-rIog+eqv6RtpSWKM+iHQ5oHyOALMxRXkeTiJyvPfBCYQ2hzPN16+eNxP/JOR+C4y7pMaJyPur0pC572IZEnCsw== - dependencies: - tslib "^2.0.0" - optionalDependencies: - parse5 "^5.0.0" - -"@angular/cli@~11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-11.0.7.tgz#b1c35cd23eeb966dabb575c7ff41111507113147" - integrity sha512-gKHfkkjduNi5OFaEKd75UKpZ7gg9h2+eVoo7ufrZda87PLP7v/XB/QoFz9zj6tTM2/IWkKhJhcsE2MLyIOTUZA== - dependencies: - "@angular-devkit/architect" "0.1100.7" - "@angular-devkit/core" "11.0.7" - "@angular-devkit/schematics" "11.0.7" - "@schematics/angular" "11.0.7" - "@schematics/update" "0.1100.7" - "@yarnpkg/lockfile" "1.1.0" - ansi-colors "4.1.1" - debug "4.2.0" - ini "1.3.6" - inquirer "7.3.3" - npm-package-arg "8.1.0" - npm-pick-manifest "6.1.0" - open "7.3.0" - pacote "9.5.12" - resolve "1.18.1" - rimraf "3.0.2" - semver "7.3.2" - symbol-observable "2.0.3" - universal-analytics "0.4.23" - uuid "8.3.1" - -"@angular/common@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-11.0.9.tgz#423a10eb6133b5090966e33b14cfcb2a7ed1c118" - integrity sha512-QYJx+Y7Bmqdwtyk8TZDqF6io7gPaiZnUPrS/JbV/qB1QA8Q0OVaJSRRy/d0ahsc385+OiUhT7gVnbEh92oWXmQ== - dependencies: - tslib "^2.0.0" - -"@angular/compiler-cli@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-11.0.9.tgz#a3e9a554fecbdf23f83303704861aae52a9bdae9" - integrity sha512-ctqT4k5FJpFDUmH05WVVvzcDEHi2ZAgxbdrPtirQXHvjZ7s16WDBsdOQPlrSnsi3HmBD3rqxFf7c305boEI9Rw== - dependencies: - "@babel/core" "^7.8.6" - "@babel/types" "^7.8.6" - canonical-path "1.0.0" - chokidar "^3.0.0" - convert-source-map "^1.5.1" - dependency-graph "^0.7.2" - fs-extra "4.0.2" - magic-string "^0.25.0" - minimist "^1.2.0" - reflect-metadata "^0.1.2" - semver "^6.3.0" - source-map "^0.6.1" - sourcemap-codec "^1.4.8" - tslib "^2.0.0" - yargs "^16.1.1" - -"@angular/compiler@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" - integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== - -"@angular/compiler@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-11.0.9.tgz#524757eac7c9915605c3579f12b2a80cb9d4d783" - integrity sha512-H2IfS6ciPWN0kmKhbwDuvS8ry5GcRFKfoyA/HGk+nQwCE2nAHC8VNwldbtoisO7XfRWr/uaTrh6z/vdfxsAiHw== - dependencies: - tslib "^2.0.0" - -"@angular/core@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e" - integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w== - -"@angular/core@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-11.0.9.tgz#5e509af2d2580a07f9ddfe3b99ce86ae67689daf" - integrity sha512-J0ff3UK2Cw7Z0eNLtUXrpMFvmmkvPPZWLYIwimyc1pZys7qsIVT6cy2ybGEOhbJgC6qt3fo0DoJV3pGXTalb8A== - dependencies: - tslib "^2.0.0" - -"@angular/forms@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-11.0.9.tgz#c7238af3d42e75f436840f5cf3002cbd41811d84" - integrity sha512-DHi4puesP5iSBToT4FZVqLYZZpZDlAy2wgBe+OhCq7GCIqi8OLejB3bp9BnUd/WnNAHJd3zEjytexih6EPE0Xg== - dependencies: - tslib "^2.0.0" - -"@angular/language-service@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-11.0.9.tgz#44a2999992187de8ba978724807220909021afc2" - integrity sha512-wmt/siAwHUMNIXeu4OCW3z6JtP/VoJLkiQXDfSnetuCfHwy401b72L4h+TWiX3x2ZLzeYwmi0sbqMb5UCctrIw== - -"@angular/localize@~10.0.10": - version "10.0.14" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-10.0.14.tgz#99064a3b12e94e54e791c0638fbbbcc8783d8a62" - integrity sha512-tV1oUii6bxpQ6bKELcZsibUEEGmNiROxy8xRW015VgrgMFhuNuesHSmNUIstZ7ag8/sjh0/w1p55PUB6LEiPFA== - dependencies: - "@babel/core" "7.8.3" - glob "7.1.2" - yargs "15.3.0" - -"@angular/platform-browser-dynamic@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.0.9.tgz#280f5733ffd0135ad232d56022d445b57cee976d" - integrity sha512-OCbXCXxPvpPu7vh3Ra1X+FfqA27TP2NcL/AlWhPTSGB+ggrEUgfdUjBSsULpMVPsD6pG/runGdM9CQjEK7g+DQ== - dependencies: - tslib "^2.0.0" - -"@angular/platform-browser@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-11.0.9.tgz#354795d82b961c164e40b54fe8125ceabcd096b6" - integrity sha512-snuq8SaIRuVDYJLy80kYCEuVITZZbtG3PvxamATvzpgYpAzBskToc4/7LKJk0IEVSMvKzi8eSBCDaK2f2ZJB3A== - dependencies: - tslib "^2.0.0" - -"@angular/router@~11.0.0": - version "11.0.9" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-11.0.9.tgz#3798ab2c5a905f73d927d3779942e3a9d2bf5ddc" - integrity sha512-WopMMhOw4YT8cplDXxxnTS7ByaGop3+frLOkVirY9MKcpcqLwXPblVq4rNKn395XgBVjNK6hmU91RScBnAuVLQ== - dependencies: - tslib "^2.0.0" - -"@ant-design/colors@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-5.0.1.tgz#09670f2f44a7473d7bc01be901c48ec10f12c7a4" - integrity sha512-x1TUaRILaqy3zgFNo+kIqOa3eTYPt81H1/3E4dCjDP4Qvk/xaPEizLDFdRUcIx0cWwyu2LklwfyLHWpbYK8v6A== - dependencies: - "@ctrl/tinycolor" "^3.3.1" - -"@ant-design/icons-angular@^11.0.1": - version "11.0.1" - resolved "https://registry.yarnpkg.com/@ant-design/icons-angular/-/icons-angular-11.0.1.tgz#8ff3131f3d9b4b25fd28c64c4a9bdfe36da54942" - integrity sha512-WwxVx/aToxTjWmB5+O+3rOjSYdF8FC/Yd/8jF1ZGQMtLWAzP8/foQmKvPAktTUsh0/Ijhtur7LrHN2VuUedMcA== - dependencies: - "@ant-design/colors" "^5.0.0" - tslib "^2.0.0" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11", "@babel/code-frame@^7.8.3": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" - integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== - -"@babel/core@7.12.3": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" - integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.1" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.1" - "@babel/parser" "^7.12.3" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" - integrity sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.3" - "@babel/helpers" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.7.5", "@babel/core@^7.8.6": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" - integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.10" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.10" - "@babel/types" "^7.12.10" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" - integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== - dependencies: - "@babel/types" "^7.12.1" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11", "@babel/generator@^7.8.3": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" - integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== - dependencies: - "@babel/types" "^7.12.11" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d" - integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ== - dependencies: - "@babel/types" "^7.12.10" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.12.1": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" - integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== - dependencies: - "@babel/compat-data" "^7.12.5" - "@babel/helper-validator-option" "^7.12.1" - browserslist "^4.14.5" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" - integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.12.1" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.12.1": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" - integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - regexpu-core "^4.7.1" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" - integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" - integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/types" "^7.12.11" - -"@babel/helper-get-function-arity@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" - integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== - dependencies: - "@babel/types" "^7.12.10" - -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" - integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== - dependencies: - "@babel/types" "^7.12.7" - -"@babel/helper-module-imports@^7.12.1": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" - integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== - dependencies: - "@babel/types" "^7.12.5" - -"@babel/helper-module-transforms@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" - integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-simple-access" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/helper-validator-identifier" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" - integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== - dependencies: - "@babel/types" "^7.12.10" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@babel/helper-remap-async-to-generator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" - integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/types" "^7.12.1" - -"@babel/helper-replace-supers@^7.12.1": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" - integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.12.7" - "@babel/helper-optimise-call-expression" "^7.12.10" - "@babel/traverse" "^7.12.10" - "@babel/types" "^7.12.11" - -"@babel/helper-simple-access@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" - integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" - integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== - dependencies: - "@babel/types" "^7.12.11" - -"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helper-validator-option@^7.12.1": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f" - integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== - -"@babel/helper-wrap-function@^7.10.4": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" - integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helpers@^7.12.1", "@babel/helpers@^7.12.5", "@babel/helpers@^7.8.3": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" - integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== - dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.5" - "@babel/types" "^7.12.5" - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.4", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7", "@babel/parser@^7.8.3": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" - integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== - -"@babel/plugin-proposal-async-generator-functions@^7.12.1": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566" - integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.12.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" - integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-dynamic-import@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" - integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-export-namespace-from@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" - integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" - integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" - integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" - integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.12.1": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" - integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" - integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.1" - -"@babel/plugin-proposal-optional-catch-binding@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" - integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.12.1": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" - integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-private-methods@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" - integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" - integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" - integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" - integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-arrow-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" - integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-async-to-generator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" - integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.12.1" - -"@babel/plugin-transform-block-scoped-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" - integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-block-scoping@^7.12.1": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca" - integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-classes@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" - integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.10.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" - integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-destructuring@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" - integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" - integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-duplicate-keys@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" - integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-exponentiation-operator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" - integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-for-of@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" - integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-function-name@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" - integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" - integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" - integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-modules-amd@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" - integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== - dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" - integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== - dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.12.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" - integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== - dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-identifier" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" - integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== - dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" - integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - -"@babel/plugin-transform-new-target@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" - integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-object-super@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" - integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - -"@babel/plugin-transform-parameters@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" - integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-property-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" - integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" - integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" - integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-runtime@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" - integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" - integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" - integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.1": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" - integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" - integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.12.1": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b" - integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-escapes@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" - integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" - integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/preset-env@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" - integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== - dependencies: - "@babel/compat-data" "^7.12.1" - "@babel/helper-compilation-targets" "^7.12.1" - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.1" - "@babel/plugin-proposal-async-generator-functions" "^7.12.1" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-dynamic-import" "^7.12.1" - "@babel/plugin-proposal-export-namespace-from" "^7.12.1" - "@babel/plugin-proposal-json-strings" "^7.12.1" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.12.1" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-async-to-generator" "^7.12.1" - "@babel/plugin-transform-block-scoped-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.1" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-computed-properties" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-dotall-regex" "^7.12.1" - "@babel/plugin-transform-duplicate-keys" "^7.12.1" - "@babel/plugin-transform-exponentiation-operator" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-function-name" "^7.12.1" - "@babel/plugin-transform-literals" "^7.12.1" - "@babel/plugin-transform-member-expression-literals" "^7.12.1" - "@babel/plugin-transform-modules-amd" "^7.12.1" - "@babel/plugin-transform-modules-commonjs" "^7.12.1" - "@babel/plugin-transform-modules-systemjs" "^7.12.1" - "@babel/plugin-transform-modules-umd" "^7.12.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" - "@babel/plugin-transform-new-target" "^7.12.1" - "@babel/plugin-transform-object-super" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-property-literals" "^7.12.1" - "@babel/plugin-transform-regenerator" "^7.12.1" - "@babel/plugin-transform-reserved-words" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-sticky-regex" "^7.12.1" - "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/plugin-transform-typeof-symbol" "^7.12.1" - "@babel/plugin-transform-unicode-escapes" "^7.12.1" - "@babel/plugin-transform-unicode-regex" "^7.12.1" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.1" - core-js-compat "^3.6.2" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" - integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.8.4": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.8.3": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" - integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.12.7" - "@babel/types" "^7.12.7" - -"@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.8.3": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" - integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== - dependencies: - "@babel/code-frame" "^7.12.11" - "@babel/generator" "^7.12.11" - "@babel/helper-function-name" "^7.12.11" - "@babel/helper-split-export-declaration" "^7.12.11" - "@babel/parser" "^7.12.11" - "@babel/types" "^7.12.12" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" - integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@ctrl/tinycolor@^3.3.1": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.3.3.tgz#980487763bc7c9238d6d88d1ac0dee2d4df3df68" - integrity sha512-v75yutF4BDMv9weDQVM+K5XEfjiODhugSV729pnoxtBDO61ij2CsDnQa4N4E9xGaH3/FX5ASZjnajljT2F71tA== - -"@fortawesome/fontawesome-free@^5.14.0": - version "5.15.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz#218cd7276ab4f9ab57cc3d2efa2697e6a579f25d" - integrity sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA== - -"@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== - -"@jsdevtools/coverage-istanbul-loader@3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz#2a4bc65d0271df8d4435982db4af35d81754ee26" - integrity sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA== - dependencies: - convert-source-map "^1.7.0" - istanbul-lib-instrument "^4.0.3" - loader-utils "^2.0.0" - merge-source-map "^1.1.0" - schema-utils "^2.7.0" - -"@ng-bootstrap/ng-bootstrap@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-7.0.0.tgz#3bfa62eb52fdb891b1ce693ea11c39127e2d1ab7" - integrity sha512-SxUaptGWJmCxM0d2Zy1mx7K7p/YBwGZ69NmmBQVY4BE6p5av0hWrVmv9rzzfBz0rhxU7RPZLor2Jpaoq8Xyl4w== - dependencies: - tslib "^2.0.0" - -"@ngtools/webpack@11.0.7": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-11.0.7.tgz#3ec8cd967fdf1dfc79e6b1469369148bc3a93bd1" - integrity sha512-OWGiiDc7s4T53BBCY8tLkLUjgw44HrixW8Wh8e4thFH1eIUM0NHe087s/B5hDNu72W/GqK4IoBbhNQ2wiCR7qQ== - dependencies: - "@angular-devkit/core" "11.0.7" - enhanced-resolve "5.3.1" - webpack-sources "2.0.1" - -"@ngx-validate/core@^0.0.13": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@ngx-validate/core/-/core-0.0.13.tgz#954c6d247df8107668f23a39db24ca45c274f3d9" - integrity sha512-H0RohQz1AAx8J5KlbP0+hcApukA5uVxWg2eQve5YuKYpaD4sC8T613ZzoJEFVua5AfKbWqMXm4hx8mG3ISm7Ig== - dependencies: - tslib "^1.9.0" - -"@ngxs/store@^3.7.0": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@ngxs/store/-/store-3.7.1.tgz#3333379eb36cfe475d019b6c894b263ea515b8a5" - integrity sha512-Qg4rkF8XoIg/E2SGUfBbr4JmR8ZbRfeg1X++fF0HJymK1PtbIxtEXQXm7VTH0+GSmYDCwPJb8Im9dZHGZWF5ww== - dependencies: - tslib "^1.9.0" - -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== - dependencies: - "@nodelib/fs.stat" "2.0.4" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== - dependencies: - "@nodelib/fs.scandir" "2.1.4" - fastq "^1.6.0" - -"@npmcli/move-file@^1.0.1": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8" - integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ== - dependencies: - mkdirp "^1.0.4" - rimraf "^2.7.1" - -"@rollup/plugin-commonjs@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz#2ae2228354cf0fbba6cf9f06f30b2c66a974324c" - integrity sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.0.tgz#fa0f888297b3aebcd6534e8aba4e6fe01997649a" - integrity sha512-ouBBppRdWJKCllDXGzJ7ZIkYbaq+5TmyP0smt1vdJCFfoZhLi31vhpmjLhyo8lreHf4RoeSNllaWrvSqHpHRog== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.19.0" - -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@schematics/angular@11.0.7": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-11.0.7.tgz#bb992d25d5291fd31f048cbb295c3a7bbde6a4e1" - integrity sha512-h8ZmHJvMcvre3rzaDBu1b5RxaaBe008kcniFNeks5nHTQRqDL/5Thg4YhIgH9VQ9Yf8U4atLjRJK5PG1OzmgDA== - dependencies: - "@angular-devkit/core" "11.0.7" - "@angular-devkit/schematics" "11.0.7" - jsonc-parser "2.3.1" - -"@schematics/update@0.1100.7": - version "0.1100.7" - resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1100.7.tgz#7c8a395567641a8ce3e2a9a33e8598b8656cc139" - integrity sha512-DXxWr4FwzhhpzDLivpA/QgXrnBHLSL5EQHcLLRylg3TISJFGKEQGYMYPw5V2ZS43hPM2zoJI/Dkcoo/PHBmNYw== - dependencies: - "@angular-devkit/core" "11.0.7" - "@angular-devkit/schematics" "11.0.7" - "@yarnpkg/lockfile" "1.1.0" - ini "1.3.6" - npm-package-arg "^8.0.0" - pacote "9.5.12" - semver "7.3.2" - semver-intersect "1.4.0" - -"@sindresorhus/is@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" - integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== - -"@swimlane/ngx-datatable@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@swimlane/ngx-datatable/-/ngx-datatable-17.1.0.tgz#ef2f91c3783526e7e89ac7a62a53e7bc9e1c90d5" - integrity sha512-zYUS7uNO9OJ5UQZFuuTRjlPu6vdKA+FHYLfeEs7PgSuUiDCcbl2SWoUdS/3zIoWn/qQyws767ueWiAvvWUbpEw== - -"@szmarczak/http-timer@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" - integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== - dependencies: - defer-to-connect "^2.0.0" - -"@types/cacheable-request@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" - integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/estree@*": - version "0.0.46" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/http-cache-semantics@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" - integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== - -"@types/jasmine@*": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.6.3.tgz#824df555b8a5114f91619e78d8f59624d6f23050" - integrity sha512-5QKAG8WfC9XrOgYLXPrxv1G2IIUE6zDyzTWamhNWJO0LqPRUbZ0q0zGHDhDJ7MpFloUuyME/jpBIdPjq3/P3jA== - -"@types/jasmine@~3.5.0": - version "3.5.14" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.5.14.tgz#f41a14e8ffa939062a71cf9722e5ee7d4e1f94af" - integrity sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w== - -"@types/jasminewd2@~2.0.3": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@types/jasminewd2/-/jasminewd2-2.0.8.tgz#67afe5098d5ef2386073a7b7384b69a840dfe93b" - integrity sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg== - dependencies: - "@types/jasmine" "*" - -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== - -"@types/keyv@*": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" - integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== - dependencies: - "@types/node" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "14.14.22" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" - integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== - -"@types/node@^12.11.1": - version "12.19.15" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.15.tgz#0de7e978fb43db62da369db18ea088a63673c182" - integrity sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw== - -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/q@^0.0.32": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" - integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU= - -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/selenium-webdriver@^3.0.0": - version "3.0.17" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz#50bea0c3c2acc31c959c5b1e747798b3b3d06d4b" - integrity sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw== - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/webpack-sources@^0.1.5": - version "0.1.8" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81" - integrity sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.6.1" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@yarnpkg/lockfile@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -JSONStream@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -adjust-sourcemap-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" - integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - -adm-zip@^0.4.9: - version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" - integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -agent-base@4, agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" - -agent-base@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" - integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== - dependencies: - es6-promisify "^5.0.0" - -agentkeepalive@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" - integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== - dependencies: - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@6.12.6, ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" - integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -angular-oauth2-oidc@^10.0.0: - version "10.0.3" - resolved "https://registry.yarnpkg.com/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz#612ef75c2e07b56592d2506f9618ee6a61857ad9" - integrity sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg== - dependencies: - tslib "^2.0.0" - -ansi-colors@4.1.1, ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -aria-query@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" - integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - -arity-n@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" - integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types-flow@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@9.8.6, autoprefixer@^9.6.5: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axobject-query@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" - integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== - dependencies: - ast-types-flow "0.0.7" - -babel-loader@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= - -base64-js@^1.0.2, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -blocking-proxy@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-1.0.1.tgz#81d6fd1fe13a4c0d6957df7f91b75e98dac40cb2" - integrity sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA== - dependencies: - minimist "^1.2.0" - -bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== - -body-parser@1.19.0, body-parser@^1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -bootstrap@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7" - integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1, browserslist@^4.9.1: - version "4.16.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" - integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== - dependencies: - caniuse-lite "^1.0.30001173" - colorette "^1.2.1" - electron-to-chromium "^1.3.634" - escalade "^3.1.1" - node-releases "^1.1.69" - -browserstack@^1.5.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.6.1.tgz#e051f9733ec3b507659f395c7a4765a1b1e358b3" - integrity sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw== - dependencies: - https-proxy-agent "^2.2.1" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - -builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@15.0.5, cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.0" - tar "^6.0.2" - unique-filename "^1.1.1" - -cacache@^12.0.0, cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" - integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^2.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@5.3.1, camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001173: - version "1.0.30001180" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001180.tgz#67abcd6d1edf48fa5e7d1e84091d1d65ab76e33b" - integrity sha512-n8JVqXuZMVSPKiPiypjFtDTXc4jWIdjxull0f92WLo7e1MSi3uJ3NvveakSh/aCl1QKFAvIz3vIj0v+0K+FrXw== - -canonical-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" - integrity sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chart.js@^2.9.3: - version "2.9.4" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" - integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== - dependencies: - chartjs-color "^2.1.0" - moment "^2.10.2" - -chartjs-color-string@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" - integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== - dependencies: - color-name "^1.0.0" - -chartjs-color@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" - integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== - dependencies: - chartjs-color-string "^0.6.0" - color-convert "^1.9.3" - -"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.4.1, chokidar@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^1.1.1, chownr@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-dependency-plugin@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" - integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.4.0, cli-spinners@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" - integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -codelyzer@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-6.0.1.tgz#c0e9668e847255b37c759e68fb2700b11e277d0f" - integrity sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g== - dependencies: - "@angular/compiler" "9.0.0" - "@angular/core" "9.0.0" - app-root-path "^3.0.0" - aria-query "^3.0.0" - axobject-query "2.0.2" - css-selector-tokenizer "^0.7.1" - cssauron "^1.4.0" - damerau-levenshtein "^1.0.4" - rxjs "^6.5.3" - semver-dsl "^1.0.1" - source-map "^0.5.7" - sprintf-js "^1.1.2" - tslib "^1.10.0" - zone.js "~0.10.3" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -colors@1.4.0, colors@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.11.0, commander@^2.12.1, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2" - integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@^1.2.1, component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -compose-function@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" - integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= - dependencies: - arity-n "^1.0.4" - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -connect@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@1.7.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^0.3.3: - version "0.3.5" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" - integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -copy-anything@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a" - integrity sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g== - dependencies: - is-what "^3.7.1" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-webpack-plugin@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz#8015e4d5c5e637ab7b39c76daa9e03c7a4bf1ae5" - integrity sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q== - dependencies: - cacache "^15.0.5" - fast-glob "^3.2.4" - find-cache-dir "^3.3.1" - glob-parent "^5.1.1" - globby "^11.0.1" - loader-utils "^2.0.0" - normalize-path "^3.0.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - webpack-sources "^1.4.3" - -core-js-compat@^3.6.2: - version "3.8.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.3.tgz#9123fb6b9cad30f0651332dc77deba48ef9b0b3f" - integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== - dependencies: - browserslist "^4.16.1" - semver "7.0.0" - -core-js@3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" - integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== - dependencies: - camelcase "^6.0.0" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^2.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.3" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.1" - semver "^7.3.2" - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" - integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= - dependencies: - css "^2.0.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.1: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css@^2.0.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssauron@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" - integrity sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg= - dependencies: - through X.X.X - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -damerau-levenshtein@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" - integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -date-fns@^2.10.0: - version "2.16.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" - integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== - -date-format@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - -date-format@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" - integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== - dependencies: - ms "2.1.2" - -debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" - integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -dependency-graph@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.7.2.tgz#91db9de6eb72699209d88aea4c1fd5221cac1c49" - integrity sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -dom-serialize@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.634: - version "1.3.647" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.647.tgz#8f1750ab7a5137f1a9a27f8f4ebdf550e08ae10b" - integrity sha512-Or2Nu8TjkmSywY9hk85K/Y6il28hchlonITz30fkC87qvSNupQl29O12BzDDDTnUFlo6kEIFL2QGSpkZDMxH8g== - -elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.0.tgz#fc1b4d9616288ce4f2daf06dcf612413dec941c7" - integrity sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.4.2" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" - integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.4" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" - integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== - dependencies: - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.4.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" - ws "~7.4.2" - -enhanced-resolve@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz#3f988d0d7775bdc2d96ede321dc81f8249492f57" - integrity sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.0.0" - -enhanced-resolve@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -err-code@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= - -errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.1: - version "1.18.0-next.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" - integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.1" - is-regex "^1.1.1" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.3" - string.prototype.trimstart "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@2.0.3, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.1.1, fast-glob@^3.2.4: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fastq@^1.6.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" - integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-loader@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" - integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.1.2, finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@3.3.1, find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-parent-dir@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" - integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ= - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flatted@^2.0.1, flatted@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" - integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" - integrity sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -fsevents@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" - integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -genfun@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" - integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.0.tgz#892e62931e6938c8a23ea5aaebcfb67bd97da97e" - integrity sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.1.6, glob@^7.0.3, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^11.0.1: - version "11.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" - integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -got@^11.5.2: - version "11.8.1" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" - integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^3.0.6: - version "3.0.7" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" - integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== - dependencies: - lru-cache "^6.0.0" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-cache-semantics@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== - dependencies: - agent-base "4" - debug "3.1.0" - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.0-beta.5.2" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" - integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: - version "2.2.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" - integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= - dependencies: - ms "^2.0.0" - -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.13, ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.6.tgz#f1c46a2a93a253e7b3905115e74d527cd23061a1" - integrity sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg== - -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -injection-js@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/injection-js/-/injection-js-2.4.0.tgz#ebe8871b1a349f23294eaa751bbd8209a636e754" - integrity sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA== - dependencies: - tslib "^2.0.0" - -inquirer@7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@1.1.5, ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== - dependencies: - call-bind "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.0.0, is-core-module@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" - integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== - dependencies: - is-path-inside "^1.0.0" - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-reference@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.0.4, is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-what@^3.7.1: - version "3.12.0" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz#f4405ce4bd6dd420d3ced51a026fb90e03705e55" - integrity sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isbinaryfile@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" - integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jasmine-core@^3.6.0, jasmine-core@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20" - integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw== - -jasmine-core@~2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" - integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= - -jasmine-spec-reporter@~5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz#b61288ab074ad440dc2477c4d42840b0e74a6b95" - integrity sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g== - dependencies: - colors "1.4.0" - -jasmine@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" - integrity sha1-awicChFXax8W3xG4AUbZHU6Lij4= - dependencies: - exit "^0.1.2" - glob "^7.0.6" - jasmine-core "~2.8.0" - -jasminewd2@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e" - integrity sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4= - -jest-worker@26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" - integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^26.5.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.0, json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonc-parser@2.3.1, jsonc-parser@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" - integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jszip@^3.1.3: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6" - integrity sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - set-immediate-shim "~1.0.1" - -just-clone@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/just-clone/-/just-clone-3.1.0.tgz#10efc422e9b041355c43b8076d7b768b7a09fbbd" - integrity sha512-sROn15yHaeNYSTG49HmfbQLtsZvMBb2COvVofNXbeUXx6GkERkdjG3dfejD0fe78gdHJLyS+fOz897H73S8LqA== - -just-compare@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-1.3.0.tgz#a53c31373f150a5b238555c243af4d8a38d7a0e5" - integrity sha512-i4QNo3mPYubDmAwPbCKQl5C2b5s0yudP5V5GDp6lGR1PM22Em4Idf7mcaIzXYcL6/RLdZtuGrAqkBe9RYM/t4w== - -karma-chrome-launcher@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz#805a586799a4d05f4e54f72a204979f3f3066738" - integrity sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg== - dependencies: - which "^1.2.1" - -karma-coverage-istanbul-reporter@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz#f3b5303553aadc8e681d40d360dfdc19bc7e9fe9" - integrity sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw== - dependencies: - istanbul-lib-coverage "^3.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^3.0.6" - istanbul-reports "^3.0.2" - minimatch "^3.0.4" - -karma-jasmine-html-reporter@^1.5.0: - version "1.5.4" - resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz#669f33d694d88fce1b0ccfda57111de716cb0192" - integrity sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q== - -karma-jasmine@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-4.0.1.tgz#b99e073b6d99a5196fc4bffc121b89313b0abd82" - integrity sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw== - dependencies: - jasmine-core "^3.6.0" - -karma-source-map-support@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b" - integrity sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A== - dependencies: - source-map-support "^0.5.5" - -karma@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-5.1.1.tgz#4e472c1e5352d73edbd2090726afdb01d7869d72" - integrity sha512-xAlOr5PMqUbiKXSv5PCniHWV3aiwj6wIZ0gUVcwpTCPVQm/qH2WAMFWxtnpM6KJqhkRWrIpovR4Rb0rn8GtJzQ== - dependencies: - body-parser "^1.19.0" - braces "^3.0.2" - chokidar "^3.0.0" - colors "^1.4.0" - connect "^3.7.0" - di "^0.0.1" - dom-serialize "^2.2.1" - flatted "^2.0.2" - glob "^7.1.6" - graceful-fs "^4.2.4" - http-proxy "^1.18.1" - isbinaryfile "^4.0.6" - lodash "^4.17.15" - log4js "^6.2.1" - mime "^2.4.5" - minimatch "^3.0.4" - qjobs "^1.2.0" - range-parser "^1.2.1" - rimraf "^3.0.2" - socket.io "^2.3.0" - source-map "^0.6.1" - tmp "0.2.1" - ua-parser-js "0.7.21" - yargs "^15.3.1" - -keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== - dependencies: - json-buffer "3.0.1" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klona@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" - integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== - -less-loader@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-7.0.2.tgz#0d73a49ec32a9d3ff12614598e6e2b47fb2a35c4" - integrity sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -less@3.12.2: - version "3.12.2" - resolved "https://registry.yarnpkg.com/less/-/less-3.12.2.tgz#157e6dd32a68869df8859314ad38e70211af3ab4" - integrity sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q== - dependencies: - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - native-request "^1.0.5" - source-map "~0.6.0" - -less@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/less/-/less-4.1.0.tgz#a12708d1951239db1c9d7eaa405f1ebac9a75b8d" - integrity sha512-w1Ag/f34g7LwtQ/sMVSGWIyZx+gG9ZOAEtyxeX1fG75is6BMyC2lD5kG+1RueX7PkAvlQBm2Lf2aN2j0JbVr2A== - dependencies: - copy-anything "^2.0.1" - parse-node-version "^1.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - needle "^2.5.2" - source-map "~0.6.0" - -license-webpack-plugin@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz#08eddb2f776c7c64c02f308a00e017d6e824d0b6" - integrity sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ== - dependencies: - "@types/webpack-sources" "^0.1.5" - webpack-sources "^1.2.0" - -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@2.0.0, loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -log4js@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" - integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== - dependencies: - date-format "^3.0.0" - debug "^4.1.1" - flatted "^2.0.1" - rfdc "^1.1.4" - streamroller "^2.2.4" - -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@0.25.7, magic-string@^0.25.0, magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -make-fetch-happen@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" - integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== - dependencies: - agentkeepalive "^3.4.1" - cacache "^12.0.0" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - node-fetch-npm "^2.0.2" - promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^6.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": - version "1.45.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== - dependencies: - mime-db "1.45.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.3.1, mime@^2.4.4, mime@^2.4.5: - version "2.5.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" - integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -mini-css-extract-plugin@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz#30ea7dee632b3002b0c77aeed447790408cb247e" - integrity sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -moment@^2.10.2: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.0.0, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-request@^1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb" - integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== - -needle@^2.5.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" - integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -ng-packagr@^11.0.1: - version "11.1.2" - resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-11.1.2.tgz#d9e9439911d57603d80c4ea33cb31418ce9a36c1" - integrity sha512-Ud6DJC4eiiQHDUi3BegW50gJfvUfbXTu9fqR/Hhj0s42PLDOfGzbIAFhz8AhiDNdzptZTsinITvESuKj12CIAA== - dependencies: - "@rollup/plugin-commonjs" "^17.0.0" - "@rollup/plugin-json" "^4.1.0" - "@rollup/plugin-node-resolve" "^11.1.0" - ajv "^7.0.3" - ansi-colors "^4.1.1" - autoprefixer "^9.6.5" - browserslist "^4.16.1" - chokidar "^3.5.1" - commander "^7.0.0" - cssnano-preset-default "^4.0.7" - glob "^7.1.6" - injection-js "^2.4.0" - less "^4.1.0" - node-sass-tilde-importer "^1.0.2" - ora "^5.1.0" - postcss "^7.0.29" - postcss-url "^8.0.0" - read-pkg-up "^5.0.0" - rimraf "^3.0.0" - rollup "^2.37.0" - rollup-plugin-sourcemaps "^0.6.3" - rxjs "^6.5.0" - sass "^1.32.5" - stylus "^0.54.8" - terser "^5.5.1" - -ng-zorro-antd@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/ng-zorro-antd/-/ng-zorro-antd-11.1.0.tgz#2b6f982fccc73749d2ba61e60220288e2fb80d3c" - integrity sha512-3EMqRRM7Gc4OghfjmKtQxRV1dv0Mao2USNyokAPSxAXDhYVtMz+AJRVwf7bpnjxxzxe7RQU5GChGeNewUNmPBw== - dependencies: - "@angular/cdk" "^11.0.2" - "@ant-design/icons-angular" "^11.0.1" - date-fns "^2.10.0" - resize-observer-polyfill "^1.5.1" - tslib "^2.0.0" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-fetch-npm@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" - integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== - dependencies: - encoding "^0.1.11" - json-parse-better-errors "^1.0.0" - safe-buffer "^5.1.1" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.69: - version "1.1.70" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" - integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== - -node-sass-tilde-importer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/node-sass-tilde-importer/-/node-sass-tilde-importer-1.0.2.tgz#1a15105c153f648323b4347693fdb0f331bad1ce" - integrity sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg== - dependencies: - find-parent-dir "^0.3.0" - -normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-install-checks@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" - integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== - dependencies: - semver "^7.1.1" - -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-package-arg@8.1.0, npm-package-arg@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" - integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== - dependencies: - hosted-git-info "^3.0.6" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - -npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" - integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== - dependencies: - hosted-git-info "^2.7.1" - osenv "^0.1.5" - semver "^5.6.0" - validate-npm-package-name "^3.0.0" - -npm-packlist@^1.1.12: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - -npm-pick-manifest@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz#2befed87b0fce956790f62d32afb56d7539c022a" - integrity sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw== - dependencies: - npm-install-checks "^4.0.0" - npm-package-arg "^8.0.0" - semver "^7.0.0" - -npm-pick-manifest@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" - integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== - dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^6.0.0" - semver "^5.4.1" - -npm-registry-fetch@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz#57951bf6541e0246b34c9f9a38ab73607c9449d7" - integrity sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ== - dependencies: - JSONStream "^1.3.4" - bluebird "^3.5.1" - figgy-pudding "^3.4.1" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - npm-package-arg "^6.1.0" - safe-buffer "^5.2.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.8.0, object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== - -object-is@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" - integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" - integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" - integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -ora@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" - integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== - dependencies: - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.4.0" - is-interactive "^1.0.0" - log-symbols "^4.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -ora@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" - integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== - dependencies: - bl "^4.0.3" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - log-symbols "^4.0.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pacote@9.5.12: - version "9.5.12" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" - integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== - dependencies: - bluebird "^3.5.3" - cacache "^12.0.2" - chownr "^1.1.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.3" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.4.0" - npm-normalize-package-bin "^1.0.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.1.12" - npm-pick-manifest "^3.0.0" - npm-registry-fetch "^4.0.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.2" - safe-buffer "^5.1.2" - semver "^5.6.0" - ssri "^6.0.1" - tar "^4.4.10" - unique-filename "^1.1.1" - which "^1.3.1" - -pako@~1.0.2, pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-node-version@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - -parse5-html-rewriting-stream@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz#de1820559317ab4e451ea72dba05fddfd914480b" - integrity sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg== - dependencies: - parse5 "^6.0.1" - parse5-sax-parser "^6.0.1" - -parse5-sax-parser@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz#98b4d366b5b266a7cd90b4b58906667af882daba" - integrity sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg== - dependencies: - parse5 "^6.0.1" - -parse5@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== - -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pnp-webpack-plugin@1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== - dependencies: - ts-pnp "^1.1.6" - -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-import@12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== - dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-loader@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.4.tgz#b2d005b52e008a44991cf8123bee207e635eb53e" - integrity sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.4" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - semver "^7.3.2" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-8.0.0.tgz#7b10059bd12929cdbb1971c60f61a0e5af86b4ca" - integrity sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw== - dependencies: - mime "^2.3.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^7.0.2" - xxhashjs "^0.2.1" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@7.0.21: - version "7.0.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" - integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@7.0.32: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.29, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-retry@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" - integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= - dependencies: - err-code "^1.0.0" - retry "^0.10.0" - -protoduck@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" - integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== - dependencies: - genfun "^5.0.0" - -protractor@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-7.0.0.tgz#c3e263608bd72e2c2dc802b11a772711a4792d03" - integrity sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw== - dependencies: - "@types/q" "^0.0.32" - "@types/selenium-webdriver" "^3.0.0" - blocking-proxy "^1.0.0" - browserstack "^1.5.1" - chalk "^1.1.3" - glob "^7.0.3" - jasmine "2.8.0" - jasminewd2 "^2.1.0" - q "1.4.1" - saucelabs "^1.5.0" - selenium-webdriver "3.6.0" - source-map-support "~0.4.0" - webdriver-js-extender "2.1.0" - webdriver-manager "^12.1.7" - yargs "^15.3.1" - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= - -q@^1.1.2, q@^1.4.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qjobs@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-loader@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" - integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= - dependencies: - pify "^2.3.0" - -read-pkg-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" - integrity sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg== - dependencies: - find-up "^3.0.0" - read-pkg "^5.0.0" - -read-pkg@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -reflect-metadata@^0.1.2: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@0.13.7, regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regex-parser@^2.2.11: - version "2.2.11" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== - -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.6" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.6.tgz#6d8c939d1a654f78859b08ddcc4aa777f3fa800a" - integrity sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -request@^2.87.0, request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-alpn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" - integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url-loader@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" - integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== - dependencies: - adjust-sourcemap-loader "3.0.0" - camelcase "5.3.1" - compose-function "3.0.3" - convert-source-map "1.7.0" - es6-iterator "2.0.3" - loader-utils "1.2.3" - postcss "7.0.21" - rework "1.0.1" - rework-visit "1.0.0" - source-map "0.6.1" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" - integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== - dependencies: - is-core-module "^2.0.0" - path-parse "^1.0.6" - -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rework-visit@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" - integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= - -rework@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" - integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= - dependencies: - convert-source-map "^0.3.3" - css "^2.0.0" - -rfdc@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.2.0.tgz#9e9894258f48f284b43c3143c68070a4f373b949" - integrity sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rollup-plugin-sourcemaps@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz#bf93913ffe056e414419607f1d02780d7ece84ed" - integrity sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw== - dependencies: - "@rollup/pluginutils" "^3.0.9" - source-map-resolve "^0.6.0" - -rollup@2.32.1: - version "2.32.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.32.1.tgz#625a92c54f5b4d28ada12d618641491d4dbb548c" - integrity sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw== - optionalDependencies: - fsevents "~2.1.2" - -rollup@^2.37.0: - version "2.38.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.0.tgz#57942d5a10826cb12ed1f19c261f774efa502d2d" - integrity sha512-ay9zDiNitZK/LNE/EM2+v5CZ7drkB2xyDljvb1fQJCGnq43ZWRkhxN145oV8GmoW1YNi4sA/1Jdkr2LfawJoXw== - optionalDependencies: - fsevents "~2.1.2" - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-parallel@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" - integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@6.6.3, rxjs@^6.5.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@~6.6.0: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-loader@10.0.5: - version "10.0.5" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.5.tgz#f53505b5ddbedf43797470ceb34066ded82bb769" - integrity sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - -sass@1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.27.0.tgz#0657ff674206b95ec20dc638a93e179c78f6ada2" - integrity sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig== - dependencies: - chokidar ">=2.0.0 <4.0.0" - -sass@^1.32.5: - version "1.32.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.5.tgz#2882d22ad5748c05fa9bff6c3b0ffbc4f4b9e1dc" - integrity sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ== - dependencies: - chokidar ">=2.0.0 <4.0.0" - -saucelabs@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" - integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ== - dependencies: - https-proxy-agent "^2.2.1" - -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== - dependencies: - "@types/json-schema" "^7.0.6" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" - integrity sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q== - dependencies: - jszip "^3.1.3" - rimraf "^2.5.4" - tmp "0.0.30" - xml2js "^0.4.17" - -selfsigned@^1.10.7: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== - dependencies: - node-forge "^0.10.0" - -semver-dsl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" - integrity sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA= - dependencies: - semver "^5.3.0" - -semver-intersect@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.4.0.tgz#bdd9c06bedcdd2fedb8cd352c3c43ee8c61321f3" - integrity sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ== - dependencies: - semver "^5.0.0" - -"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.0.0, semver@^7.1.1, semver@^7.3.2: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-immediate-shim@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -smart-buffer@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" - integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -snq@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/snq/-/snq-1.0.3.tgz#f9661d10eebb224c52fc3c50106445c268618168" - integrity sha512-bXcxd1ppFnSNYKq84HyOYuYtbMHCFTZvuPSNCn/80yx9+DLkU/hLqjqCRKRHSDISrL1T/lWGXJyQxWS8TnutFA== - -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" - integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "~1.3.0" - debug "~3.1.0" - engine.io-client "~3.5.0" - has-binary2 "~1.0.2" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" - integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== - dependencies: - component-emitter "~1.3.0" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" - integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== - dependencies: - component-emitter "1.2.1" - debug "~4.1.0" - isarray "2.0.1" - -socket.io@^2.3.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2" - integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w== - dependencies: - debug "~4.1.0" - engine.io "~3.5.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.4.0" - socket.io-parser "~3.4.0" - -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.4.0" - websocket-driver "0.6.5" - -socks-proxy-agent@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" - integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== - dependencies: - agent-base "~4.2.1" - socks "~2.3.2" - -socks@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" - integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== - dependencies: - ip "1.1.5" - smart-buffer "^4.1.0" - -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-loader@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.1.2.tgz#5b782bf08496d3a7f355e1780df0e25190a80991" - integrity sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA== - dependencies: - abab "^2.0.5" - iconv-lite "^0.6.2" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - source-map "^0.6.1" - whatwg-mimetype "^2.3.0" - -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-resolve@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" - integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - -source-map-support@0.5.19, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.4.0: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -speed-measure-webpack-plugin@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz#6ff894fc83e8a6310dde3af863a0329cd79da4f5" - integrity sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ== - dependencies: - chalk "^2.0.1" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.0, ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -streamroller@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" - integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== - dependencies: - date-format "^2.1.0" - debug "^4.1.1" - fs-extra "^8.1.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" - integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" - integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -style-loader@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" - integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylus-loader@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-4.3.1.tgz#8b4e749294d9fe0729c2e5e1f04cbf87e1c941aa" - integrity sha512-apDYJEM5ZpOAWbWInWcsbtI8gHNr/XYVcSY/tWqOUPt7M5tqhtwXVsAkgyiVjhuvw2Yrjq474a9H+g4d047Ebw== - dependencies: - fast-glob "^3.2.4" - klona "^2.0.4" - loader-utils "^2.0.0" - normalize-path "^3.0.0" - schema-utils "^3.0.0" - -stylus@0.54.8, stylus@^0.54.8: - version "0.54.8" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147" - integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== - dependencies: - css-parse "~2.0.0" - debug "~3.1.0" - glob "^7.1.6" - mkdirp "~1.0.4" - safer-buffer "^2.1.2" - sax "~1.2.4" - semver "^6.3.0" - source-map "^0.7.3" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-observable@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" - integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tapable@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" - integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== - -tar@^4.4.10: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terser-webpack-plugin@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@5.3.7: - version "5.3.7" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.7.tgz#798a4ae2e7ff67050c3e99fcc4e00725827d97e2" - integrity sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.3.4, terser@^5.5.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" - integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -text-table@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -"through@>=2.2.7 <3", through@X.X.X, through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tmp@0.0.30: - version "0.0.30" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" - integrity sha1-ckGdSovn1s51FI/YsyTlk6cRwu0= - dependencies: - os-tmpdir "~1.0.1" - -tmp@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tree-kill@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -ts-node@~8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" - integrity sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.6" - yn "^3.0.0" - -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - -ts-toolbelt@6.15.4: - version "6.15.4" - resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.4.tgz#f7fad584e197d0f495f77b5e3ee75a8f4c4dd3da" - integrity sha512-Ifp2yNo4I8q5UwNARUBMnBiFpv5DEtTbCtS8RCjjLOz+PNcThbjUsPJCK3hRnz0dTygM1Fi3Mgvnt/DoKUTU2g== - -tslib@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" - integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== - -tslib@^1.10.0, tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - -tslint@~6.1.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" - integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== - dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^4.0.1" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.3" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.13.0" - tsutils "^2.29.0" - -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" - integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@4.0.5, typescript@~4.0.3: - version "4.0.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" - integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== - -typescript@~3.9.2: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== - -ua-parser-js@0.7.21: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universal-analytics@0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.23.tgz#d915e676850c25c4156762471bdd7cf2eaaca8ac" - integrity sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A== - dependencies: - debug "^4.1.1" - request "^2.88.2" - uuid "^3.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" - integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== - -uuid@^3.0.0, uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= - dependencies: - builtins "^1.0.3" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -webdriver-js-extender@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz#57d7a93c00db4cc8d556e4d3db4b5db0a80c3bb7" - integrity sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ== - dependencies: - "@types/selenium-webdriver" "^3.0.0" - selenium-webdriver "^3.0.1" - -webdriver-manager@^12.1.7: - version "12.1.8" - resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.1.8.tgz#5e70e73eaaf53a0767d5745270addafbc5905fd4" - integrity sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg== - dependencies: - adm-zip "^0.4.9" - chalk "^1.1.1" - del "^2.2.0" - glob "^7.0.3" - ini "^1.3.4" - minimist "^1.2.0" - q "^1.4.1" - request "^2.87.0" - rimraf "^2.5.2" - semver "^5.3.0" - xml2js "^0.4.17" - -webpack-dev-middleware@3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.2.0.tgz#31cbcc954f8f89cd4b06ca8d97a38549f7f3f0c9" - integrity sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-sources@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.1.tgz#1467f6e692ddce91e88b8044c44347b1087bbd4f" - integrity sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-subresource-integrity@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz#6f44ea99987266b70c4ec42ac51064d33e982277" - integrity sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q== - dependencies: - webpack-sources "^1.3.0" - -webpack@4.44.2: - version "4.44.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" - integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.1, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -worker-plugin@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/worker-plugin/-/worker-plugin-5.0.0.tgz#113b5fe1f4a5d6a957cecd29915bedafd70bb537" - integrity sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ== - dependencies: - loader-utils "^1.1.0" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@~7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" - integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== - -xml2js@^0.4.17: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xxhashjs@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" - integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== - dependencies: - cuint "^0.2.2" - -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - -y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.0, yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs@15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.0.tgz#403af6edc75b3ae04bf66c94202228ba119f0976" - integrity sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.1.1: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - -yn@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zone.js@~0.10.2, zone.js@~0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.10.3.tgz#3e5e4da03c607c9dcd92e37dd35687a14a140c16" - integrity sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg== diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 807eaccef0..010901f2f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index b0078db190..ab775c8fda 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index 214c743fe8..1d3fc57a43 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 0118c5f1a3..2fc3f25822 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 807eaccef0..010901f2f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 0118c5f1a3..2fc3f25822 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 807eaccef0..010901f2f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index b0078db190..ab775c8fda 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 62d6a7b7b8..2802f2841d 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,13 +15,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.2.0-rc.2", - "@abp/ng.core": "~4.2.0-rc.2", - "@abp/ng.identity": "~4.2.0-rc.2", - "@abp/ng.setting-management": "~4.2.0-rc.2", - "@abp/ng.tenant-management": "~4.2.0-rc.2", - "@abp/ng.theme.basic": "~4.2.0-rc.2", - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.components": "~4.2.0", + "@abp/ng.core": "~4.2.0", + "@abp/ng.identity": "~4.2.0", + "@abp/ng.setting-management": "~4.2.0", + "@abp/ng.tenant-management": "~4.2.0", + "@abp/ng.theme.basic": "~4.2.0", + "@abp/ng.theme.shared": "~4.2.0", "@angular/animations": "~11.0.0", "@angular/common": "~11.0.0", "@angular/compiler": "~11.0.0", @@ -35,7 +35,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.2.0-rc.2", + "@abp/ng.schematics": "~4.2.0", "@angular-devkit/build-angular": "~0.1100.0", "@angular/cli": "~11.0.0", "@angular/compiler-cli": "~11.0.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 14ff00a67e..6150016693 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=4.2.0-rc.2", - "@abp/ng.theme.shared": ">=4.2.0-rc.2" + "@abp/ng.core": ">=4.2.0", + "@abp/ng.theme.shared": ">=4.2.0" }, "dependencies": { "tslib": "^2.0.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index 214c743fe8..1d3fc57a43 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 0118c5f1a3..2fc3f25822 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 807eaccef0..010901f2f3 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 0118c5f1a3..2fc3f25822 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 807eaccef0..010901f2f3 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^4.2.0" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock index b02a1d9661..83097c1326 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0-rc.2.tgz#f4625e18fd3704d432913e9de59c7183770ea485" - integrity sha512-wwOFcrICyhgAcBq7zgdIkYQ8Mov0g1iYrjoRZRiUzBYG4wkcAO9POM9asE6uvY5sD/hd0cRoXSZOcNKUt0J1SA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0-rc.2.tgz#9ff3af53b667e747c06d3f067a0f68a938ac72a8" - integrity sha512-qsJ6UaUxyOJOHxsqVjlUGhCvQUnbXgGzLvFPJZYLpnWm6ZvE1KAgJnQHL46YSllCDT0meVqHt9byjOCRJUMm9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.2.0-rc.2" - "@abp/bootstrap" "~4.2.0-rc.2" - "@abp/bootstrap-datepicker" "~4.2.0-rc.2" - "@abp/datatables.net-bs4" "~4.2.0-rc.2" - "@abp/font-awesome" "~4.2.0-rc.2" - "@abp/jquery-form" "~4.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~4.2.0-rc.2" - "@abp/lodash" "~4.2.0-rc.2" - "@abp/luxon" "~4.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~4.2.0-rc.2" - "@abp/select2" "~4.2.0-rc.2" - "@abp/sweetalert" "~4.2.0-rc.2" - "@abp/timeago" "~4.2.0-rc.2" - "@abp/toastr" "~4.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0-rc.2.tgz#726f45c7ff12e69e970fb89b4adfb15502a11576" - integrity sha512-EzTYQ8XzXIprfK95LyYc1Ci3to3dNlBOSzkkYfYDXkSR5/SyBKckCTd5FL4c7yrs+qBoJMxKWDyWz+pmf6PIJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.0.tgz#01d6aab8a31fd6ea828b753805f1ba9a9165975f" + integrity sha512-d+7YubPbuBRY8tjqBxS4I1gyxekjg8Z0X9QaDrf/SGQBoWpIdbG09AekNdddKNkimWcPg4UgUytahPuX9f17ZA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~4.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.0.tgz#a72b5e1cefa27e658b7f072a8c2c1b4ee12baef8" + integrity sha512-bgWwBBJA/74kFGWh7O+lzb+inV5LOlYOpDoCNAL0XgQTrutrPNHwsk5ZnGVfhSYrBgk47HGVZDwsqKMCTRn1ig== + dependencies: + "@abp/aspnetcore.mvc.ui" "~4.2.0" + "@abp/bootstrap" "~4.2.0" + "@abp/bootstrap-datepicker" "~4.2.0" + "@abp/datatables.net-bs4" "~4.2.0" + "@abp/font-awesome" "~4.2.0" + "@abp/jquery-form" "~4.2.0" + "@abp/jquery-validation-unobtrusive" "~4.2.0" + "@abp/lodash" "~4.2.0" + "@abp/luxon" "~4.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~4.2.0" + "@abp/select2" "~4.2.0" + "@abp/sweetalert" "~4.2.0" + "@abp/timeago" "~4.2.0" + "@abp/toastr" "~4.2.0" + +"@abp/aspnetcore.mvc.ui@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.0.tgz#9c090f64a33d31962936d8d53b345afeaa9f2ba3" + integrity sha512-Qt3MUZ41vuvnIVEAYxyOm1mflvFwwvKYsEjFBbePBnwaYL7udooiIFxTEm4FBh3EQJOi+8T84rnXqiIXj4Pi8A== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,145 +43,145 @@ micromatch "^4.0.2" path "^0.12.7" -"@abp/bootstrap-datepicker@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0-rc.2.tgz#f2a6d013321c98f8c9a7533087360fce9a5fd074" - integrity sha512-n3gLYLL7hHX83gurN5iRkpairrw0oAyg+Bc6SeIbNAdorun9wBJn7IlmvXxGPn1xK5iDKktRSeWJ885fMgkuWg== +"@abp/bootstrap-datepicker@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.0.tgz#92abebe044a91b94b8a3b85560b501120a0fa500" + integrity sha512-bhEa/+zGVX00vkXGrbKI/hcl9o5Xgqwb27by9ZQqxk9Go4lwsEP/7lrXM49Cg8XZTT3L0/lYclneEMDrqGafaQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0-rc.2.tgz#49250657f667f7553f3c2149fda43f7535de989b" - integrity sha512-WYdyDQzgFlltxqdYINAMVWjXiiDAx780fTJEd3YKLSzxmVGBfoW4cfFzw8vr/G/EMYrgAPQtrIS+BRlFAJXXGQ== +"@abp/bootstrap@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.2.0.tgz#c7ce82ead40bf0d62a318f67f180663ec76aa53c" + integrity sha512-E1gEX0ct67KFjKiZB6eQcIYJ3TS/pF1S4CxknBVCd77Zs03bHI+eEgBNlwcYriVBbQo+vheUQAaACbi+e2mm3Q== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0-rc.2.tgz#dc18c3b8f294563ba62c000c026f5ceb86030456" - integrity sha512-YJz4xUwb/mv/Xi/WuPz2SF/LD22P/UJ+psb+35ezOeuj020IAdaunk8LdrU5TfaZqNe5WpGszKMA+jO9ydNuqA== +"@abp/core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.2.0.tgz#20da3d1bab30e80d8864915fdd67e99db729be71" + integrity sha512-Cfa6Ck+Tr7isVpNxo9qT9eKByLadDErA+QVjeps7qYq9ztIpIz/7Yl85tHYEH0YPO9y2zcSOvxjy5SCBXlph5Q== dependencies: - "@abp/utils" "^4.2.0-rc.2" + "@abp/utils" "^4.2.0" -"@abp/datatables.net-bs4@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0-rc.2.tgz#0d14886aa756ca707dd365b423b40d84c658268e" - integrity sha512-kX+NrGkisy7IMi+xL69dPaPOYNLBZ4Vp7xCvJqNhdc5Sh6Rn1P0bLvxFKG065mBMfgW8tyFNnN3c5WzwcRFSmg== +"@abp/datatables.net-bs4@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.0.tgz#b5cb47235079a4063c5ff8ce78e65596fa587709" + integrity sha512-N4hp2xCst1qavt07Nf+zXlvbZfeSah64VuMjsZgaimHMlDjxg6zVsTHLgLfzwfPV/eOBrGiecPEuvfEeaqcw4A== dependencies: - "@abp/datatables.net" "~4.2.0-rc.2" + "@abp/datatables.net" "~4.2.0" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0-rc.2.tgz#a82ac16c1644a92d01ba63bf57e0d3784eb00f2f" - integrity sha512-bEQ6QSUN65lJ8fK8wOVE16cayDI64EgyVb3qZAzWUncxPyLLa5s5zlDjcQ98D3An+x3tG2CdmEEWjlAgWdaf1g== +"@abp/datatables.net@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.2.0.tgz#2e0273c3212e5a62fc8b4138e4570fb27143f701" + integrity sha512-33ZkaorkVkPQ7HNtDjyIvcVbvAdFm8V+gFN+xMQZhA10wMlMGrKzVJjriv4NhNpPjtB4/owhOv6wobiuWBrGiA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" datatables.net "^1.10.21" -"@abp/font-awesome@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0-rc.2.tgz#6c72ef7ae00beda565e9836c8214ccf074ea7e4b" - integrity sha512-bEQPGyVsKV7aQtVwG4UIcG+DMneBD7jcjX3eFqjOlGhQq3ODbNld5IPXHO+JnHDLt5NOzrePQLUzPhsvCIwhGA== +"@abp/font-awesome@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.2.0.tgz#a637d164634b0df862e4ea620736afae282c71c9" + integrity sha512-P8OXp+XIZj6l7cNJ5+7Lpl8iixI/bHGSPkATggaOYZ2EWoNR3B/8pj7p44weP2bCAvUEvaxk214BKlpAslo8eQ== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0-rc.2.tgz#a4726794f78cf69dd75c0adda3dca3ed623f02d8" - integrity sha512-rOGXYTTiQUD2HWTabh0+Ot6LX4PEObd3DW3ikBHZSnfen7W0OgnLdqNaunHYSEV3UUgCAZHaX0wQd4SM0pRMLg== +"@abp/jquery-form@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.2.0.tgz#12b88a79a69f7d3b15aed8c7ca3ff5bc9f526f22" + integrity sha512-lxvXhA4kg002gmDTWgoE6TcQWDe6kBcpV4KBB7aK/6LjK3noeT29SPX0kvKxjoUKyM5TqT2Hx7rg4jgtICjFFA== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0-rc.2.tgz#5dee22e1bcbd44bd8e2584d37d79e8313cf615ec" - integrity sha512-xk56Otr6PG/bED2yJuPo0OhwcgS4FQQXySgPD9e7mlZQcjxZ4LvmRU/btoNoxSHKYUBLKRfEOYOqRTxJhrH0eA== +"@abp/jquery-validation-unobtrusive@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.0.tgz#05bcd303ec1e22b85389d03a8941eb898bac354f" + integrity sha512-mtvUcoTD5XSurMFI5cybgWzFI9bn35vU1PvH5NJxJitjJ7sg9gjtLf9WOIddIy4FdqmprhbG2YnR32GITOwFhg== dependencies: - "@abp/jquery-validation" "~4.2.0-rc.2" + "@abp/jquery-validation" "~4.2.0" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0-rc.2.tgz#594b9132d1eafebed60be10d219bc9e8b15f18b6" - integrity sha512-LkNI3X7gpYYkI3DnCTZ1KIV6ykKMqw6pLZhFvTZz7GliZWE1jHtFos4U6lWe2XnMjnFeVeY6rPFM/1LaamfCKg== +"@abp/jquery-validation@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.2.0.tgz#a09d7cf2abf8ccf0c59f27eadacb030fb2067bbe" + integrity sha512-/nvJrs1pt3LJX+SgH3FtDPfCDrcl4M0LDxjV7hf0Y1jtyhvWOQiyJMb8FKzMweTTEOd0pHG/GvOKd90STabSiw== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" jquery-validation "^1.19.2" -"@abp/jquery@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0-rc.2.tgz#146589cbf4397be727d38798d557f3879ae51057" - integrity sha512-yTYk5rRG3qnRKnA/pSXZNH/+KJcJ2Wo5BUtt3G8oKAe+no0Au1BoCV9j7JNiSnLXkFVWFuRwEZCh+cp6ngACng== +"@abp/jquery@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.2.0.tgz#0a24488198ca6c9b84273fa028b853ee9f94f3a7" + integrity sha512-6a42Iy7knhgzvQUvCHenrVnPDKhsOyqgZkPxs9pa9x/wNapSch+jLM7u1ezKAFj/Ai4w9yG/yqP+4YE8seZDZw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" jquery "~3.5.1" -"@abp/lodash@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0-rc.2.tgz#f0a238991c288f439e2751938a39d434dd7883e7" - integrity sha512-En9gZD8TDY8ZvZqHVsv3cP2EsRdPRsGD0ncUYOvlNG/sc+MZpRmZ+xOLws1wXS83IxGAxzPdCFEu0biJlyOyxg== +"@abp/lodash@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.2.0.tgz#74dfac7d70f1563df2b78c5ebd0b2450e11c4c42" + integrity sha512-5hpjxWZJPvjMIY7FCCw/v/B+JzJbB/yuoioRzcU4vrisY9uRq54vVYcX7hH1DldsJFPTuXY3Id1WBflHA5I9Aw== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" lodash "^4.17.15" -"@abp/luxon@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0-rc.2.tgz#ace30caacf6abcce1559b65046ea55e47e1cb8a2" - integrity sha512-ivhOadlaeBh6Pi3S5Bo0pb4EPCEjMFL5N5tZXGGieZt7EnF+4uiXbKJVErXNCDtX1jhJT/3HGqmdxa+WynUE0A== +"@abp/luxon@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.2.0.tgz#9cd02faa02cda1315f3e23ae204991ef47d6ae7c" + integrity sha512-dwtv2kqWCDyQADA1Os0aIy6Au2PhBtN6q9kukLWCvYmQZI23OKuEBMSngbJVTqEPfz0LV6CWbsWCUC3okAs46A== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0-rc.2.tgz#483668c09e13b0ebcea16320a16f8517fcdd53ee" - integrity sha512-IYOwJcWyJkn/gdp4VkEYCv2Gi5+Boxe7pE7hA49gxgllHiFV0ABDFrRg4h8MbyJd80iwvVPo8t8ouvn4Snm+gQ== +"@abp/malihu-custom-scrollbar-plugin@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.0.tgz#2f8538df5567a2cf227998e4e2fb9a44b6e814eb" + integrity sha512-3D5REdR7yw2sRRfm3Oi+qlhDABLrKvfU/l7JcCJy+vrBvadx3e3pTdTLXsGptypPN3x/Qr400LgwIrrgyefN8g== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0-rc.2.tgz#d11e808dac90e09e14025b6ba6dabed683a9b1fb" - integrity sha512-fENomkoAML+NQWvZ/ecjvqnXtvrzJKyChwj9Ul12c+Noi6boeuFDbhi/OG6qCrSzDnNBrehHVXBLFxT9sIL0OA== +"@abp/select2@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.2.0.tgz#eb05d22b1390c037911ba25e5ca0f2ed508a93b1" + integrity sha512-VlNoa9+F1/kGmaEI2wbL/cRNeAEpp0UdLpbadAnsmpUIODxCULCWS556Q4Y6Ff4CzYtzkYz2qaJ8T8pn+3EOcA== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" select2 "^4.0.13" -"@abp/sweetalert@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0-rc.2.tgz#2359eeb9e4b34c4cbb3aaed11136ea3d280bd677" - integrity sha512-oQPj2vKPNAOvBECgJFdDwvJ8nwQ54ZPsAW1XS3XSkFz3YwWn4Xt9eZK6vecHloYckSckrFtsN/DSQI8ao/uIFg== +"@abp/sweetalert@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.2.0.tgz#b1daf641f27f0c8c2e246d364d6285c133faf773" + integrity sha512-AarV/L031xNB1gk/OYEUxkKZmls7zTwovS2t3ZrmwXXoav7nBCSPjEf1ByR2yhZRU/Yo1SNY/CNQQ4dgyf7Xng== dependencies: - "@abp/core" "~4.2.0-rc.2" + "@abp/core" "~4.2.0" sweetalert "^2.1.2" -"@abp/timeago@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0-rc.2.tgz#d243acff635978068ec579c83a34d0680616c5ef" - integrity sha512-TF1dt9ro3BQnfVetDzbOkedSIncSwvPfnHKMY1xcLG2h0c6ke2PjDQ+4QJrtigggT4vfgmQtRrs/zJxjzWS7qw== +"@abp/timeago@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.2.0.tgz#9b15c496b7e63df93921d41de9e9eaf35a8dccbe" + integrity sha512-hyuLVGluHxtWEhR0VakPx5UCbyPcfq4lECEgHhI62PvH0xcSNNZ3bp1QnBTd3se/HAYvwA5sCwJY0YXQgUF2UQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" timeago "^1.6.7" -"@abp/toastr@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0-rc.2.tgz#4e76f4b7068f92b267b725ad597b8315e6b615bc" - integrity sha512-UJVuQWc7py54JC35RrH+MwAZsOoOhejxX+3aonz8Io2rgFFj0YwK5U+vItRNM3iabSqTcIExcSD3XL2TmQyVzg== +"@abp/toastr@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.2.0.tgz#400e2f28b19c72b131ca32aa188ff5151d035752" + integrity sha512-tuGZd3kXqj1t/Y1xN8sOUH1KxiArYKD7xkhuajoOS65Ex5ad8mHPuzCtu8Pv+KL8TVFys9x3U3Tg24DQ6ASjhQ== dependencies: - "@abp/jquery" "~4.2.0-rc.2" + "@abp/jquery" "~4.2.0" toastr "^2.1.4" -"@abp/utils@^4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.2.tgz#43c27d421da8e58a5d74c0a2df8742efa827c842" - integrity sha512-6gSLTP9s88aFjxm+fU2iZMzv5Eoe5/va2PHTAoQJA4BaP/SpFRGts3cT4HYWPfAbmzZVZ+tvjuYd3P6d3FCAhw== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" From 3f8bf4a2be9cc0aeccfe7605233948de72d78ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 14:19:00 +0300 Subject: [PATCH 213/309] Non Multi-Tenant entities should always use the host connection string. --- .../Volo/Abp/Domain/Entities/EntityHelper.cs | 13 +++++++-- .../EntityFrameworkCore/EfCoreRepository.cs | 29 +++++++++++++++++-- .../Repositories/MongoDB/MongoDbRepository.cs | 26 ++++++++++++++++- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs index 5e81e2270d..2f8dd28afc 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs @@ -1,7 +1,5 @@ using System; -using System.Collections.Concurrent; using System.Collections.Generic; -using System.Linq; using System.Linq.Expressions; using System.Reflection; using JetBrains.Annotations; @@ -15,6 +13,17 @@ namespace Volo.Abp.Domain.Entities /// public static class EntityHelper { + public static bool IsMultiTenant() + where TEntity : IEntity + { + return IsMultiTenant(typeof(TEntity)); + } + + public static bool IsMultiTenant(Type type) + { + return typeof(IMultiTenant).IsAssignableFrom(type); + } + public static bool EntityEquals(IEntity entity1, IEntity entity2) { if (entity1 == null || entity2 == null) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs index 4ba5457677..055c9c2de9 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs @@ -13,6 +13,7 @@ using Volo.Abp.Domain.Entities; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.DependencyInjection; using Volo.Abp.Guids; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore { @@ -21,18 +22,42 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore where TEntity : class, IEntity { [Obsolete("Use GetDbContextAsync() method.")] - protected virtual TDbContext DbContext => _dbContextProvider.GetDbContext(); + protected virtual TDbContext DbContext => GetDbContext(); [Obsolete("Use GetDbContextAsync() method.")] - DbContext IEfCoreRepository.DbContext => DbContext.As(); + DbContext IEfCoreRepository.DbContext => GetDbContext() as DbContext; async Task IEfCoreRepository.GetDbContextAsync() { return await GetDbContextAsync() as DbContext; } + [Obsolete("Use GetDbContextAsync() method.")] + private TDbContext GetDbContext() + { + // Multi-tenancy unaware entities should always use the host connection string + if (!EntityHelper.IsMultiTenant()) + { + using (CurrentTenant.Change(null)) + { + return _dbContextProvider.GetDbContext(); + } + } + + return _dbContextProvider.GetDbContext(); + } + protected virtual Task GetDbContextAsync() { + // Multi-tenancy unaware entities should always use the host connection string + if (!EntityHelper.IsMultiTenant()) + { + using (CurrentTenant.Change(null)) + { + return _dbContextProvider.GetDbContextAsync(); + } + } + return _dbContextProvider.GetDbContextAsync(); } diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index b252c48999..c816abb86c 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -51,10 +51,34 @@ namespace Volo.Abp.Domain.Repositories.MongoDB } [Obsolete("Use GetDbContextAsync method.")] - protected virtual TMongoDbContext DbContext => DbContextProvider.GetDbContext(); + protected virtual TMongoDbContext DbContext => GetDbContext(); + + [Obsolete("Use GetDbContextAsync method.")] + private TMongoDbContext GetDbContext() + { + // Multi-tenancy unaware entities should always use the host connection string + if (!EntityHelper.IsMultiTenant()) + { + using (CurrentTenant.Change(null)) + { + return DbContextProvider.GetDbContext(); + } + } + + return DbContextProvider.GetDbContext(); + } protected Task GetDbContextAsync(CancellationToken cancellationToken = default) { + // Multi-tenancy unaware entities should always use the host connection string + if (!EntityHelper.IsMultiTenant()) + { + using (CurrentTenant.Change(null)) + { + return DbContextProvider.GetDbContextAsync(GetCancellationToken(cancellationToken)); + } + } + return DbContextProvider.GetDbContextAsync(GetCancellationToken(cancellationToken)); } From 68427bc2ebb2d055269436d1f4e0296bd853d7b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 14:26:04 +0300 Subject: [PATCH 214/309] IBackgroundJobsDbContext should ignore multi-tenancy. --- .../EntityFrameworkCore/BackgroundJobsDbContext.cs | 6 ++++-- .../EntityFrameworkCore/IBackgroundJobsDbContext.cs | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContext.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContext.cs index d879803677..e49fa3fe55 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContext.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContext.cs @@ -1,15 +1,17 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.BackgroundJobs.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(BackgroundJobsDbProperties.ConnectionStringName)] public class BackgroundJobsDbContext : AbpDbContext, IBackgroundJobsDbContext { public DbSet BackgroundJobs { get; set; } - public BackgroundJobsDbContext(DbContextOptions options) + public BackgroundJobsDbContext(DbContextOptions options) : base(options) { @@ -22,4 +24,4 @@ namespace Volo.Abp.BackgroundJobs.EntityFrameworkCore builder.ConfigureBackgroundJobs(); } } -} \ No newline at end of file +} diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/IBackgroundJobsDbContext.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/IBackgroundJobsDbContext.cs index cc70b6543a..46701b863e 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/IBackgroundJobsDbContext.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/IBackgroundJobsDbContext.cs @@ -1,12 +1,14 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.BackgroundJobs.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(BackgroundJobsDbProperties.ConnectionStringName)] public interface IBackgroundJobsDbContext : IEfCoreDbContext { DbSet BackgroundJobs { get; } } -} \ No newline at end of file +} From aa4d30c7b2b7dd5797de56a6389ed7f888e9acfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 14:28:21 +0300 Subject: [PATCH 215/309] IgnoreMultiTenancy for BackgroundJobsMongoDbContext --- .../BackgroundJobs/MongoDB/BackgroundJobsMongoDbContext.cs | 4 +++- .../BackgroundJobs/MongoDB/IBackgroundJobsMongoDbContext.cs | 2 ++ .../Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobsMongoDbContext.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobsMongoDbContext.cs index 745903cae7..13a058bc33 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobsMongoDbContext.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/BackgroundJobsMongoDbContext.cs @@ -1,9 +1,11 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.BackgroundJobs.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(BackgroundJobsDbProperties.ConnectionStringName)] public class BackgroundJobsMongoDbContext : AbpMongoDbContext, IBackgroundJobsMongoDbContext { @@ -16,4 +18,4 @@ namespace Volo.Abp.BackgroundJobs.MongoDB modelBuilder.ConfigureBackgroundJobs(); } } -} \ No newline at end of file +} diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/IBackgroundJobsMongoDbContext.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/IBackgroundJobsMongoDbContext.cs index 8e2d11869d..254d22d63c 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/IBackgroundJobsMongoDbContext.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/IBackgroundJobsMongoDbContext.cs @@ -1,9 +1,11 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.BackgroundJobs.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(BackgroundJobsDbProperties.ConnectionStringName)] public interface IBackgroundJobsMongoDbContext : IAbpMongoDbContext { diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs index 4342d9092c..df912b84e5 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs @@ -5,17 +5,17 @@ using Volo.Abp.MultiTenancy; namespace Volo.Abp.BlobStoring.Database { - public class DatabaseBlobContainer : AggregateRoot, IMultiTenant //TODO: Rename to BlobContainer + public class DatabaseBlobContainer : AggregateRoot, IMultiTenant { public virtual Guid? TenantId { get; protected set; } public virtual string Name { get; protected set; } - public DatabaseBlobContainer(Guid id, [NotNull] string name, Guid? tenantId = null) + public DatabaseBlobContainer(Guid id, [NotNull] string name, Guid? tenantId = null) : base(id) { Name = Check.NotNullOrWhiteSpace(name, nameof(name), DatabaseContainerConsts.MaxNameLength); TenantId = tenantId; } } -} \ No newline at end of file +} From 281b98d3e93d3cca6fdc5a4215de568d88b8e2fe Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Thu, 28 Jan 2021 14:37:43 +0300 Subject: [PATCH 216/309] Update packages of the abp versions --- templates/app/angular/package.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 0975963c21..79a05e5ec4 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,13 +12,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.2.0-rc.2", - "@abp/ng.core": "~4.2.0-rc.2", - "@abp/ng.identity": "~4.2.0-rc.2", - "@abp/ng.setting-management": "~4.2.0-rc.2", - "@abp/ng.tenant-management": "~4.2.0-rc.2", - "@abp/ng.theme.basic": "~4.2.0-rc.2", - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.components": "~4.2.0", + "@abp/ng.core": "~4.2.0", + "@abp/ng.identity": "~4.2.0", + "@abp/ng.setting-management": "~4.2.0", + "@abp/ng.tenant-management": "~4.2.0", + "@abp/ng.theme.basic": "~4.2.0", + "@abp/ng.theme.shared": "~4.2.0", "@angular/animations": "~11.1.0", "@angular/common": "~11.1.0", "@angular/compiler": "~11.1.0", @@ -32,7 +32,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.2.0-rc.2", + "@abp/ng.schematics": "~4.2.0", "@angular-devkit/build-angular": "~0.1101.0", "@angular/cli": "~11.1.0", "@angular/compiler-cli": "~11.1.0", @@ -54,4 +54,4 @@ "tslint": "~6.1.0", "typescript": "~4.1.3" } -} \ No newline at end of file +} From 0250a71a1da0c4643c821e43845d3585a5a82a14 Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Thu, 28 Jan 2021 14:39:50 +0300 Subject: [PATCH 217/309] Update package.json --- templates/module/angular/package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 4be629e899..11df91b1f0 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,13 +15,13 @@ }, "private": true, "dependencies": { - "@abp/ng.components": "~4.2.0-rc.2", - "@abp/ng.core": "~4.2.0-rc.2", - "@abp/ng.identity": "~4.2.0-rc.2", - "@abp/ng.setting-management": "~4.2.0-rc.2", - "@abp/ng.tenant-management": "~4.2.0-rc.2", - "@abp/ng.theme.basic": "~4.2.0-rc.2", - "@abp/ng.theme.shared": "~4.2.0-rc.2", + "@abp/ng.components": "~4.2.0", + "@abp/ng.core": "~4.2.0", + "@abp/ng.identity": "~4.2.0", + "@abp/ng.setting-management": "~4.2.0", + "@abp/ng.tenant-management": "~4.2.0", + "@abp/ng.theme.basic": "~4.2.0", + "@abp/ng.theme.shared": "~4.2.0", "@angular/animations": "~11.1.0", "@angular/common": "~11.1.0", "@angular/compiler": "~11.1.0", @@ -35,7 +35,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~4.2.0-rc.2", + "@abp/ng.schematics": "~4.2.0", "@angular-devkit/build-angular": "~0.1101.1", "@angular/cli": "~11.1.1", "@angular/compiler-cli": "~11.1.0", From 50945ae0cc5e7d1f8ae3dbdb55264f49fb8462d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 14:45:05 +0300 Subject: [PATCH 218/309] IgnoreMultiTenancy for the blogging and docs module databases. --- .../Volo/Blogging/EntityFrameworkCore/BloggingDbContext.cs | 6 ++++-- .../Volo/Blogging/EntityFrameworkCore/IBloggingDbContext.cs | 4 +++- .../Volo/Blogging/MongoDB/BloggingMongoDbContext.cs | 2 ++ .../Volo/Blogging/MongoDB/IBloggingMongoDbContext.cs | 4 +++- .../docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs | 1 - .../Volo/Docs/EntityFrameworkCore/DocsDbContext.cs | 4 +++- .../Volo/Docs/EntityFrameworkCore/IDocsDbContext.cs | 4 +++- .../Volo/Docs/MongoDB/DocsMongoDbContext.cs | 2 ++ .../Volo/Docs/MongoDB/IDocsMongoDbContext.cs | 4 +++- 9 files changed, 23 insertions(+), 8 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContext.cs b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContext.cs index 4ab71a0222..85c34aa996 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContext.cs +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContext.cs @@ -1,6 +1,7 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; using Volo.Blogging.Blogs; using Volo.Blogging.Comments; using Volo.Blogging.Posts; @@ -9,6 +10,7 @@ using Volo.Blogging.Users; namespace Volo.Blogging.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(BloggingDbProperties.ConnectionStringName)] public class BloggingDbContext : AbpDbContext, IBloggingDbContext { @@ -23,7 +25,7 @@ namespace Volo.Blogging.EntityFrameworkCore public DbSet PostTags { get; set; } public DbSet Comments { get; set; } - + public BloggingDbContext(DbContextOptions options) : base(options) { @@ -37,4 +39,4 @@ namespace Volo.Blogging.EntityFrameworkCore builder.ConfigureBlogging(); } } -} \ No newline at end of file +} diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/IBloggingDbContext.cs b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/IBloggingDbContext.cs index dcdb6c78e1..ecb7c282d4 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/IBloggingDbContext.cs +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/IBloggingDbContext.cs @@ -1,6 +1,7 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; using Volo.Blogging.Blogs; using Volo.Blogging.Comments; using Volo.Blogging.Posts; @@ -9,6 +10,7 @@ using Volo.Blogging.Users; namespace Volo.Blogging.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(BloggingDbProperties.ConnectionStringName)] public interface IBloggingDbContext : IEfCoreDbContext { @@ -24,4 +26,4 @@ namespace Volo.Blogging.EntityFrameworkCore DbSet Tags { get; set; } } -} \ No newline at end of file +} diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/BloggingMongoDbContext.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/BloggingMongoDbContext.cs index fa265b3e67..1f20ff1744 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/BloggingMongoDbContext.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/BloggingMongoDbContext.cs @@ -1,6 +1,7 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; using Volo.Blogging.Blogs; using Volo.Blogging.Comments; using Volo.Blogging.Posts; @@ -8,6 +9,7 @@ using Volo.Blogging.Users; namespace Volo.Blogging.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(BloggingDbProperties.ConnectionStringName)] public class BloggingMongoDbContext : AbpMongoDbContext, IBloggingMongoDbContext { diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/IBloggingMongoDbContext.cs b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/IBloggingMongoDbContext.cs index 8366e87d74..1dbf5eee92 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/IBloggingMongoDbContext.cs +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/MongoDB/IBloggingMongoDbContext.cs @@ -1,6 +1,7 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; using Volo.Blogging.Blogs; using Volo.Blogging.Comments; using Volo.Blogging.Posts; @@ -8,6 +9,7 @@ using Volo.Blogging.Users; namespace Volo.Blogging.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(BloggingDbProperties.ConnectionStringName)] public interface IBloggingMongoDbContext : IAbpMongoDbContext { @@ -22,4 +24,4 @@ namespace Volo.Blogging.MongoDB IMongoCollection Comments { get; } } -} \ No newline at end of file +} diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs index 720cf494d6..48eb93d19e 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using JetBrains.Annotations; using Volo.Abp; using Volo.Abp.Domain.Entities; diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContext.cs b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContext.cs index 7c1c635617..911db81a15 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContext.cs +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContext.cs @@ -1,11 +1,13 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; using Volo.Docs.Documents; using Volo.Docs.Projects; namespace Volo.Docs.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(DocsDbProperties.ConnectionStringName)] public class DocsDbContext: AbpDbContext, IDocsDbContext { @@ -15,7 +17,7 @@ namespace Volo.Docs.EntityFrameworkCore public DbSet DocumentContributors { get; set; } - public DocsDbContext(DbContextOptions options) + public DocsDbContext(DbContextOptions options) : base(options) { diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/IDocsDbContext.cs b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/IDocsDbContext.cs index 6e96604592..8edd1b74a0 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/IDocsDbContext.cs +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/IDocsDbContext.cs @@ -1,11 +1,13 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; using Volo.Docs.Documents; using Volo.Docs.Projects; namespace Volo.Docs.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(DocsDbProperties.ConnectionStringName)] public interface IDocsDbContext : IEfCoreDbContext { @@ -15,4 +17,4 @@ namespace Volo.Docs.EntityFrameworkCore DbSet DocumentContributors { get; set; } } -} \ No newline at end of file +} diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/DocsMongoDbContext.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/DocsMongoDbContext.cs index afc430c945..3bfb5df491 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/DocsMongoDbContext.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/DocsMongoDbContext.cs @@ -2,10 +2,12 @@ using Volo.Abp.Data; using Volo.Docs.Projects; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; using Volo.Docs.Documents; namespace Volo.Docs.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(DocsDbProperties.ConnectionStringName)] public class DocsMongoDbContext : AbpMongoDbContext, IDocsMongoDbContext { diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/IDocsMongoDbContext.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/IDocsMongoDbContext.cs index 92c86a7c4f..f6b748611c 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/IDocsMongoDbContext.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/MongoDB/IDocsMongoDbContext.cs @@ -1,11 +1,13 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; using Volo.Docs.Documents; using Volo.Docs.Projects; namespace Volo.Docs.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(DocsDbProperties.ConnectionStringName)] public interface IDocsMongoDbContext : IAbpMongoDbContext { @@ -13,4 +15,4 @@ namespace Volo.Docs.MongoDB IMongoCollection Documents { get; } } -} \ No newline at end of file +} From a003bf15336a9a87d4ff22ff9ba6362c6c9d3a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 16:01:38 +0300 Subject: [PATCH 219/309] IgnoreMultiTenancy for feature and setting module databases. --- .../EntityFrameworkCore/FeatureManagementDbContext.cs | 6 ++++-- .../EntityFrameworkCore/IFeatureManagementDbContext.cs | 4 +++- .../MongoDB/FeatureManagementMongoDbContext.cs | 4 +++- .../MongoDB/IFeatureManagementMongoDbContext.cs | 2 ++ .../EntityFrameworkCore/ISettingManagementDbContext.cs | 4 +++- .../EntityFrameworkCore/SettingManagementDbContext.cs | 2 ++ .../MongoDB/ISettingManagementMongoDbContext.cs | 4 +++- .../MongoDB/SettingManagementMongoDbContext.cs | 4 +++- 8 files changed, 23 insertions(+), 7 deletions(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContext.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContext.cs index af027dc9ba..9c47fcc28c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContext.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContext.cs @@ -1,15 +1,17 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.FeatureManagement.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(FeatureManagementDbProperties.ConnectionStringName)] public class FeatureManagementDbContext : AbpDbContext, IFeatureManagementDbContext { public DbSet FeatureValues { get; set; } - public FeatureManagementDbContext(DbContextOptions options) + public FeatureManagementDbContext(DbContextOptions options) : base(options) { @@ -22,4 +24,4 @@ namespace Volo.Abp.FeatureManagement.EntityFrameworkCore builder.ConfigureFeatureManagement(); } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/IFeatureManagementDbContext.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/IFeatureManagementDbContext.cs index 14abbccc5c..5f1f3f19b2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/IFeatureManagementDbContext.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/IFeatureManagementDbContext.cs @@ -1,12 +1,14 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.FeatureManagement.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(FeatureManagementDbProperties.ConnectionStringName)] public interface IFeatureManagementDbContext : IEfCoreDbContext { DbSet FeatureValues { get; set; } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementMongoDbContext.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementMongoDbContext.cs index e563130d4f..ba87fbabfb 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementMongoDbContext.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/FeatureManagementMongoDbContext.cs @@ -1,9 +1,11 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.FeatureManagement.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(FeatureManagementDbProperties.ConnectionStringName)] public class FeatureManagementMongoDbContext : AbpMongoDbContext, IFeatureManagementMongoDbContext { @@ -16,4 +18,4 @@ namespace Volo.Abp.FeatureManagement.MongoDB modelBuilder.ConfigureFeatureManagement(); } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/IFeatureManagementMongoDbContext.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/IFeatureManagementMongoDbContext.cs index 290dfbe950..d826571ba6 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/IFeatureManagementMongoDbContext.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/IFeatureManagementMongoDbContext.cs @@ -1,9 +1,11 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.FeatureManagement.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(FeatureManagementDbProperties.ConnectionStringName)] public interface IFeatureManagementMongoDbContext : IAbpMongoDbContext { diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs index fea486a163..eca448f732 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs @@ -1,12 +1,14 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.SettingManagement.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] public interface ISettingManagementDbContext : IEfCoreDbContext { DbSet Settings { get; set; } } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs index e85bcd21cc..23a9773912 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs @@ -1,9 +1,11 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.SettingManagement.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] public class SettingManagementDbContext : AbpDbContext, ISettingManagementDbContext { diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs index 357ab0bfe3..609e940b63 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs @@ -1,12 +1,14 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.SettingManagement.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] public interface ISettingManagementMongoDbContext : IAbpMongoDbContext { IMongoCollection Settings { get; } } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs index ada3a8100f..003e1a4b46 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs @@ -1,9 +1,11 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.SettingManagement.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] public class SettingManagementMongoDbContext : AbpMongoDbContext, ISettingManagementMongoDbContext { @@ -16,4 +18,4 @@ namespace Volo.Abp.SettingManagement.MongoDB modelBuilder.ConfigureSettingManagement(); } } -} \ No newline at end of file +} From f4edd897adbabb9d210d70da13d945cb5a0cdd95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 16:05:36 +0300 Subject: [PATCH 220/309] IgnoreMultiTenancy for ITenantManagementDbContext --- .../EntityFrameworkCore/ITenantManagementDbContext.cs | 4 +++- .../EntityFrameworkCore/TenantManagementDbContext.cs | 2 ++ .../MongoDb/ITenantManagementMongoDbContext.cs | 4 +++- .../MongoDb/TenantManagementMongoDbContext.cs | 4 +++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/ITenantManagementDbContext.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/ITenantManagementDbContext.cs index 20eb5128da..0000e2827c 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/ITenantManagementDbContext.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/ITenantManagementDbContext.cs @@ -1,9 +1,11 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.TenantManagement.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(AbpTenantManagementDbProperties.ConnectionStringName)] public interface ITenantManagementDbContext : IEfCoreDbContext { @@ -11,4 +13,4 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore DbSet TenantConnectionStrings { get; set; } } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/TenantManagementDbContext.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/TenantManagementDbContext.cs index f75dbd0562..8a359dcde8 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/TenantManagementDbContext.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/TenantManagementDbContext.cs @@ -1,9 +1,11 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.TenantManagement.EntityFrameworkCore { + [IgnoreMultiTenancy] [ConnectionStringName(AbpTenantManagementDbProperties.ConnectionStringName)] public class TenantManagementDbContext : AbpDbContext, ITenantManagementDbContext { diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/ITenantManagementMongoDbContext.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/ITenantManagementMongoDbContext.cs index d3c3fcbb62..211aabf1d4 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/ITenantManagementMongoDbContext.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/ITenantManagementMongoDbContext.cs @@ -1,12 +1,14 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.TenantManagement.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(AbpTenantManagementDbProperties.ConnectionStringName)] public interface ITenantManagementMongoDbContext : IAbpMongoDbContext { IMongoCollection Tenants { get; } } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/TenantManagementMongoDbContext.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/TenantManagementMongoDbContext.cs index 56327952d0..f35cdec78a 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/TenantManagementMongoDbContext.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/TenantManagementMongoDbContext.cs @@ -1,9 +1,11 @@ using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.TenantManagement.MongoDB { + [IgnoreMultiTenancy] [ConnectionStringName(AbpTenantManagementDbProperties.ConnectionStringName)] public class TenantManagementMongoDbContext : AbpMongoDbContext, ITenantManagementMongoDbContext { @@ -16,4 +18,4 @@ namespace Volo.Abp.TenantManagement.MongoDB modelBuilder.ConfigureTenantManagement(); } } -} \ No newline at end of file +} From 81786a87348f4b9273030bd8b56594188ed19845 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Thu, 28 Jan 2021 19:49:03 +0300 Subject: [PATCH 221/309] fix shell command for Alpine Linux Distribution. closes volosoft/volo#5153 --- .../Volo/Abp/Cli/Utils/CmdHelper.cs | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs index 819022e672..07b470225a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs @@ -1,4 +1,5 @@ using System.Diagnostics; +using System.IO; using System.Runtime.InteropServices; namespace Volo.Abp.Cli.Utils @@ -103,14 +104,28 @@ namespace Volo.Abp.Cli.Utils public static string GetFileName() { - if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + //Windows + return "cmd.exe"; + } + + //Linux or OSX + if (File.Exists("/bin/bash")) { - //TODO: Test this. it should work for both operation systems. return "/bin/bash"; } - //Windows default. - return "cmd.exe"; + if (File.Exists("/bin/sh")) + { + return "/bin/sh"; //some Linux distributions like Alpine doesn't have bash + } + + throw new AbpException($"Cannot determine shell command for this OS! " + + $"Running on OS: {System.Runtime.InteropServices.RuntimeInformation.OSDescription} | " + + $"OS Architecture: {System.Runtime.InteropServices.RuntimeInformation.OSArchitecture} | " + + $"Framework: {System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription} | " + + $"Process Architecture{System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture}"); } } } From 378a272617ed3e1fb5ba67927fa5183912ba67ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 28 Jan 2021 22:17:48 +0300 Subject: [PATCH 222/309] Resolved #7508: Use the default language setting if user hasn't selected a language. --- .../MultiTenancy/MultiTenancyMiddleware.cs | 64 ++++++++++++++++++- ...hedApplicationConfigurationClientHelper.cs | 3 +- .../Localization/AbpLanguagesController.cs | 14 ++-- .../AbpRequestCultureCookieHelper.cs | 23 +++++++ .../DynamicProxying/ApiDescriptionFinder.cs | 59 +++++++++++++++-- .../DynamicHttpProxyInterceptor.cs | 20 ++++-- 6 files changed, 163 insertions(+), 20 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestCultureCookieHelper.cs diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs index 0aeb97e89d..ba84b32eb1 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs @@ -1,7 +1,15 @@ -using System.Threading.Tasks; +using System; +using System.Globalization; +using System.Threading.Tasks; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Localization; +using Microsoft.AspNetCore.RequestLocalization; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; +using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; +using Volo.Abp.Settings; namespace Volo.Abp.AspNetCore.MultiTenancy { @@ -23,8 +31,62 @@ namespace Volo.Abp.AspNetCore.MultiTenancy var tenant = await _tenantConfigurationProvider.GetAsync(saveResolveResult: true); using (_currentTenant.Change(tenant?.Id, tenant?.Name)) { + var requestCulture = await TryGetRequestCultureAsync(context); + if (requestCulture != null) + { + CultureInfo.CurrentCulture = requestCulture.Culture; + CultureInfo.CurrentUICulture = requestCulture.UICulture; + AbpRequestCultureCookieHelper.SetCultureCookie( + context, + requestCulture + ); + } + await next(context); } } + + private async Task TryGetRequestCultureAsync(HttpContext httpContext) + { + var requestCultureFeature = httpContext.Features.Get(); + + /* If requestCultureFeature == null, that means the RequestLocalizationMiddleware was not used + * and we don't want to set the culture. */ + if (requestCultureFeature == null) + { + return null; + } + + /* If requestCultureFeature.Provider is not null, that means RequestLocalizationMiddleware + * already picked a language, so we don't need to set the default. */ + if (requestCultureFeature.Provider != null) + { + return null; + } + + var settingProvider = httpContext.RequestServices.GetRequiredService(); + var defaultLanguage = await settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage); + if (defaultLanguage.IsNullOrWhiteSpace()) + { + return null; + } + + string culture; + string uiCulture; + + if (defaultLanguage.Contains(';')) + { + var splitted = defaultLanguage.Split(';'); + culture = splitted[0]; + uiCulture = splitted[1]; + } + else + { + culture = defaultLanguage; + uiCulture = defaultLanguage; + } + + return new RequestCulture(CultureInfo.GetCultureInfo(culture), CultureInfo.GetCultureInfo(uiCulture)); + } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClientHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClientHelper.cs index 4b4a0e6301..ae013c4343 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClientHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClientHelper.cs @@ -7,7 +7,8 @@ namespace Volo.Abp.AspNetCore.Mvc.Client { public static string CreateCacheKey(ICurrentUser currentUser) { - return $"ApplicationConfiguration_{currentUser.Id?.ToString("N") ?? "Anonymous"}_{CultureInfo.CurrentUICulture.Name}"; + var userKey = currentUser.Id?.ToString("N") ?? "Anonymous"; + return $"ApplicationConfiguration_{userKey}_{CultureInfo.CurrentUICulture.Name}"; } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs index 06b9c9a620..6b73aa26da 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs @@ -1,7 +1,7 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Localization; +using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.Mvc; using System; +using Microsoft.AspNetCore.RequestLocalization; using Volo.Abp.Localization; namespace Volo.Abp.AspNetCore.Mvc.Localization @@ -20,12 +20,10 @@ namespace Volo.Abp.AspNetCore.Mvc.Localization throw new AbpException("Unknown language: " + culture + ". It must be a valid culture!"); } - string cookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture, uiCulture)); - - Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName, cookieValue, new CookieOptions - { - Expires = Clock.Now.AddYears(2) - }); + AbpRequestCultureCookieHelper.SetCultureCookie( + HttpContext, + new RequestCulture(culture, uiCulture) + ); if (!string.IsNullOrWhiteSpace(returnUrl)) { diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestCultureCookieHelper.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestCultureCookieHelper.cs new file mode 100644 index 0000000000..0f27925496 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestCultureCookieHelper.cs @@ -0,0 +1,23 @@ +using System; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Localization; + +namespace Microsoft.AspNetCore.RequestLocalization +{ + public static class AbpRequestCultureCookieHelper + { + public static void SetCultureCookie( + HttpContext httpContext, + RequestCulture requestCulture) + { + httpContext.Response.Cookies.Append( + CookieRequestCultureProvider.DefaultCookieName, + CookieRequestCultureProvider.MakeCookieValue(requestCulture), + new CookieOptions + { + Expires = DateTime.Now.AddYears(2) + } + ); + } + } +} diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs index 9142118b97..7e90bd4fe7 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs @@ -1,24 +1,38 @@ using System; +using System.Globalization; using System.Linq; using System.Net.Http; +using System.Net.Http.Headers; using System.Reflection; using System.Text.Json; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; using Volo.Abp.Http.Modeling; +using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; +using Volo.Abp.Tracing; namespace Volo.Abp.Http.Client.DynamicProxying { public class ApiDescriptionFinder : IApiDescriptionFinder, ITransientDependency { public ICancellationTokenProvider CancellationTokenProvider { get; set; } - protected IApiDescriptionCache Cache { get; } - - public ApiDescriptionFinder(IApiDescriptionCache cache) + protected AbpCorrelationIdOptions AbpCorrelationIdOptions { get; } + protected ICorrelationIdProvider CorrelationIdProvider { get; } + protected ICurrentTenant CurrentTenant { get; } + + public ApiDescriptionFinder( + IApiDescriptionCache cache, + IOptions abpCorrelationIdOptions, + ICorrelationIdProvider correlationIdProvider, + ICurrentTenant currentTenant) { Cache = cache; + AbpCorrelationIdOptions = abpCorrelationIdOptions.Value; + CorrelationIdProvider = correlationIdProvider; + CurrentTenant = currentTenant; CancellationTokenProvider = NullCancellationTokenProvider.Instance; } @@ -71,10 +85,19 @@ namespace Volo.Abp.Http.Client.DynamicProxying return await Cache.GetAsync(baseUrl, () => GetApiDescriptionFromServerAsync(client, baseUrl)); } - protected virtual async Task GetApiDescriptionFromServerAsync(HttpClient client, string baseUrl) + protected virtual async Task GetApiDescriptionFromServerAsync( + HttpClient client, + string baseUrl) { - var response = await client.GetAsync( - baseUrl.EnsureEndsWith('/') + "api/abp/api-definition", + var requestMessage = new HttpRequestMessage( + HttpMethod.Get, + baseUrl.EnsureEndsWith('/') + "api/abp/api-definition" + ); + + AddHeaders(requestMessage); + + var response = await client.SendAsync( + requestMessage, CancellationTokenProvider.Token ); @@ -93,6 +116,30 @@ namespace Volo.Abp.Http.Client.DynamicProxying return (ApplicationApiDescriptionModel)result; } + protected virtual void AddHeaders(HttpRequestMessage requestMessage) + { + //CorrelationId + requestMessage.Headers.Add(AbpCorrelationIdOptions.HttpHeaderName, CorrelationIdProvider.Get()); + + //TenantId + if (CurrentTenant.Id.HasValue) + { + //TODO: Use AbpAspNetCoreMultiTenancyOptions to get the key + requestMessage.Headers.Add(TenantResolverConsts.DefaultTenantKey, CurrentTenant.Id.Value.ToString()); + } + + //Culture + //TODO: Is that the way we want? Couldn't send the culture (not ui culture) + var currentCulture = CultureInfo.CurrentUICulture.Name ?? CultureInfo.CurrentCulture.Name; + if (!currentCulture.IsNullOrEmpty()) + { + requestMessage.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue(currentCulture)); + } + + //X-Requested-With + requestMessage.Headers.Add("X-Requested-With", "XMLHttpRequest"); + } + protected virtual bool TypeMatches(MethodParameterApiDescriptionModel actionParameter, ParameterInfo methodParameter) { return NormalizeTypeName(actionParameter.TypeAsString) == diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs index 7eb4e5ad78..0f281607cf 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs @@ -136,7 +136,13 @@ namespace Volo.Abp.Http.Client.DynamicProxying var client = HttpClientFactory.Create(clientConfig.RemoteServiceName); - var action = await ApiDescriptionFinder.FindActionAsync(client, remoteServiceConfig.BaseUrl, typeof(TService), invocation.Method); + var action = await ApiDescriptionFinder.FindActionAsync( + client, + remoteServiceConfig.BaseUrl, + typeof(TService), + invocation.Method + ); + var apiVersion = GetApiVersionInfo(action); var url = remoteServiceConfig.BaseUrl.EnsureEndsWith('/') + UrlBuilder.GenerateUrlWithParameters(action, invocation.ArgumentsDictionary, apiVersion); @@ -156,9 +162,11 @@ namespace Volo.Abp.Http.Client.DynamicProxying ) ); - var response = await client.SendAsync(requestMessage, + var response = await client.SendAsync( + requestMessage, HttpCompletionOption.ResponseHeadersRead /*this will buffer only the headers, the content will be used as a stream*/, - GetCancellationToken()); + GetCancellationToken() + ); if (!response.IsSuccessStatusCode) { @@ -196,7 +204,11 @@ namespace Volo.Abp.Http.Client.DynamicProxying return action.SupportedVersions.Last(); //TODO: Ensure to get the latest version! } - protected virtual void AddHeaders(IAbpMethodInvocation invocation, ActionApiDescriptionModel action, HttpRequestMessage requestMessage, ApiVersionInfo apiVersion) + protected virtual void AddHeaders( + IAbpMethodInvocation invocation, + ActionApiDescriptionModel action, + HttpRequestMessage requestMessage, + ApiVersionInfo apiVersion) { //API Version if (!apiVersion.Version.IsNullOrEmpty()) From 0d3472f92fa0280f277b59a046827cdf6106813e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=A6=82=E6=9E=9C?= <344089386@qq.com> Date: Fri, 29 Jan 2021 10:02:58 +0800 Subject: [PATCH 223/309] The document is wrong --- .../Customizing-Application-Modules-Overriding-Services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md index b8abe99cdc..1e9ae77f36 100644 --- a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md @@ -243,7 +243,7 @@ ObjectExtensionManager.Instance 这是定义实体属性的另一种方法( 有关 `ObjectExtensionManager` 更多信息,请参阅[文档](Object-Extensions.md)). 这次我们设置了 `CheckPairDefinitionOnMapping` 为false,在将实体映射到DTO时会跳过定义检查. -如果你不喜欢这种方法,但想简单的向多个对象(DTO)添加单个属, `AddOrUpdateProperty` 可以使用类型数组添加额外的属性: +如果你不喜欢这种方法,但想简单的向多个对象(DTO)添加单个属性, `AddOrUpdateProperty` 可以使用类型数组添加额外的属性: ````csharp ObjectExtensionManager.Instance From 065c1e00ed5219ddfd035670950afa7272f4c1fd Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 29 Jan 2021 11:54:09 +0800 Subject: [PATCH 224/309] Only switch and get default language when the tenants are different. --- .../MultiTenancy/MultiTenancyMiddleware.cs | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs index ba84b32eb1..eaf5c753fd 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs @@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.RequestLocalization; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; @@ -29,19 +28,26 @@ namespace Volo.Abp.AspNetCore.MultiTenancy public async Task InvokeAsync(HttpContext context, RequestDelegate next) { var tenant = await _tenantConfigurationProvider.GetAsync(saveResolveResult: true); - using (_currentTenant.Change(tenant?.Id, tenant?.Name)) + if (tenant?.Id != _currentTenant.Id) { - var requestCulture = await TryGetRequestCultureAsync(context); - if (requestCulture != null) + using (_currentTenant.Change(tenant?.Id, tenant?.Name)) { - CultureInfo.CurrentCulture = requestCulture.Culture; - CultureInfo.CurrentUICulture = requestCulture.UICulture; - AbpRequestCultureCookieHelper.SetCultureCookie( - context, - requestCulture - ); - } + var requestCulture = await TryGetRequestCultureAsync(context); + if (requestCulture != null) + { + CultureInfo.CurrentCulture = requestCulture.Culture; + CultureInfo.CurrentUICulture = requestCulture.UICulture; + AbpRequestCultureCookieHelper.SetCultureCookie( + context, + requestCulture + ); + } + await next(context); + } + } + else + { await next(context); } } @@ -86,7 +92,7 @@ namespace Volo.Abp.AspNetCore.MultiTenancy uiCulture = defaultLanguage; } - return new RequestCulture(CultureInfo.GetCultureInfo(culture), CultureInfo.GetCultureInfo(uiCulture)); + return new RequestCulture(culture, uiCulture); } } } From 193bd8afe05d416e0727a773e5e1ed1235d68e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 29 Jan 2021 09:44:39 +0300 Subject: [PATCH 225/309] Update POST.md --- docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md b/docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md index b5664d8de8..fac8484411 100644 --- a/docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md +++ b/docs/en/Blog-Posts/2021-01-28 v4_2_Release_Stable/POST.md @@ -42,7 +42,7 @@ Run this command in the root folder of your solution. ## Migration Guide -Check [the migration guide](https://docs.abp.io/en/abp/4.2/Migration-Guides/Abp-4_2) for the applications with the version 4.x upgrading to the version 4.2. +Check [the migration guide](https://docs.abp.io/en/abp/latest/Migration-Guides/Abp-4_2) for the applications with the version 4.x upgrading to the version 4.2. > It is strongly recommended to check the migration guide for this version. Especially, the new `IRepository.GetQueryableAsync()` method is a core change should be considered after upgrading the solution. From 33bd4b1fd45bade060b01225ea427c64716be4f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 29 Jan 2021 09:52:28 +0300 Subject: [PATCH 226/309] Temporary remove the API documentation link. --- docs/en/docs-nav.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 3fff6d67c1..c0a4d4d2bc 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -1056,10 +1056,6 @@ { "text": "CLI", "path": "CLI.md" - }, - { - "text": "API Documentation", - "path": "{ApiDocumentationUrl}" } ] }, From a67300cdf3ee6ba5f77f7c0e18992581206db97a Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 29 Jan 2021 10:58:54 +0300 Subject: [PATCH 227/309] Update tr.json --- .../Volo/Abp/TenantManagement/Localization/Resources/tr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json index 7315cccc3f..a2e4ee5257 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json @@ -10,7 +10,7 @@ "ConnectionStrings": "Bağlantı cümlesi", "DisplayName:DefaultConnectionString": "Varsayılan bağlantı cümlesi", "DisplayName:UseSharedDatabase": "Paylaşılan veritabanını kullan", - "ManageHostFeatures": "Toplantı Sahibi özelliklerini yönetin", + "ManageHostFeatures": "Host özelliklerini yönetin", "Permission:TenantManagement": "Müşteri yönetimi", "Permission:Create": "Oluşturma", "Permission:Edit": "Düzenleme", From e6b44e733085529a31cbaa629eb9b6c18ca8310d Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 29 Jan 2021 18:32:25 +0800 Subject: [PATCH 228/309] Add more "Many" methods to the ICacheSupportsMultipleItems --- .../StackExchangeRedis/AbpRedisCache.cs | 38 ++- .../Volo/Abp/Caching/DistributedCache.cs | 281 ++++++++++++++++++ .../Caching/ICacheSupportsMultipleItems.cs | 16 +- .../Volo/Abp/Caching/IDistributedCache.cs | 63 +++- .../Abp/Caching/TestMemoryDistributedCache.cs | 16 + 5 files changed, 403 insertions(+), 11 deletions(-) diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs index c3cb34f30c..dbf04a1d80 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs @@ -45,19 +45,26 @@ namespace Volo.Abp.Caching.StackExchangeRedis MapMetadataMethod = type.GetMethod("MapMetadata", BindingFlags.Instance | BindingFlags.NonPublic); - GetAbsoluteExpirationMethod = type.GetMethod("GetAbsoluteExpiration", BindingFlags.Static | BindingFlags.NonPublic); + GetAbsoluteExpirationMethod = + type.GetMethod("GetAbsoluteExpiration", BindingFlags.Static | BindingFlags.NonPublic); - GetExpirationInSecondsMethod = type.GetMethod("GetExpirationInSeconds", BindingFlags.Static | BindingFlags.NonPublic); + GetExpirationInSecondsMethod = + type.GetMethod("GetExpirationInSeconds", BindingFlags.Static | BindingFlags.NonPublic); - SetScript = type.GetField("SetScript", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null).ToString(); + SetScript = type.GetField("SetScript", BindingFlags.Static | BindingFlags.NonPublic)?.GetValue(null) + .ToString(); - AbsoluteExpirationKey = type.GetField("AbsoluteExpirationKey", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null).ToString(); + AbsoluteExpirationKey = type.GetField("AbsoluteExpirationKey", BindingFlags.Static | BindingFlags.NonPublic) + ?.GetValue(null).ToString(); - SlidingExpirationKey = type.GetField("SlidingExpirationKey", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null).ToString(); + SlidingExpirationKey = type.GetField("SlidingExpirationKey", BindingFlags.Static | BindingFlags.NonPublic) + ?.GetValue(null).ToString(); - DataKey = type.GetField("DataKey", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null).ToString(); + DataKey = type.GetField("DataKey", BindingFlags.Static | BindingFlags.NonPublic)?.GetValue(null).ToString(); - NotPresent = type.GetField("NotPresent", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null).To(); + // ReSharper disable once PossibleNullReferenceException + NotPresent = type.GetField("NotPresent", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null) + .To(); } public AbpRedisCache(IOptions optionsAccessor) @@ -124,6 +131,23 @@ namespace Volo.Abp.Caching.StackExchangeRedis await Task.WhenAll(PipelineSetMany(items, options)); } + public void RefreshMany( + IEnumerable keys) + { + keys = Check.NotNull(keys, nameof(keys)); + + GetAndRefreshMany(keys, false); + } + + public async Task RefreshManyAsync( + IEnumerable keys, + CancellationToken token = default) + { + keys = Check.NotNull(keys, nameof(keys)); + + await GetAndRefreshManyAsync(keys, false, token); + } + protected virtual byte[][] GetAndRefreshMany( IEnumerable keys, bool getData) diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs index d62411628e..2ebe9b2fb4 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs @@ -527,6 +527,198 @@ namespace Volo.Abp.Caching return value; } + public KeyValuePair[] GetOrAddMany( + IEnumerable keys, + Func, IEnumerable>> factory, + Func optionsFactory = null, + bool? hideErrors = null, + bool considerUow = false) + { + + KeyValuePair[] result; + var keyArray = keys.ToArray(); + + var cacheSupportsMultipleItems = Cache as ICacheSupportsMultipleItems; + if (cacheSupportsMultipleItems == null) + { + result = GetManyFallback( + keyArray, + hideErrors, + considerUow + ); + } + else + { + var notCachedKeys = new List(); + var cachedValues = new List>(); + if (ShouldConsiderUow(considerUow)) + { + var uowCache = GetUnitOfWorkCache(); + foreach (var key in keyArray) + { + var value = uowCache.GetOrDefault(key)?.GetUnRemovedValueOrNull(); + if (value != null) + { + cachedValues.Add(new KeyValuePair(key, value)); + } + } + + notCachedKeys = keyArray.Except(cachedValues.Select(x => x.Key)).ToList(); + if (!notCachedKeys.Any()) + { + return cachedValues.ToArray(); + } + } + + hideErrors = hideErrors ?? _distributedCacheOption.HideErrors; + byte[][] cachedBytes; + + var readKeys = notCachedKeys.Any() ? notCachedKeys.ToArray() : keyArray; + try + { + cachedBytes = cacheSupportsMultipleItems.GetMany(readKeys.Select(NormalizeKey)); + } + catch (Exception ex) + { + if (hideErrors == true) + { + HandleException(ex); + return ToCacheItemsWithDefaultValues(keyArray); + } + + throw; + } + + result = cachedValues.Concat(ToCacheItems(cachedBytes, readKeys)).ToArray(); + } + + if (result.All(x => x.Value != null)) + { + return result; + } + + var missingKeys = new List(); + var missingValuesIndex = new List(); + for (var i = 0; i < keyArray.Length; i++) + { + if (result[i].Value != null) + { + continue; + } + + missingKeys.Add(keyArray[i]); + missingValuesIndex.Add(i); + } + + var missingValues = factory.Invoke(missingKeys).ToArray(); + var valueQueue = new Queue>(missingValues); + + SetMany(missingValues, optionsFactory?.Invoke(), hideErrors, considerUow); + + foreach (var index in missingValuesIndex) + { + result[index] = valueQueue.Dequeue(); + } + + return result; + } + + + public async Task[]> GetOrAddManyAsync( + IEnumerable keys, + Func, Task>>> factory, + Func optionsFactory = null, + bool? hideErrors = null, + bool considerUow = false, + CancellationToken token = default) + { + KeyValuePair[] result; + var keyArray = keys.ToArray(); + + var cacheSupportsMultipleItems = Cache as ICacheSupportsMultipleItems; + if (cacheSupportsMultipleItems == null) + { + result = await GetManyFallbackAsync( + keyArray, + hideErrors, + considerUow, token); + } + else + { + var notCachedKeys = new List(); + var cachedValues = new List>(); + if (ShouldConsiderUow(considerUow)) + { + var uowCache = GetUnitOfWorkCache(); + foreach (var key in keyArray) + { + var value = uowCache.GetOrDefault(key)?.GetUnRemovedValueOrNull(); + if (value != null) + { + cachedValues.Add(new KeyValuePair(key, value)); + } + } + + notCachedKeys = keyArray.Except(cachedValues.Select(x => x.Key)).ToList(); + if (!notCachedKeys.Any()) + { + return cachedValues.ToArray(); + } + } + + hideErrors = hideErrors ?? _distributedCacheOption.HideErrors; + byte[][] cachedBytes; + + var readKeys = notCachedKeys.Any() ? notCachedKeys.ToArray() : keyArray; + try + { + cachedBytes = await cacheSupportsMultipleItems.GetManyAsync(readKeys.Select(NormalizeKey), token); + } + catch (Exception ex) + { + if (hideErrors == true) + { + await HandleExceptionAsync(ex); + return ToCacheItemsWithDefaultValues(keyArray); + } + + throw; + } + + result = cachedValues.Concat(ToCacheItems(cachedBytes, readKeys)).ToArray(); + } + + if (result.All(x => x.Value != null)) + { + return result; + } + + var missingKeys = new List(); + var missingValuesIndex = new List(); + for (var i = 0; i < keyArray.Length; i++) + { + if (result[i].Value != null) + { + continue; + } + + missingKeys.Add(keyArray[i]); + missingValuesIndex.Add(i); + } + + var missingValues = (await factory.Invoke(missingKeys)).ToArray(); + var valueQueue = new Queue>(missingValues); + + await SetManyAsync(missingValues, optionsFactory?.Invoke(), hideErrors, considerUow, token); + + foreach (var index in missingValuesIndex) + { + result[index] = valueQueue.Dequeue(); + } + + return result; + } + /// /// Sets the cache item value for the provided key. /// @@ -924,6 +1116,71 @@ namespace Volo.Abp.Caching } } + public virtual void RefreshMany( + IEnumerable keys, + bool? hideErrors = null) + { + hideErrors = hideErrors ?? _distributedCacheOption.HideErrors; + + try + { + if (Cache is ICacheSupportsMultipleItems cacheSupportsMultipleItems) + { + cacheSupportsMultipleItems.RefreshMany(keys.Select(NormalizeKey)); + } + else + { + foreach (var key in keys) + { + Cache.Refresh(NormalizeKey(key)); + } + } + } + catch (Exception ex) + { + if (hideErrors == true) + { + HandleException(ex); + return; + } + + throw; + } + } + + public virtual async Task RefreshManyAsync( + IEnumerable keys, + bool? hideErrors = null, + CancellationToken token = default) + { + hideErrors = hideErrors ?? _distributedCacheOption.HideErrors; + + try + { + if (Cache is ICacheSupportsMultipleItems cacheSupportsMultipleItems) + { + await cacheSupportsMultipleItems.RefreshManyAsync(keys.Select(NormalizeKey), token); + } + else + { + foreach (var key in keys) + { + await Cache.RefreshAsync(NormalizeKey(key), token); + } + } + } + catch (Exception ex) + { + if (hideErrors == true) + { + await HandleExceptionAsync(ex); + return; + } + + throw; + } + } + /// /// Removes the cache item for given key from cache. /// @@ -1027,6 +1284,30 @@ namespace Volo.Abp.Caching } } + protected virtual KeyValuePair[] GetOrAddMany( + TCacheKey[] keys, + KeyValuePair[] values, + KeyValuePair[] missingValues) + { + var missingValuesIndex = new List(); + for (var i = 0; i < keys.Length; i++) + { + if (values[i].Value == null) + { + missingValuesIndex.Add(i); + } + } + + var valueQueue = new Queue>(missingValues); + + foreach (var index in missingValuesIndex) + { + values[index] = valueQueue.Dequeue(); + } + + return values; + } + protected virtual void HandleException(Exception ex) { _ = HandleExceptionAsync(ex); diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs index af6f87021b..ec73a159a4 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; @@ -25,6 +26,15 @@ namespace Volo.Abp.Caching IEnumerable> items, DistributedCacheEntryOptions options, CancellationToken token = default - ); + ); + + void RefreshMany( + IEnumerable keys + ); + + Task RefreshManyAsync( + IEnumerable keys, + CancellationToken token = default + ); } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs index 2f74fd678b..d8510efe43 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs @@ -14,8 +14,8 @@ namespace Volo.Abp.Caching public interface IDistributedCache : IDistributedCache where TCacheItem : class { - } + ///
    /// Represents a distributed cache of type. /// Uses a generic cache key type of type. @@ -128,6 +128,44 @@ namespace Volo.Abp.Caching CancellationToken token = default ); + /// + /// Gets or Adds multiple cache items with the given keys. If any cache items not found for the given keys then adds cache items + /// provided by delegate and returns the provided cache items. + /// + /// The keys of cached items to be retrieved from the cache. + /// The factory delegate is used to provide the cache items when no cache items are found for the given . + /// The cache options for the factory delegate. + /// Indicates to throw or hide the exceptions for the distributed cache. + /// This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. + /// The cache items. + KeyValuePair[] GetOrAddMany( + IEnumerable keys, + Func, IEnumerable>> factory, + Func optionsFactory = null, + bool? hideErrors = null, + bool considerUow = false + ); + + /// + /// Gets or Adds multiple cache items with the given keys. If any cache items not found for the given keys then adds cache items + /// provided by delegate and returns the provided cache items. + /// + /// The keys of cached items to be retrieved from the cache. + /// The factory delegate is used to provide the cache items when no cache items are found for the given . + /// The cache options for the factory delegate. + /// Indicates to throw or hide the exceptions for the distributed cache. + /// This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. + /// The for the task. + /// The cache items. + Task[]> GetOrAddManyAsync( + IEnumerable keys, + Func, Task>>> factory, + Func optionsFactory = null, + bool? hideErrors = null, + bool considerUow = false, + CancellationToken token = default + ); + /// /// Sets the cache item value for the provided key. /// @@ -219,6 +257,29 @@ namespace Volo.Abp.Caching CancellationToken token = default ); + /// + /// Refreshes multiple cache items. + /// Based on the implementation, this can be more efficient than setting multiple items individually. + /// + /// The keys of cached items to be retrieved from the cache. + /// Indicates to throw or hide the exceptions for the distributed cache. + void RefreshMany( + IEnumerable keys, + bool? hideErrors = null); + + /// + /// Refreshes multiple cache items. + /// Based on the implementation, this can be more efficient than setting multiple items individually. + /// + /// The keys of cached items to be retrieved from the cache. + /// Indicates to throw or hide the exceptions for the distributed cache. + /// The for the task. + /// The indicating that the operation is asynchronous. + Task RefreshManyAsync( + IEnumerable keys, + bool? hideErrors = null, + CancellationToken token = default); + /// /// Removes the cache item for given key from cache. /// diff --git a/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs b/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs index 69589d97cd..4490a50fd3 100644 --- a/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs +++ b/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs @@ -57,5 +57,21 @@ namespace Volo.Abp.Caching await SetAsync(item.Key, item.Value, options, token); } } + + public void RefreshMany(IEnumerable keys) + { + foreach (var key in keys) + { + Refresh(key); + } + } + + public async Task RefreshManyAsync(IEnumerable keys, CancellationToken token = default) + { + foreach (var key in keys) + { + await RefreshAsync(key, token); + } + } } } From 5866a59ed920fdbdba04550e74ae67b4f4f0f2fb Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 14:18:57 +0300 Subject: [PATCH 229/309] add a service for getting navigation events stream --- .../packages/core/src/lib/services/index.ts | 1 + .../lib/services/navigation-events.service.ts | 36 +++++++++ .../tests/navigation-events.service.spec.ts | 75 +++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts create mode 100644 npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts diff --git a/npm/ng-packs/packages/core/src/lib/services/index.ts b/npm/ng-packs/packages/core/src/lib/services/index.ts index 37bc78d606..7044831681 100644 --- a/npm/ng-packs/packages/core/src/lib/services/index.ts +++ b/npm/ng-packs/packages/core/src/lib/services/index.ts @@ -9,6 +9,7 @@ export * from './lazy-load.service'; export * from './list.service'; export * from './localization.service'; export * from './multi-tenancy.service'; +export * from './navigation-events.service'; export * from './permission.service'; export * from './profile-state.service'; export * from './profile.service'; diff --git a/npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts b/npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts new file mode 100644 index 0000000000..ff18b65ed3 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts @@ -0,0 +1,36 @@ +import { Injectable, Type } from '@angular/core'; +import { + NavigationCancel, + NavigationEnd, + NavigationError, + NavigationStart, + Router, + RouterEvent, +} from '@angular/router'; +import { filter } from 'rxjs/operators'; + +export type NavigationEventType = 'Cancel' | 'End' | 'Error' | 'Start'; + +@Injectable({ providedIn: 'root' }) +export class NavigationEvents { + private eventTypes = new Map>([ + ['Cancel', NavigationCancel], + ['End', NavigationEnd], + ['Error', NavigationError], + ['Start', NavigationStart], + ]); + + constructor(private router: Router) {} + + getOneOf(...eventTypes: NavigationEventType[]) { + return this.router.events.pipe( + filter((event: RouterEvent) => + eventTypes.some(type => event instanceof this.eventTypes.get(type)), + ), + ); + } + + getAny() { + return this.getOneOf(...this.eventTypes.keys()); + } +} diff --git a/npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts new file mode 100644 index 0000000000..cf6d2992d0 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts @@ -0,0 +1,75 @@ +import { + NavigationCancel, + NavigationEnd, + NavigationError, + NavigationStart, + Router, + RouterEvent, +} from '@angular/router'; +import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; +import { Subject } from 'rxjs'; +import { take } from 'rxjs/operators'; +import { NavigationEvents } from '../services/navigation-events.service'; + +describe('NavigationEvents', () => { + let spectator: SpectatorService; + let service: NavigationEvents; + const events = new Subject(); + + const createService = createServiceFactory({ + service: NavigationEvents, + providers: [ + { + provide: Router, + useValue: { events }, + }, + ], + }); + + beforeEach(() => { + spectator = createService(); + service = spectator.service; + }); + + describe('getOneOf', () => { + test.each` + filtered | expected + ${['Start', 'Cancel']} | ${[0, 3]} + ${['Error', 'Cancel']} | ${[0, 1]} + ${['Start', 'End']} | ${[2, 3]} + ${['Error', 'End']} | ${[1, 2]} + `('should return a stream of given navigation events', ({ filtered, expected }) => { + const stream = service.getOneOf(...filtered); + const collected: number[] = []; + + stream.pipe(take(2)).subscribe(event => collected.push(event.id)); + + events.next(new NavigationCancel(0, null, null)); + events.next(new NavigationError(1, null, null)); + events.next(new NavigationEnd(2, null, null)); + events.next(new NavigationStart(3, null, null)); + + expect(collected).toEqual(expected); + }); + }); + + describe('getAny', () => { + it('should return a stream of any navigation event', () => { + const stream = service.getAny(); + const collected: number[] = []; + + stream.pipe(take(4)).subscribe(event => collected.push(event.id)); + + events.next(new RouterEvent(0, null)); + events.next(new NavigationStart(1, null, null)); + events.next(new RouterEvent(2, null)); + events.next(new RouterEvent(3, null)); + events.next(new NavigationError(4, null, null)); + events.next(new NavigationEnd(5, null, null)); + events.next(new RouterEvent(6, null)); + events.next(new NavigationCancel(7, null, null)); + + expect(collected).toEqual([1, 4, 5, 7]); + }); + }); +}); From 5c5ca4e02b89fea8def3def420d4b7cafd1ece09 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 14:19:20 +0300 Subject: [PATCH 230/309] use NavigationEvents in RouterWaitService --- .../src/lib/services/router-wait.service.ts | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts b/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts index 56240d8ca2..b11a1a298d 100644 --- a/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts @@ -1,9 +1,10 @@ import { Injectable, Injector } from '@angular/core'; -import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router'; -import { filter, map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators'; -import { InternalStore } from '../utils/internal-store-utils'; +import { NavigationStart } from '@angular/router'; import { of, Subject, timer } from 'rxjs'; +import { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators'; import { LOADER_DELAY } from '../tokens/lodaer-delay.token'; +import { InternalStore } from '../utils/internal-store-utils'; +import { NavigationEvents } from './navigation-events.service'; export interface RouterWaitState { loading: boolean; @@ -16,17 +17,15 @@ export class RouterWaitService { private store = new InternalStore({ loading: false }); private destroy$ = new Subject(); private delay: number; - constructor(private router: Router, injector: Injector) { + constructor(private navigationEvents: NavigationEvents, injector: Injector) { this.delay = injector.get(LOADER_DELAY, 500); - this.router.events + this.updateLoadingStatusOnNavigationEvents(); + } + + private updateLoadingStatusOnNavigationEvents() { + this.navigationEvents + .getAny() .pipe( - filter( - event => - event instanceof NavigationStart || - event instanceof NavigationEnd || - event instanceof NavigationError || - event instanceof NavigationCancel, - ), map(event => event instanceof NavigationStart), switchMap(condition => condition From 40b3e3892e1afef5594ee36ae85053a6a2105b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 29 Jan 2021 14:27:47 +0300 Subject: [PATCH 231/309] Added extension methods to ModelBuilder to know the multi-tenancy side for the current schema. --- .../AbpModelBuilderExtensions.cs | 72 +++++++++++++++++-- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/EntityFrameworkCore/AbpModelBuilderExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/EntityFrameworkCore/AbpModelBuilderExtensions.cs index 7148cb69bd..1ccfee1506 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/EntityFrameworkCore/AbpModelBuilderExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/EntityFrameworkCore/AbpModelBuilderExtensions.cs @@ -1,10 +1,72 @@ using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.MultiTenancy; namespace Microsoft.EntityFrameworkCore { public static class AbpModelBuilderExtensions { private const string ModelDatabaseProviderAnnotationKey = "_Abp_DatabaseProvider"; + private const string ModelMultiTenancySideAnnotationKey = "_Abp_MultiTenancySide"; + + #region MultiTenancySide + + public static void SetMultiTenancySide( + this ModelBuilder modelBuilder, + MultiTenancySides side) + { + modelBuilder.Model.SetAnnotation(ModelMultiTenancySideAnnotationKey, side); + } + + public static MultiTenancySides GetMultiTenancySide(this ModelBuilder modelBuilder) + { + var value = modelBuilder.Model[ModelMultiTenancySideAnnotationKey]; + if (value == null) + { + return MultiTenancySides.Both; + } + + return (MultiTenancySides) value; + } + + /// + /// Returns true if this is a database schema that is used by the host + /// but can also be shared with the tenants. + /// + public static bool IsHostDatabase(this ModelBuilder modelBuilder) + { + return modelBuilder.GetMultiTenancySide().HasFlag(MultiTenancySides.Host); + } + + /// + /// Returns true if this is a database schema that is used by the tenants + /// but can also be shared with the host. + /// + public static bool IsTenantDatabase(this ModelBuilder modelBuilder) + { + return modelBuilder.GetMultiTenancySide().HasFlag(MultiTenancySides.Tenant); + } + + /// + /// Returns true if this is a database schema that is only used by the host + /// and should not contain tenant-only tables. + /// + public static bool IsHostOnlyDatabase(this ModelBuilder modelBuilder) + { + return modelBuilder.GetMultiTenancySide() == MultiTenancySides.Host; + } + + /// + /// Returns true if this is a database schema that is only used by tenants. + /// and should not contain host-only tables. + /// + public static bool IsTenantOnlyDatabase(this ModelBuilder modelBuilder) + { + return modelBuilder.GetMultiTenancySide() == MultiTenancySides.Tenant; + } + + #endregion + + #region DatabaseProvider public static void SetDatabaseProvider( this ModelBuilder modelBuilder, @@ -61,7 +123,7 @@ namespace Microsoft.EntityFrameworkCore { modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.InMemory); } - + public static bool IsUsingInMemory( this ModelBuilder modelBuilder) { @@ -73,7 +135,7 @@ namespace Microsoft.EntityFrameworkCore { modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Cosmos); } - + public static bool IsUsingCosmos( this ModelBuilder modelBuilder) { @@ -85,11 +147,13 @@ namespace Microsoft.EntityFrameworkCore { modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Firebird); } - + public static bool IsUsingFirebird( this ModelBuilder modelBuilder) { return modelBuilder.GetDatabaseProvider() == EfCoreDatabaseProvider.Firebird; } + + #endregion } -} \ No newline at end of file +} From afc52fa3d0b84192ec618fb49c34dc7e516027ef Mon Sep 17 00:00:00 2001 From: Ahmet Date: Fri, 29 Jan 2021 14:41:10 +0300 Subject: [PATCH 232/309] update module template host projects --- .../Pages/Index.cshtml | 1 + .../Pages/Index.cshtml | 25 +++++++++++++------ .../Menus/MyProjectNameMenuContributor.cs | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml index c46fdc673c..86106c7175 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml @@ -6,6 +6,7 @@ @using Volo.Abp.Users @inject IHtmlLocalizer L @inject ICurrentUser CurrentUser + Welcome diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml index 3f37ed5a3e..655fa4d552 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Pages/Index.cshtml @@ -7,11 +7,20 @@ @inject IStringLocalizer Localizer @inject ICurrentUser CurrentUser -@if (!CurrentUser.IsAuthenticated) -{ - @Localizer["Login"] -} -else -{ - Welcome: @CurrentUser.UserName -} \ No newline at end of file + + Welcome + + @if (!CurrentUser.IsAuthenticated) + { + @Localizer["Login"] + } + else + { + Welcome: @CurrentUser.UserName + } +
    +

    abp.io

    +
    +
    + + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs index 9ed725efb7..116bffb5aa 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs @@ -16,7 +16,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Menus private Task ConfigureMainMenuAsync(MenuConfigurationContext context) { //Add main menu items. - context.Menu.AddItem(new ApplicationMenuItem(MyProjectNameMenus.Prefix, displayName: "MyProjectName", "~/MyProjectName", icon: "fa fa-globe")); + context.Menu.AddItem(new ApplicationMenuItem(MyProjectNameMenus.Prefix, displayName: "MyProjectName", "/MyProjectName", icon: "fa fa-globe")); return Task.CompletedTask; } From 0c45c0e2ca227b95bd5a6dc675aad075a50b907d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 29 Jan 2021 14:42:16 +0300 Subject: [PATCH 233/309] Do not create host related tables in the tenant-only databases. --- ...undJobsDbContextModelCreatingExtensions.cs | 11 ++-- ...BloggingDbContextModelBuilderExtensions.cs | 5 ++ .../DocsDbContextModelBuilderExtensions.cs | 7 ++- ...agementDbContextModelCreatingExtensions.cs | 7 ++- ...IdentityDbContextModelBuilderExtensions.cs | 50 ++++++++++--------- ...yServerDbContextModelCreatingExtensions.cs | 5 ++ ...nagementDbContextModelBuilderExtensions.cs | 9 +++- ...agementDbContextModelCreatingExtensions.cs | 7 ++- 8 files changed, 70 insertions(+), 31 deletions(-) diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContextModelCreatingExtensions.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContextModelCreatingExtensions.cs index 0d16130fb5..0e36a661f6 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContextModelCreatingExtensions.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo/Abp/BackgroundJobs/EntityFrameworkCore/BackgroundJobsDbContextModelCreatingExtensions.cs @@ -12,13 +12,18 @@ namespace Volo.Abp.BackgroundJobs.EntityFrameworkCore { Check.NotNull(builder, nameof(builder)); + if (builder.IsTenantOnlyDatabase()) + { + return; + } + var options = new BackgroundJobsModelBuilderConfigurationOptions( BackgroundJobsDbProperties.DbTablePrefix, BackgroundJobsDbProperties.DbSchema ); optionsAction?.Invoke(options); - + builder.Entity(b => { b.ToTable(options.TablePrefix + "BackgroundJobs", options.Schema); @@ -32,9 +37,9 @@ namespace Volo.Abp.BackgroundJobs.EntityFrameworkCore b.Property(x => x.LastTryTime); b.Property(x => x.IsAbandoned).HasDefaultValue(false); b.Property(x => x.Priority).HasDefaultValue(BackgroundJobPriority.Normal); - + b.HasIndex(x => new { x.IsAbandoned, x.NextTryTime }); }); } } -} \ No newline at end of file +} diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContextModelBuilderExtensions.cs b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContextModelBuilderExtensions.cs index a5e909d8a4..9c54d0a3a0 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContextModelBuilderExtensions.cs +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/EntityFrameworkCore/BloggingDbContextModelBuilderExtensions.cs @@ -20,6 +20,11 @@ namespace Volo.Blogging.EntityFrameworkCore { Check.NotNull(builder, nameof(builder)); + if (builder.IsTenantOnlyDatabase()) + { + return; + } + var options = new BloggingModelBuilderConfigurationOptions( BloggingDbProperties.DbTablePrefix, BloggingDbProperties.DbSchema diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContextModelBuilderExtensions.cs b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContextModelBuilderExtensions.cs index 379ca8792d..c751475728 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContextModelBuilderExtensions.cs +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/EntityFrameworkCore/DocsDbContextModelBuilderExtensions.cs @@ -16,6 +16,11 @@ namespace Volo.Docs.EntityFrameworkCore { Check.NotNull(builder, nameof(builder)); + if (builder.IsTenantOnlyDatabase()) + { + return; + } + var options = new DocsModelBuilderConfigurationOptions( DocsDbProperties.DbTablePrefix, DocsDbProperties.DbSchema @@ -69,4 +74,4 @@ namespace Volo.Docs.EntityFrameworkCore }); } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContextModelCreatingExtensions.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContextModelCreatingExtensions.cs index d854f89448..0398096b95 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContextModelCreatingExtensions.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/FeatureManagementDbContextModelCreatingExtensions.cs @@ -12,6 +12,11 @@ namespace Volo.Abp.FeatureManagement.EntityFrameworkCore { Check.NotNull(builder, nameof(builder)); + if (builder.IsTenantOnlyDatabase()) + { + return; + } + var options = new FeatureManagementModelBuilderConfigurationOptions( FeatureManagementDbProperties.DbTablePrefix, FeatureManagementDbProperties.DbSchema @@ -34,4 +39,4 @@ namespace Volo.Abp.FeatureManagement.EntityFrameworkCore }); } } -} \ No newline at end of file +} diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs index a533ce6340..4e43721a80 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs @@ -152,18 +152,21 @@ namespace Volo.Abp.Identity.EntityFrameworkCore b.HasIndex(uc => uc.RoleId); }); - builder.Entity(b => + if (builder.IsHostDatabase()) { - b.ToTable(options.TablePrefix + "ClaimTypes", options.Schema); + builder.Entity(b => + { + b.ToTable(options.TablePrefix + "ClaimTypes", options.Schema); - b.ConfigureByConvention(); + b.ConfigureByConvention(); - b.Property(uc => uc.Name).HasMaxLength(IdentityClaimTypeConsts.MaxNameLength) - .IsRequired(); // make unique - b.Property(uc => uc.Regex).HasMaxLength(IdentityClaimTypeConsts.MaxRegexLength); - b.Property(uc => uc.RegexDescription).HasMaxLength(IdentityClaimTypeConsts.MaxRegexDescriptionLength); - b.Property(uc => uc.Description).HasMaxLength(IdentityClaimTypeConsts.MaxDescriptionLength); - }); + b.Property(uc => uc.Name).HasMaxLength(IdentityClaimTypeConsts.MaxNameLength) + .IsRequired(); // make unique + b.Property(uc => uc.Regex).HasMaxLength(IdentityClaimTypeConsts.MaxRegexLength); + b.Property(uc => uc.RegexDescription).HasMaxLength(IdentityClaimTypeConsts.MaxRegexDescriptionLength); + b.Property(uc => uc.Description).HasMaxLength(IdentityClaimTypeConsts.MaxDescriptionLength); + }); + } builder.Entity(b => { @@ -233,22 +236,23 @@ namespace Volo.Abp.Identity.EntityFrameworkCore b.HasIndex(x => new { x.TenantId, x.UserId }); }); - builder.Entity(b => + if (builder.IsHostDatabase()) { - b.ToTable(options.TablePrefix + "LinkUsers", options.Schema); - - b.ConfigureByConvention(); - - b.HasIndex(x => new + builder.Entity(b => { - UserId = x.SourceUserId, - TenantId = x.SourceTenantId, - LinkedUserId = x.TargetUserId, - LinkedTenantId = x.TargetTenantId - }).IsUnique(); - }); - - + b.ToTable(options.TablePrefix + "LinkUsers", options.Schema); + + b.ConfigureByConvention(); + + b.HasIndex(x => new + { + UserId = x.SourceUserId, + TenantId = x.SourceTenantId, + LinkedUserId = x.TargetUserId, + LinkedTenantId = x.TargetTenantId + }).IsUnique(); + }); + } } } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs index 1759ce5855..d3d08dca15 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs @@ -19,6 +19,11 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore { Check.NotNull(builder, nameof(builder)); + if (builder.IsTenantOnlyDatabase()) + { + return; + } + var options = new IdentityServerModelBuilderConfigurationOptions( AbpIdentityServerDbProperties.DbTablePrefix, AbpIdentityServerDbProperties.DbSchema diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs index 6f0bd5c3f8..0758cc9957 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs @@ -27,6 +27,11 @@ namespace Volo.Abp.SettingManagement.EntityFrameworkCore { Check.NotNull(builder, nameof(builder)); + if (builder.IsTenantOnlyDatabase()) + { + return; + } + var options = new SettingManagementModelBuilderConfigurationOptions( AbpSettingManagementDbProperties.DbTablePrefix, AbpSettingManagementDbProperties.DbSchema @@ -44,7 +49,7 @@ namespace Volo.Abp.SettingManagement.EntityFrameworkCore if (builder.IsUsingOracle()) { SettingConsts.MaxValueLengthValue = 2000; } b.Property(x => x.Value).HasMaxLength(SettingConsts.MaxValueLengthValue).IsRequired(); - + b.Property(x => x.ProviderName).HasMaxLength(SettingConsts.MaxProviderNameLength); b.Property(x => x.ProviderKey).HasMaxLength(SettingConsts.MaxProviderKeyLength); @@ -52,4 +57,4 @@ namespace Volo.Abp.SettingManagement.EntityFrameworkCore }); } } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementDbContextModelCreatingExtensions.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementDbContextModelCreatingExtensions.cs index 03858df202..04c97046cf 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementDbContextModelCreatingExtensions.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementDbContextModelCreatingExtensions.cs @@ -13,6 +13,11 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore { Check.NotNull(builder, nameof(builder)); + if (builder.IsTenantOnlyDatabase()) + { + return; + } + var options = new AbpTenantManagementModelBuilderConfigurationOptions( AbpTenantManagementDbProperties.DbTablePrefix, AbpTenantManagementDbProperties.DbSchema @@ -46,4 +51,4 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore }); } } -} \ No newline at end of file +} From bfb896dc3f3533aeae9c662ab50b6c48faa10111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 29 Jan 2021 15:28:34 +0300 Subject: [PATCH 234/309] Rollback non-relational database transactions. Also, added comment to clarify it. --- .../EntityFrameworkCore/EfCoreTransactionApi.cs | 16 ++++++++++++---- .../UnitOfWorkDbContextProvider.cs | 10 ++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs index 625ba72ee2..a5c57b8597 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs @@ -48,11 +48,19 @@ namespace Volo.Abp.Uow.EntityFrameworkCore DbContextTransaction.Dispose(); } - public Task RollbackAsync(CancellationToken cancellationToken) + public async Task RollbackAsync(CancellationToken cancellationToken) { - return DbContextTransaction.RollbackAsync( - CancellationTokenProvider.FallbackToProvider(cancellationToken) - ); + await DbContextTransaction.RollbackAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); + + foreach (var dbContext in AttendedDbContexts) + { + if (dbContext.As().HasRelationalTransactionManager()) + { + continue; //Relational databases use the shared transaction + } + + await dbContext.Database.RollbackTransactionAsync(CancellationTokenProvider.Token); + } } } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs index dee4d3444d..89cc69fb74 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/UnitOfWorkDbContextProvider.cs @@ -191,7 +191,10 @@ namespace Volo.Abp.Uow.EntityFrameworkCore } else { - dbContext.Database.BeginTransaction(); //TODO: Why not using the new created transaction? + /* No need to store the returning IDbContextTransaction for non-relational databases + * since EfCoreTransactionApi will handle the commit/rollback over the DbContext instance. + */ + dbContext.Database.BeginTransaction(); } activeTransaction.AttendedDbContexts.Add(dbContext); @@ -236,7 +239,10 @@ namespace Volo.Abp.Uow.EntityFrameworkCore } else { - await dbContext.Database.BeginTransactionAsync(GetCancellationToken()); //TODO: Why not using the new created transaction? + /* No need to store the returning IDbContextTransaction for non-relational databases + * since EfCoreTransactionApi will handle the commit/rollback over the DbContext instance. + */ + await dbContext.Database.BeginTransactionAsync(GetCancellationToken()); } activeTransaction.AttendedDbContexts.Add(dbContext); From 30d147b0c39eda0654ca6f165724b4902ebbf98d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 29 Jan 2021 15:31:16 +0300 Subject: [PATCH 235/309] Use CancellationTokenProvider.FallbackToProvider --- .../Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs index a5c57b8597..ce9afacef1 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Uow/EntityFrameworkCore/EfCoreTransactionApi.cs @@ -59,7 +59,7 @@ namespace Volo.Abp.Uow.EntityFrameworkCore continue; //Relational databases use the shared transaction } - await dbContext.Database.RollbackTransactionAsync(CancellationTokenProvider.Token); + await dbContext.Database.RollbackTransactionAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } } } From 9f0b6b8ec5421b79e0fddf82205dad7c22da9a3a Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 29 Jan 2021 15:37:06 +0300 Subject: [PATCH 236/309] use revokeTokenAndLogout of OAuthService instead of logOut --- .../packages/core/src/lib/strategies/auth-flow.strategy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts b/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts index 31e004be6d..d3d4c9f70f 100644 --- a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts +++ b/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts @@ -70,7 +70,8 @@ export class AuthCodeFlowStrategy extends AuthFlowStrategy { } logout() { - this.oAuthService.logOut(); + this.oAuthService.revokeTokenAndLogout(); + // TODO: no need to return of(null). It may be removed in v5.0. return of(null); } From bb303e4228869ab6f135f130805289fe4830e6db Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 29 Jan 2021 20:54:04 +0800 Subject: [PATCH 237/309] Add localized texts for zh-Hans. --- .../Volo/Docs/Localization/Domain/zh-Hans.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json index f12c1f4149..9c32e143f1 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hans.json @@ -33,6 +33,9 @@ "Upd": "更新", "NewExplanation": "在最近两周内创建.", "UpdatedExplanation": "在最近两周内更新.", - "Volo.Docs.Domain:010002": "简称 {ShortName} 已经存在." + "Volo.Docs.Domain:010002": "简称 {ShortName} 已经存在.", + "Preview": "预览", + "Search": "搜索", + "SearchResults": "搜索结果" } -} \ No newline at end of file +} From 1399778913a1c1feae04d4115a9ddf5b973a1007 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 21:30:37 +0300 Subject: [PATCH 238/309] convert navigation events to router events service --- .../packages/core/src/lib/services/index.ts | 2 +- .../lib/services/navigation-events.service.ts | 36 ------ .../src/lib/services/router-events.service.ts | 60 ++++++++++ .../tests/navigation-events.service.spec.ts | 75 ------------ .../lib/tests/router-events.service.spec.ts | 111 ++++++++++++++++++ 5 files changed, 172 insertions(+), 112 deletions(-) delete mode 100644 npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts create mode 100644 npm/ng-packs/packages/core/src/lib/services/router-events.service.ts delete mode 100644 npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts create mode 100644 npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts diff --git a/npm/ng-packs/packages/core/src/lib/services/index.ts b/npm/ng-packs/packages/core/src/lib/services/index.ts index 7044831681..55000edde1 100644 --- a/npm/ng-packs/packages/core/src/lib/services/index.ts +++ b/npm/ng-packs/packages/core/src/lib/services/index.ts @@ -9,13 +9,13 @@ export * from './lazy-load.service'; export * from './list.service'; export * from './localization.service'; export * from './multi-tenancy.service'; -export * from './navigation-events.service'; export * from './permission.service'; export * from './profile-state.service'; export * from './profile.service'; export * from './replaceable-components.service'; export * from './resource-wait.service'; export * from './rest.service'; +export * from './router-events.service'; export * from './router-wait.service'; export * from './routes.service'; export * from './session-state.service'; diff --git a/npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts b/npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts deleted file mode 100644 index ff18b65ed3..0000000000 --- a/npm/ng-packs/packages/core/src/lib/services/navigation-events.service.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Injectable, Type } from '@angular/core'; -import { - NavigationCancel, - NavigationEnd, - NavigationError, - NavigationStart, - Router, - RouterEvent, -} from '@angular/router'; -import { filter } from 'rxjs/operators'; - -export type NavigationEventType = 'Cancel' | 'End' | 'Error' | 'Start'; - -@Injectable({ providedIn: 'root' }) -export class NavigationEvents { - private eventTypes = new Map>([ - ['Cancel', NavigationCancel], - ['End', NavigationEnd], - ['Error', NavigationError], - ['Start', NavigationStart], - ]); - - constructor(private router: Router) {} - - getOneOf(...eventTypes: NavigationEventType[]) { - return this.router.events.pipe( - filter((event: RouterEvent) => - eventTypes.some(type => event instanceof this.eventTypes.get(type)), - ), - ); - } - - getAny() { - return this.getOneOf(...this.eventTypes.keys()); - } -} diff --git a/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts b/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts new file mode 100644 index 0000000000..22981c641c --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts @@ -0,0 +1,60 @@ +import { Injectable, Type } from '@angular/core'; +import { + NavigationCancel, + NavigationEnd, + NavigationError, + NavigationStart, + Router, + RouterEvent, +} from '@angular/router'; +import { filter } from 'rxjs/operators'; + +export const NavigationEvent = { + Cancel: NavigationCancel, + End: NavigationEnd, + Error: NavigationError, + Start: NavigationStart, +}; + +@Injectable({ providedIn: 'root' }) +export class RouterEvents { + constructor(private router: Router) {} + + getEvents(...eventTypes: T) { + type FilteredRouterEvent = T extends Type[] ? Ctor : never; + + const filterRouterEvents = (event: RouterEvent): event is FilteredRouterEvent => + eventTypes.some(type => event instanceof type); + + return this.router.events.pipe(filter(filterRouterEvents)); + } + + getNavigationEvents(...navigationEventKeys: T) { + type FilteredNavigationEvent = T extends (infer Key)[] + ? Key extends NavigationEventKey + ? InstanceType + : never + : never; + + const filterNavigationEvents = (event: RouterEvent): event is FilteredNavigationEvent => + navigationEventKeys.some(key => event instanceof NavigationEvent[key]); + + return this.router.events.pipe(filter(filterNavigationEvents)); + } + + getAnyEvent() { + return this.router.events; + } + + getAnyNavigationEvent() { + const keys = Object.keys(NavigationEvent) as NavigationEventKeys; + return this.getNavigationEvents(...keys); + } +} + +type RouterEventConstructors = [Type, ...Type[]]; + +type NavigationEventKeys = [NavigationEventKey, ...NavigationEventKey[]]; + +export type NavigationEventType = typeof NavigationEvent; +export type NavigationEventKey = keyof NavigationEventType; diff --git a/npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts deleted file mode 100644 index cf6d2992d0..0000000000 --- a/npm/ng-packs/packages/core/src/lib/tests/navigation-events.service.spec.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { - NavigationCancel, - NavigationEnd, - NavigationError, - NavigationStart, - Router, - RouterEvent, -} from '@angular/router'; -import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; -import { Subject } from 'rxjs'; -import { take } from 'rxjs/operators'; -import { NavigationEvents } from '../services/navigation-events.service'; - -describe('NavigationEvents', () => { - let spectator: SpectatorService; - let service: NavigationEvents; - const events = new Subject(); - - const createService = createServiceFactory({ - service: NavigationEvents, - providers: [ - { - provide: Router, - useValue: { events }, - }, - ], - }); - - beforeEach(() => { - spectator = createService(); - service = spectator.service; - }); - - describe('getOneOf', () => { - test.each` - filtered | expected - ${['Start', 'Cancel']} | ${[0, 3]} - ${['Error', 'Cancel']} | ${[0, 1]} - ${['Start', 'End']} | ${[2, 3]} - ${['Error', 'End']} | ${[1, 2]} - `('should return a stream of given navigation events', ({ filtered, expected }) => { - const stream = service.getOneOf(...filtered); - const collected: number[] = []; - - stream.pipe(take(2)).subscribe(event => collected.push(event.id)); - - events.next(new NavigationCancel(0, null, null)); - events.next(new NavigationError(1, null, null)); - events.next(new NavigationEnd(2, null, null)); - events.next(new NavigationStart(3, null, null)); - - expect(collected).toEqual(expected); - }); - }); - - describe('getAny', () => { - it('should return a stream of any navigation event', () => { - const stream = service.getAny(); - const collected: number[] = []; - - stream.pipe(take(4)).subscribe(event => collected.push(event.id)); - - events.next(new RouterEvent(0, null)); - events.next(new NavigationStart(1, null, null)); - events.next(new RouterEvent(2, null)); - events.next(new RouterEvent(3, null)); - events.next(new NavigationError(4, null, null)); - events.next(new NavigationEnd(5, null, null)); - events.next(new RouterEvent(6, null)); - events.next(new NavigationCancel(7, null, null)); - - expect(collected).toEqual([1, 4, 5, 7]); - }); - }); -}); diff --git a/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts new file mode 100644 index 0000000000..7b6af4f3ee --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts @@ -0,0 +1,111 @@ +import { + NavigationCancel, + NavigationEnd, + NavigationError, + NavigationStart, + ResolveEnd, + ResolveStart, + Router, + RouterEvent, +} from '@angular/router'; +import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; +import { Subject } from 'rxjs'; +import { take } from 'rxjs/operators'; +import { NavigationEventKey, RouterEvents } from '../services/router-events.service'; + +describe('RouterEvents', () => { + let spectator: SpectatorService; + let service: RouterEvents; + const events = new Subject(); + const emitRouterEvents = () => { + events.next(new RouterEvent(0, null)); + events.next(new NavigationStart(1, null, null)); + events.next(new ResolveStart(2, null, null, null)); + events.next(new RouterEvent(3, null)); + events.next(new NavigationError(4, null, null)); + events.next(new NavigationEnd(5, null, null)); + events.next(new ResolveEnd(6, null, null, null)); + events.next(new NavigationCancel(7, null, null)); + }; + + const createService = createServiceFactory({ + service: RouterEvents, + providers: [ + { + provide: Router, + useValue: { events }, + }, + ], + }); + + beforeEach(() => { + spectator = createService(); + service = spectator.service; + }); + + describe('getNavigationEvents', () => { + test.each` + filtered | expected + ${['Start', 'Cancel']} | ${[1, 7]} + ${['Error', 'Cancel']} | ${[4, 7]} + ${['Start', 'End']} | ${[1, 5]} + ${['Error', 'End']} | ${[4, 5]} + `( + 'should return a stream of given navigation events', + ({ filtered, expected }: NavigationEventTest) => { + const stream = service.getNavigationEvents(...filtered); + const collected: number[] = []; + + stream.pipe(take(2)).subscribe(event => collected.push(event.id)); + + emitRouterEvents(); + + expect(collected).toEqual(expected); + }, + ); + }); + + describe('getAnyNavigationEvent', () => { + it('should return a stream of any navigation event', () => { + const stream = service.getAnyNavigationEvent(); + const collected: number[] = []; + + stream.pipe(take(4)).subscribe(event => collected.push(event.id)); + + emitRouterEvents(); + + expect(collected).toEqual([1, 4, 5, 7]); + }); + }); + + describe('getEvents', () => { + it('should return a stream of given router events', () => { + const stream = service.getEvents(ResolveEnd, ResolveStart); + const collected: number[] = []; + + stream.pipe(take(2)).subscribe(event => collected.push(event.id)); + + emitRouterEvents(); + + expect(collected).toEqual([2, 6]); + }); + }); + + describe('getAnyEvent', () => { + it('should return a stream of any router event', () => { + const stream = service.getAnyEvent(); + const collected: number[] = []; + + stream.pipe(take(8)).subscribe((event: RouterEvent) => collected.push(event.id)); + + emitRouterEvents(); + + expect(collected).toEqual([0, 1, 2, 3, 4, 5, 6, 7]); + }); + }); +}); + +type NavigationEventTest = { + filtered: [NavigationEventKey, ...NavigationEventKey[]]; + expected: number[]; +}; From e7eb33549f72ae6a7e7caf0b3f05b71a8160569a Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 21:31:55 +0300 Subject: [PATCH 239/309] use RouterEvents in RouterWaitService --- .../packages/core/src/lib/services/router-wait.service.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts b/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts index b11a1a298d..10c0100997 100644 --- a/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts @@ -4,7 +4,7 @@ import { of, Subject, timer } from 'rxjs'; import { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators'; import { LOADER_DELAY } from '../tokens/lodaer-delay.token'; import { InternalStore } from '../utils/internal-store-utils'; -import { NavigationEvents } from './navigation-events.service'; +import { RouterEvents } from './router-events.service'; export interface RouterWaitState { loading: boolean; @@ -17,14 +17,14 @@ export class RouterWaitService { private store = new InternalStore({ loading: false }); private destroy$ = new Subject(); private delay: number; - constructor(private navigationEvents: NavigationEvents, injector: Injector) { + constructor(private routerEvents: RouterEvents, injector: Injector) { this.delay = injector.get(LOADER_DELAY, 500); this.updateLoadingStatusOnNavigationEvents(); } private updateLoadingStatusOnNavigationEvents() { - this.navigationEvents - .getAny() + this.routerEvents + .getAnyNavigationEvent() .pipe( map(event => event instanceof NavigationStart), switchMap(condition => From ec84273b3c272aef2525c89a18b0798ea4bf2c17 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 21:47:15 +0300 Subject: [PATCH 240/309] use RouterEvents instead of filtering router events --- .../components/dynamic-layout.component.ts | 17 +++++++------- .../breadcrumb/breadcrumb.component.ts | 17 +++++++++----- .../src/lib/handlers/error.handler.ts | 22 ++++++++----------- 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts index 87ad976491..c9a852ae08 100644 --- a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts +++ b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts @@ -1,11 +1,11 @@ import { Component, Injector, Optional, SkipSelf, Type } from '@angular/core'; -import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { filter } from 'rxjs/operators'; +import { ActivatedRoute, Router } from '@angular/router'; import { eLayoutType } from '../enums/common'; import { ABP } from '../models'; import { ReplaceableComponents } from '../models/replaceable-components'; import { LocalizationService } from '../services/localization.service'; import { ReplaceableComponentsService } from '../services/replaceable-components.service'; +import { RouterEvents } from '../services/router-events.service'; import { RoutesService } from '../services/routes.service'; import { SubscriptionService } from '../services/subscription.service'; import { findRoute, getRoutePath } from '../utils/route-utils'; @@ -44,6 +44,7 @@ export class DynamicLayoutComponent { private localizationService: LocalizationService, private replaceableComponents: ReplaceableComponentsService, private subscription: SubscriptionService, + private routerEvents: RouterEvents, @Optional() @SkipSelf() dynamicLayoutComponent: DynamicLayoutComponent, ) { if (dynamicLayoutComponent) return; @@ -52,16 +53,16 @@ export class DynamicLayoutComponent { this.routes = injector.get(RoutesService); this.getLayout(); - this.subscription.addOne( - this.router.events.pipe(filter(event => event instanceof NavigationEnd)), - () => { - this.getLayout(); - }, - ); + this.checkLayoutOnNavigationEnd(); this.listenToLanguageChange(); } + private checkLayoutOnNavigationEnd() { + const navigationEnd$ = this.routerEvents.getNavigationEvents('End'); + this.subscription.addOne(navigationEnd$, () => this.getLayout()); + } + private getLayout() { let expectedLayout = (this.route.snapshot.data || {}).layout; diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts index 11270c6dc1..441dc33ec8 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts @@ -1,7 +1,14 @@ -import { ABP, getRoutePath, RoutesService, TreeNode, SubscriptionService } from '@abp/ng.core'; +import { + ABP, + getRoutePath, + NavigationEvents, + RoutesService, + SubscriptionService, + TreeNode, +} from '@abp/ng.core'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { NavigationEnd, Router } from '@angular/router'; -import { filter, map, startWith } from 'rxjs/operators'; +import { Router } from '@angular/router'; +import { map, startWith } from 'rxjs/operators'; import { eThemeSharedRouteNames } from '../../enums'; @Component({ @@ -18,12 +25,12 @@ export class BreadcrumbComponent implements OnInit { private router: Router, private routes: RoutesService, private subscription: SubscriptionService, + private navigationEvents: NavigationEvents, ) {} ngOnInit(): void { this.subscription.addOne( - this.router.events.pipe( - filter(event => event instanceof NavigationEnd), + this.navigationEvents.getOneOf('End').pipe( // tslint:disable-next-line:deprecation startWith(null), map(() => this.routes.search({ path: getRoutePath(this.router) })), diff --git a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts index 97f9533cf7..1835b80eef 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts @@ -1,4 +1,4 @@ -import { AuthService, LocalizationParam, RestOccurError } from '@abp/ng.core'; +import { AuthService, LocalizationParam, RestOccurError, RouterEvents } from '@abp/ng.core'; import { HttpErrorResponse } from '@angular/common/http'; import { ApplicationRef, @@ -10,7 +10,7 @@ import { Injector, RendererFactory2, } from '@angular/core'; -import { NavigationError, ResolveEnd, Router } from '@angular/router'; +import { NavigationError, ResolveEnd } from '@angular/router'; import { Actions, ofActionSuccessful } from '@ngxs/store'; import { Observable, Subject } from 'rxjs'; import { filter, map } from 'rxjs/operators'; @@ -72,7 +72,7 @@ export class ErrorHandler { constructor( private actions: Actions, - private router: Router, + private routerEvents: RouterEvents, private confirmationService: ConfirmationService, private cfRes: ComponentFactoryResolver, private rendererFactory: RendererFactory2, @@ -85,20 +85,16 @@ export class ErrorHandler { } private listenToRouterError() { - this.router.events - .pipe( - filter(event => event instanceof NavigationError), - filter(this.filterRouteErrors), - ) + this.routerEvents + .getNavigationEvents('Error') + .pipe(filter(this.filterRouteErrors)) .subscribe(() => this.show404Page()); } private listenToRouterDataResolved() { - this.router.events - .pipe( - filter(event => event instanceof ResolveEnd), - filter(() => !!this.componentRef), - ) + this.routerEvents + .getEvents(ResolveEnd) + .pipe(filter(() => !!this.componentRef)) .subscribe(() => { this.componentRef.destroy(); this.componentRef = null; From 2778998c4a464e4434ce0ee06267a1646af39800 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 21:57:34 +0300 Subject: [PATCH 241/309] use interface to avoid lint error --- .../packages/core/src/lib/tests/router-events.service.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts index 7b6af4f3ee..2fff89fd88 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts @@ -105,7 +105,7 @@ describe('RouterEvents', () => { }); }); -type NavigationEventTest = { +interface NavigationEventTest { filtered: [NavigationEventKey, ...NavigationEventKey[]]; expected: number[]; -}; +} From c608fa85df3261fa834a826a87e8d24482c9499a Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 23:07:47 +0300 Subject: [PATCH 242/309] rename methods that get all router/navigation events --- .../core/src/lib/services/router-events.service.ts | 7 ++++--- .../packages/core/src/lib/services/router-wait.service.ts | 2 +- .../core/src/lib/tests/router-events.service.spec.ts | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts b/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts index 22981c641c..9acee09aa7 100644 --- a/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts @@ -42,11 +42,11 @@ export class RouterEvents { return this.router.events.pipe(filter(filterNavigationEvents)); } - getAnyEvent() { + getAllEvents() { return this.router.events; } - getAnyNavigationEvent() { + getAllNavigationEvents() { const keys = Object.keys(NavigationEvent) as NavigationEventKeys; return this.getNavigationEvents(...keys); } @@ -56,5 +56,6 @@ type RouterEventConstructors = [Type, ...Type[]]; type NavigationEventKeys = [NavigationEventKey, ...NavigationEventKey[]]; -export type NavigationEventType = typeof NavigationEvent; +type NavigationEventType = typeof NavigationEvent; + export type NavigationEventKey = keyof NavigationEventType; diff --git a/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts b/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts index 10c0100997..e53ca3a1b1 100644 --- a/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/router-wait.service.ts @@ -24,7 +24,7 @@ export class RouterWaitService { private updateLoadingStatusOnNavigationEvents() { this.routerEvents - .getAnyNavigationEvent() + .getAllNavigationEvents() .pipe( map(event => event instanceof NavigationStart), switchMap(condition => diff --git a/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts index 2fff89fd88..0226c09d1e 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts @@ -67,7 +67,7 @@ describe('RouterEvents', () => { describe('getAnyNavigationEvent', () => { it('should return a stream of any navigation event', () => { - const stream = service.getAnyNavigationEvent(); + const stream = service.getAllNavigationEvents(); const collected: number[] = []; stream.pipe(take(4)).subscribe(event => collected.push(event.id)); @@ -93,7 +93,7 @@ describe('RouterEvents', () => { describe('getAnyEvent', () => { it('should return a stream of any router event', () => { - const stream = service.getAnyEvent(); + const stream = service.getAllEvents(); const collected: number[] = []; stream.pipe(take(8)).subscribe((event: RouterEvent) => collected.push(event.id)); From 531ed0f733380a819ec834233de2d2b954db6f6b Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 23:34:47 +0300 Subject: [PATCH 243/309] add documentation for router events --- docs/en/UI/Angular/Router-Events.md | 146 ++++++++++++++++++++++++++++ docs/en/docs-nav.json | 4 + 2 files changed, 150 insertions(+) create mode 100644 docs/en/UI/Angular/Router-Events.md diff --git a/docs/en/UI/Angular/Router-Events.md b/docs/en/UI/Angular/Router-Events.md new file mode 100644 index 0000000000..011d405b22 --- /dev/null +++ b/docs/en/UI/Angular/Router-Events.md @@ -0,0 +1,146 @@ +# Router Events Simplified + +`RouterEvents` is a utility service to provide an easy implementation for one of the most frequent needs in Angular templates: `TrackByFunction`. Please see [this page in Angular docs](https://angular.io/guide/template-syntax#ngfor-with-trackby) for its purpose. + + + + +## Benefit + +You can use router events directly and filter them as seen below: + +```js +import { + NavigationEnd, + NavigationError, + NavigationCancel, + Router, +} from '@angular/router'; +import { filter } from 'rxjs/operators'; + +@Injectable() +class SomeService { + navigationFinish$ = this.router.events.pipe( + filter( + event => + event instanceof NavigationEnd || + event instanceof NavigationError || + event instanceof NavigationCancel, + ), + ); + /* Observable */ + + constructor(private router: Router) {} +} +``` + +However, `RouterEvents` makes filtering router events easier. + +```js +import { RouterEvents } from '@abp/ng.core'; + +@Injectable() +class SomeService { + navigationFinish$ = this.routerEvents.getNavigationEvents('End', 'Error', 'Cancel'); + /* Observable */ + + constructor(private routerEvents: RouterEvents) {} +} +``` + +`RouterEvents` also delivers improved type-safety. In the example above, `navigationFinish$` has inferred type of `Observable` whereas it would have `Observable` when router events are filtered directly. + + + + +## Usage + +You do not have to provide `RouterEvents` at the module or component level, because it is already **provided in root**. You can inject and start using it immediately in your components. + + +### How to Get Specific Navigation Events + +You can use `getNavigationEvents` to get a stream of navigation events matching given event keys. + +```js +import { RouterEvents } from '@abp/ng.core'; +import { merge } from 'rxjs'; +import { mapTo } from 'rxjs/operators'; + +@Injectable() +class SomeService { + navigationStart$ = this.routerEvents.getNavigationEvents('Start'); + /* Observable */ + + navigationFinish$ = this.routerEvents.getNavigationEvents('End', 'Error', 'Cancel'); + /* Observable */ + + loading$ = merge( + this.navigationStart$.pipe(mapTo(true)), + this.navigationFinish$.pipe(mapTo(false)), + ); + /* Observable */ + + constructor(private routerEvents: RouterEvents) {} +} +``` + + +### How to Get All Navigation Events + +You can use `getAllNavigationEvents` to get a stream of all navigation events without passing any keys. + +```js +import { RouterEvents, NavigationStart } from '@abp/ng.core'; +import { map } from 'rxjs/operators'; + +@Injectable() +class SomeService { + navigationEvent$ = this.routerEvents.getAllNavigationEvents(); + /* Observable */ + + loading$ = this.navigationEvent$.pipe( + map(event => event instanceof NavigationStart), + ); + /* Observable */ + + constructor(private routerEvents: RouterEvents) {} +} +``` + + +### How to Get Specific Router Events + +You can use `getEvents` to get a stream of router events matching given event constructors. + +```js +import { RouterEvents } from '@abp/ng.core'; +import { ActivationEnd, ChildActivationEnd } from '@angular/router'; + +@Injectable() +class SomeService { + moduleActivation$ = this.routerEvents.getEvents(ActivationEnd, ChildActivationEnd); + /* Observable */ + + constructor(private routerEvents: RouterEvents) {} +} +``` + + +### How to Get All Router Events + +You can use `getEvents` to get a stream of all router events without passing any event constructors. This is nothing different from accessing `events` property of `Router` and is added to the service just for convenience. + +```js +import { RouterEvents } from '@abp/ng.core'; +import { ActivationEnd, ChildActivationEnd } from '@angular/router'; + +@Injectable() +class SomeService { + routerEvent$ = this.routerEvents.getAllEvents(); + /* Observable */ + + constructor(private routerEvents: RouterEvents) {} +} +``` + diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 06594f8e7e..7fd7762ad4 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -807,6 +807,10 @@ "text": "Easy *ngFor trackBy", "path": "UI/Angular/Track-By-Service.md" }, + { + "text": "Router Events", + "path": "UI/Angular/Router-Events.md" + }, { "text": "Inserting Scripts & Styles to DOM", "path": "UI/Angular/Dom-Insertion-Service.md" From 36eb7f9467bec6932c2bb3bb11ea044bba0fd7fd Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 29 Jan 2021 23:45:43 +0300 Subject: [PATCH 244/309] use RouterEvents instead of NavigationEvents --- .../src/lib/components/breadcrumb/breadcrumb.component.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts index 441dc33ec8..65c3c0a0af 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts @@ -1,7 +1,7 @@ import { ABP, getRoutePath, - NavigationEvents, + RouterEvents, RoutesService, SubscriptionService, TreeNode, @@ -25,12 +25,12 @@ export class BreadcrumbComponent implements OnInit { private router: Router, private routes: RoutesService, private subscription: SubscriptionService, - private navigationEvents: NavigationEvents, + private routerEvents: RouterEvents, ) {} ngOnInit(): void { this.subscription.addOne( - this.navigationEvents.getOneOf('End').pipe( + this.routerEvents.getNavigationEvents('End').pipe( // tslint:disable-next-line:deprecation startWith(null), map(() => this.routes.search({ path: getRoutePath(this.router) })), From 37f78fff6b715c2c3de88ed33cde4dff322ccea7 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Sun, 31 Jan 2021 01:32:05 +0000 Subject: [PATCH 245/309] Fix MongoDbRepository DeleteAsync and DeleteManyAsync not setting audit properties or triggering events --- .../Repositories/MongoDB/MongoDbRepository.cs | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index fc520bce81..1495249802 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -277,15 +277,16 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool autoSave = false, CancellationToken cancellationToken = default) { - await ApplyAbpConceptsForDeletedEntityAsync(entity); - var oldConcurrencyStamp = SetNewConcurrencyStamp(entity); - var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); var collection = dbContext.Collection(); - if (entity is ISoftDelete softDeleteEntity && !IsHardDeleted(entity)) + var oldConcurrencyStamp = SetNewConcurrencyStamp(entity); + + if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity)) && !IsHardDeleted(entity)) { - softDeleteEntity.IsDeleted = true; + ((ISoftDelete)entity).IsDeleted = true; + await ApplyAbpConceptsForDeletedEntityAsync(entity); + ReplaceOneResult result; if (dbContext.SessionHandle != null) @@ -313,6 +314,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB } else { + await ApplyAbpConceptsForDeletedEntityAsync(entity); + DeleteResult result; if (dbContext.SessionHandle != null) @@ -343,22 +346,23 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool autoSave = false, CancellationToken cancellationToken = default) { - var softDeletedEntities = new List(); + var softDeletedEntities = new List<(TEntity Entity, string ConcurrencyStamp)>(); var hardDeletedEntities = new List(); foreach (var entity in entities) { - await ApplyAbpConceptsForDeletedEntityAsync(entity); - SetNewConcurrencyStamp(entity); - if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity)) && !IsHardDeleted(entity)) { - softDeletedEntities.Add(entity); + ((ISoftDelete)entity).IsDeleted = true; + + softDeletedEntities.Add((entity, SetNewConcurrencyStamp(entity))); } else { hardDeletedEntities.Add(entity); } + + await ApplyAbpConceptsForDeletedEntityAsync(entity); } var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); @@ -372,26 +376,23 @@ namespace Volo.Abp.Domain.Repositories.MongoDB if (softDeletedEntities.Count > 0) { - UpdateResult updateResult; - var softDeleteEntitiesCount = softDeletedEntities.Count; + BulkWriteResult updateResult; + + List> replaceRequests = new List>( + softDeletedEntities.Select(entity => new ReplaceOneModel( + CreateEntityFilter(entity.Entity, true, entity.ConcurrencyStamp), entity.Entity)) + ); if (dbContext.SessionHandle != null) { - updateResult = await collection.UpdateManyAsync( - dbContext.SessionHandle, - CreateEntitiesFilter(softDeletedEntities), - Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true) - ); + updateResult = await collection.BulkWriteAsync(dbContext.SessionHandle, replaceRequests, cancellationToken: cancellationToken); } else { - updateResult = await collection.UpdateManyAsync( - CreateEntitiesFilter(softDeletedEntities), - Builders.Update.Set(x => ((ISoftDelete)x).IsDeleted, true) - ); + updateResult = await collection.BulkWriteAsync(replaceRequests, cancellationToken: cancellationToken); } - if (updateResult.MatchedCount < softDeleteEntitiesCount) + if (updateResult.MatchedCount < softDeletedEntities.Count) { ThrowOptimisticConcurrencyException(); } @@ -407,13 +408,13 @@ namespace Volo.Abp.Domain.Repositories.MongoDB deleteResult = await collection.DeleteManyAsync( dbContext.SessionHandle, CreateEntitiesFilter(hardDeletedEntities) - ); + ); } else { deleteResult = await collection.DeleteManyAsync( CreateEntitiesFilter(hardDeletedEntities) - ); + ); } if (deleteResult.DeletedCount < hardDeletedEntitiesCount) @@ -780,9 +781,10 @@ namespace Volo.Abp.Domain.Repositories.MongoDB return RepositoryFilterer.CreateEntityFilter(entity, withConcurrencyStamp, concurrencyStamp); } + // todo: This method should consider concurrencyStamp protected override FilterDefinition CreateEntitiesFilter(IEnumerable entities, bool withConcurrencyStamp = false) { - return RepositoryFilterer.CreateEntitiesFilter(entities, withConcurrencyStamp); + return RepositoryFilterer.CreateEntitiesFilter(entities); } } } From 2f69058e67f3bde89e966278aa8fd1071c35cc37 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Sun, 31 Jan 2021 01:33:20 +0000 Subject: [PATCH 246/309] Add additional DeleteManyAsync soft-delete test --- .../Abp/TestApp/Testing/SoftDelete_Tests.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/SoftDelete_Tests.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/SoftDelete_Tests.cs index b8618fd6a3..4b313d2127 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/SoftDelete_Tests.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/SoftDelete_Tests.cs @@ -56,6 +56,23 @@ namespace Volo.Abp.TestApp.Testing douglas.DeletionTime.ShouldNotBeNull(); } } + + [Fact] + public async Task Should_Cancel_Deletion_For_Soft_Delete_Many_Entities_ById() + { + await PersonRepository.DeleteManyAsync(new []{ TestDataBuilder.UserDouglasId }); + + var douglas = await PersonRepository.FindAsync(TestDataBuilder.UserDouglasId); + douglas.ShouldBeNull(); + + using (DataFilter.Disable()) + { + douglas = await PersonRepository.FindAsync(TestDataBuilder.UserDouglasId); + douglas.ShouldNotBeNull(); + douglas.IsDeleted.ShouldBeTrue(); + douglas.DeletionTime.ShouldNotBeNull(); + } + } [Fact] public async Task Should_Handle_Deletion_On_Update_For_Soft_Delete_Entities() From 6c0ee78d14462eb9aa8f63ac04ebe1002d8a54a6 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Sun, 31 Jan 2021 01:55:45 +0000 Subject: [PATCH 247/309] Update Repository DeleteAsync and DeleteManyAsync methods * Add RepositoryBase.DeleteManyAsync(predicate) * Call DeleteManyAsync(predicate) in concrete DeleteAsync(predicate) implementations when possible Requires this PR for tests to pass: https://github.com/abpframework/abp/pull/7542 --- .../Abp/Domain/Repositories/RepositoryBase.cs | 6 +++++ .../EntityFrameworkCore/EfCoreRepository.cs | 5 +--- .../MemoryDb/MemoryDbRepository.cs | 23 ++++++++----------- .../Repositories/MongoDB/MongoDbRepository.cs | 5 +--- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs index 0b32d54d45..d1bf2aa754 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs @@ -85,6 +85,12 @@ namespace Volo.Abp.Domain.Repositories public abstract Task DeleteAsync(Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default); + public virtual Task DeleteManyAsync( + Expression> predicate, + bool autoSave = false, + CancellationToken cancellationToken = default) + => DeleteAsync(predicate, autoSave, cancellationToken); + protected virtual TQueryable ApplyDataFilters(TQueryable query) where TQueryable : IQueryable { diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs index 055c9c2de9..d673ff2c28 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs @@ -289,10 +289,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore .Where(predicate) .ToListAsync(GetCancellationToken(cancellationToken)); - foreach (var entity in entities) - { - dbSet.Remove(entity); - } + await DeleteManyAsync(entities, autoSave, cancellationToken); if (autoSave) { diff --git a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs index 8ab6753de3..bb7d64bcc1 100644 --- a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs +++ b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs @@ -184,19 +184,6 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb return (await GetQueryableAsync()).Where(predicate).SingleOrDefault(); } - public override async Task DeleteAsync( - Expression> predicate, - bool autoSave = false, - CancellationToken cancellationToken = default) - { - var entities = (await GetQueryableAsync()).Where(predicate).ToList(); - - foreach (var entity in entities) - { - await DeleteAsync(entity, autoSave, cancellationToken); - } - } - public override async Task InsertAsync( TEntity entity, bool autoSave = false, @@ -251,6 +238,16 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb } } + public override async Task DeleteAsync( + Expression> predicate, + bool autoSave = false, + CancellationToken cancellationToken = default) + { + var entities = (await GetQueryableAsync()).Where(predicate).ToList(); + + await DeleteManyAsync(entities, autoSave, cancellationToken); + } + public override async Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) { return (await GetQueryableAsync()).ToList(); diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index 1495249802..efdd0a8991 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -463,10 +463,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB .Where(predicate) .ToListAsync(cancellationToken); - foreach (var entity in entities) - { - await DeleteAsync(entity, autoSave, cancellationToken); - } + await DeleteManyAsync(entities, autoSave, cancellationToken); } [Obsolete("Use GetQueryableAsync method.")] From bf5c64e768c20af27b1aec52030ff1cfb62120b0 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Sun, 31 Jan 2021 02:35:56 +0000 Subject: [PATCH 248/309] Add IRepository.DeleteManyAsync declaration --- .../Abp/Domain/Repositories/IRepository.cs | 23 +++++++++++++++---- .../Abp/Domain/Repositories/RepositoryBase.cs | 5 +--- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs index 3bda51bd2e..ec79597396 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs @@ -20,8 +20,10 @@ namespace Volo.Abp.Domain.Repositories { /// /// Get a single entity by the given . - /// It returns null if no entity with the given . + /// + /// It returns null if there is no entity with the given . /// It throws if there are multiple entities with the given . + /// /// /// A condition to find the entity /// Set true to include all children of this entity @@ -34,8 +36,10 @@ namespace Volo.Abp.Domain.Repositories /// /// Get a single entity by the given . + /// /// It throws if there is no entity with the given . /// It throws if there are multiple entities with the given . + /// /// /// A condition to filter entities /// Set true to include all children of this entity @@ -47,10 +51,11 @@ namespace Volo.Abp.Domain.Repositories ); /// - /// Deletes many entities by function. - /// Notice that: All entities fits to given predicate are retrieved and deleted. - /// This may cause major performance problems if there are too many entities with - /// given predicate. + /// Deletes many entities by the given . + /// + /// Please note: This may cause major performance problems if there are too many entities returned for a + /// given predicate and the database provider doesn't have a way to efficiently delete many entities. + /// /// /// A condition to filter entities /// @@ -63,6 +68,14 @@ namespace Volo.Abp.Domain.Repositories bool autoSave = false, CancellationToken cancellationToken = default ); + + /// + /// This is an alias for + Task DeleteManyAsync( + [NotNull] Expression> predicate, + bool autoSave = false, + CancellationToken cancellationToken = default + ); } public interface IRepository : IRepository, IReadOnlyRepository, IBasicRepository diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs index d1bf2aa754..5ba522ef00 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs @@ -85,10 +85,7 @@ namespace Volo.Abp.Domain.Repositories public abstract Task DeleteAsync(Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default); - public virtual Task DeleteManyAsync( - Expression> predicate, - bool autoSave = false, - CancellationToken cancellationToken = default) + public virtual Task DeleteManyAsync(Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default) => DeleteAsync(predicate, autoSave, cancellationToken); protected virtual TQueryable ApplyDataFilters(TQueryable query) From ad653792cc95c31922903650e806743a89525d6b Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 1 Feb 2021 10:11:52 +0800 Subject: [PATCH 249/309] Update Localization_Tests of TenantManagement module. Resolve #7541 --- .../TenantManagement/Localization_Tests.cs | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Localization_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Localization_Tests.cs index 2718512641..4a856b958c 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Localization_Tests.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Localization_Tests.cs @@ -1,5 +1,7 @@ -using Microsoft.Extensions.Localization; +using System.Globalization; +using Microsoft.Extensions.Localization; using Shouldly; +using Volo.Abp.Localization; using Volo.Abp.TenantManagement.Localization; using Xunit; @@ -17,8 +19,23 @@ namespace Volo.Abp.TenantManagement [Fact] public void Test() { - _stringLocalizer["TenantDeletionConfirmationMessage"].Value - .ShouldBe("Tenant '{0}' will be deleted. Do you confirm that?"); + using (CultureHelper.Use("en")) + { + _stringLocalizer["TenantDeletionConfirmationMessage"].Value + .ShouldBe("Tenant '{0}' will be deleted. Do you confirm that?"); + } + + using (CultureHelper.Use("en-gb")) + { + _stringLocalizer["TenantDeletionConfirmationMessage"].Value + .ShouldBe("Tenant '{0}' will be deleted. Is that OK?"); + } + + using (CultureHelper.Use("tr")) + { + _stringLocalizer["TenantDeletionConfirmationMessage"].Value + .ShouldBe("'{0}' isimli müşteri silinecektir. Onaylıyor musunuz?"); + } } } } From a9bb209636ba606b39ab37939e1bb70c45358f45 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 1 Feb 2021 11:22:05 +0800 Subject: [PATCH 250/309] Change the way we add Microsoft.EntityFrameworkCore.Tools --- .../MyCompanyName.MyProjectName.DbMigrator.csproj | 1 - ...me.MyProjectName.EntityFrameworkCore.DbMigrations.csproj | 6 ++++-- .../MyCompanyName.MyProjectName.HttpApi.Host.csproj | 1 - .../MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj | 1 - .../MyCompanyName.MyProjectName.IdentityServer.csproj | 1 - .../MyCompanyName.MyProjectName.Web.csproj | 1 - .../MyCompanyName.MyProjectName.IdentityServer.csproj | 5 ++++- .../MyCompanyName.MyProjectName.Web.Unified.csproj | 5 ++++- 8 files changed, 12 insertions(+), 9 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj index fd96bfd920..471cab6cda 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj @@ -23,7 +23,6 @@ - diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj index f13bcef4d1..a8938a59f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj @@ -12,8 +12,10 @@ - - + + all + runtime; build; native; contentfiles; analyzers + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index 6e3ccfa0ff..3f2e3a1bd0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -14,7 +14,6 @@ - diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index d374c7feb6..196166e966 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -13,7 +13,6 @@ - diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 333268deef..7c512b79db 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -35,7 +35,6 @@ - diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index fce2337c45..d0cc6fa611 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -34,7 +34,6 @@ - diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 059027f920..11905455a4 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -11,7 +11,10 @@ - + + all + runtime; build; native; contentfiles; analyzers + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index 51b82b4896..be27176f6c 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -13,7 +13,10 @@ - + + all + runtime; build; native; contentfiles; analyzers + From eb4321880f8ad4d95c65333c50e40d3045058af7 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 1 Feb 2021 11:23:08 +0800 Subject: [PATCH 251/309] Add RemoveMany method --- .../StackExchangeRedis/AbpRedisCache.cs | 19 +++ .../Volo/Abp/Caching/DistributedCache.cs | 126 ++++++++++++++++-- .../Caching/ICacheSupportsMultipleItems.cs | 12 +- .../Volo/Abp/Caching/IDistributedCache.cs | 27 ++++ .../Abp/Caching/TestMemoryDistributedCache.cs | 16 +++ 5 files changed, 185 insertions(+), 15 deletions(-) diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs index dbf04a1d80..fc45ccd05d 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs @@ -148,6 +148,25 @@ namespace Volo.Abp.Caching.StackExchangeRedis await GetAndRefreshManyAsync(keys, false, token); } + public void RemoveMany(IEnumerable keys) + { + keys = Check.NotNull(keys, nameof(keys)); + + Connect(); + + RedisDatabase.KeyDelete(keys.Select(key => (RedisKey)(Instance + key)).ToArray()); + } + + public async Task RemoveManyAsync(IEnumerable keys, CancellationToken token = default) + { + keys = Check.NotNull(keys, nameof(keys)); + + token.ThrowIfCancellationRequested(); + await ConnectAsync(token); + + await RedisDatabase.KeyDeleteAsync(keys.Select(key => (RedisKey)(Instance + key)).ToArray()); + } + protected virtual byte[][] GetAndRefreshMany( IEnumerable keys, bool getData) diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs index 2ebe9b2fb4..5c9a876f4b 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs @@ -1284,28 +1284,128 @@ namespace Volo.Abp.Caching } } - protected virtual KeyValuePair[] GetOrAddMany( - TCacheKey[] keys, - KeyValuePair[] values, - KeyValuePair[] missingValues) + public void RemoveMany( + IEnumerable keys, + bool? hideErrors = null, + bool considerUow = false) { - var missingValuesIndex = new List(); - for (var i = 0; i < keys.Length; i++) + var keyArray = keys.ToArray(); + + if (Cache is ICacheSupportsMultipleItems cacheSupportsMultipleItems) { - if (values[i].Value == null) + void RemoveRealCache() { - missingValuesIndex.Add(i); + hideErrors = hideErrors ?? _distributedCacheOption.HideErrors; + + try + { + cacheSupportsMultipleItems.RemoveMany( + keyArray.Select(NormalizeKey) + ); + } + catch (Exception ex) + { + if (hideErrors == true) + { + HandleException(ex); + return; + } + + throw; + } } - } - var valueQueue = new Queue>(missingValues); + if (ShouldConsiderUow(considerUow)) + { + var uowCache = GetUnitOfWorkCache(); - foreach (var index in missingValuesIndex) + foreach (var key in keyArray) + { + if (uowCache.TryGetValue(key, out _)) + { + uowCache[key].RemoveValue(); + } + } + + // ReSharper disable once PossibleNullReferenceException + UnitOfWorkManager.Current.OnCompleted(() => + { + RemoveRealCache(); + return Task.CompletedTask; + }); + } + else + { + RemoveRealCache(); + } + } + else { - values[index] = valueQueue.Dequeue(); + foreach (var key in keyArray) + { + Remove(key, hideErrors, considerUow); + } } + } - return values; + public async Task RemoveManyAsync( + IEnumerable keys, + bool? hideErrors = null, + bool considerUow = false, + CancellationToken token = default) + { + var keyArray = keys.ToArray(); + + if (Cache is ICacheSupportsMultipleItems cacheSupportsMultipleItems) + { + async Task RemoveRealCache() + { + hideErrors = hideErrors ?? _distributedCacheOption.HideErrors; + + try + { + await cacheSupportsMultipleItems.RemoveManyAsync( + keyArray.Select(NormalizeKey), token); + } + catch (Exception ex) + { + if (hideErrors == true) + { + await HandleExceptionAsync(ex); + return; + } + + throw; + } + } + + if (ShouldConsiderUow(considerUow)) + { + var uowCache = GetUnitOfWorkCache(); + + foreach (var key in keyArray) + { + if (uowCache.TryGetValue(key, out _)) + { + uowCache[key].RemoveValue(); + } + } + + // ReSharper disable once PossibleNullReferenceException + UnitOfWorkManager.Current.OnCompleted(RemoveRealCache); + } + else + { + await RemoveRealCache(); + } + } + else + { + foreach (var key in keyArray) + { + await RemoveAsync(key, hideErrors, considerUow, token); + } + } } protected virtual void HandleException(Exception ex) diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs index ec73a159a4..857385699d 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/ICacheSupportsMultipleItems.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; @@ -36,5 +35,14 @@ namespace Volo.Abp.Caching IEnumerable keys, CancellationToken token = default ); + + void RemoveMany( + IEnumerable keys + ); + + Task RemoveManyAsync( + IEnumerable keys, + CancellationToken token = default + ); } } diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs index d8510efe43..1d64520898 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs @@ -306,5 +306,32 @@ namespace Volo.Abp.Caching bool considerUow = false, CancellationToken token = default ); + + /// + /// Removes the cache items for given keys from cache. + /// + /// The keys of cached items to be retrieved from the cache. + /// Indicates to throw or hide the exceptions for the distributed cache. + /// This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. + void RemoveMany( + IEnumerable keys, + bool? hideErrors = null, + bool considerUow = false + ); + + /// + /// Removes the cache items for given keys from cache. + /// + /// The keys of cached items to be retrieved from the cache. + /// Indicates to throw or hide the exceptions for the distributed cache. + /// This will store the cache in the current unit of work until the end of the current unit of work does not really affect the cache. + /// The for the task. + /// The indicating that the operation is asynchronous. + Task RemoveManyAsync( + IEnumerable keys, + bool? hideErrors = null, + bool considerUow = false, + CancellationToken token = default + ); } } diff --git a/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs b/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs index 4490a50fd3..5df5b488d9 100644 --- a/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs +++ b/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/TestMemoryDistributedCache.cs @@ -73,5 +73,21 @@ namespace Volo.Abp.Caching await RefreshAsync(key, token); } } + + public void RemoveMany(IEnumerable keys) + { + foreach (var key in keys) + { + Remove(key); + } + } + + public async Task RemoveManyAsync(IEnumerable keys, CancellationToken token = default) + { + foreach (var key in keys) + { + await RemoveAsync(key, token); + } + } } } From 68983ec4e9db5ba7f5159eb73356aa2a5a4ab062 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 1 Feb 2021 14:52:23 +0800 Subject: [PATCH 252/309] Add unit tests --- .../Volo/Abp/Caching/DistributedCache.cs | 4 +- .../Volo/Abp/Caching/IDistributedCache.cs | 4 +- .../Abp/Caching/DistributedCache_Tests.cs | 235 ++++++++++++++++++ 3 files changed, 239 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs index 5c9a876f4b..1337206464 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs @@ -529,7 +529,7 @@ namespace Volo.Abp.Caching public KeyValuePair[] GetOrAddMany( IEnumerable keys, - Func, IEnumerable>> factory, + Func, List>> factory, Func optionsFactory = null, bool? hideErrors = null, bool considerUow = false) @@ -626,7 +626,7 @@ namespace Volo.Abp.Caching public async Task[]> GetOrAddManyAsync( IEnumerable keys, - Func, Task>>> factory, + Func, Task>>> factory, Func optionsFactory = null, bool? hideErrors = null, bool considerUow = false, diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs index 1d64520898..3806276969 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs @@ -140,7 +140,7 @@ namespace Volo.Abp.Caching /// The cache items. KeyValuePair[] GetOrAddMany( IEnumerable keys, - Func, IEnumerable>> factory, + Func, List>> factory, Func optionsFactory = null, bool? hideErrors = null, bool considerUow = false @@ -159,7 +159,7 @@ namespace Volo.Abp.Caching /// The cache items. Task[]> GetOrAddManyAsync( IEnumerable keys, - Func, Task>>> factory, + Func, Task>>> factory, Func optionsFactory = null, bool? hideErrors = null, bool considerUow = false, diff --git a/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/DistributedCache_Tests.cs b/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/DistributedCache_Tests.cs index 32876c08fe..c1d5af64ef 100644 --- a/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/DistributedCache_Tests.cs +++ b/framework/test/Volo.Abp.Caching.Tests/Volo/Abp/Caching/DistributedCache_Tests.cs @@ -712,5 +712,240 @@ namespace Volo.Abp.Caching (await personCache.GetAsync("john")).Name.ShouldBe("John Nash"); (await personCache.GetAsync("baris")).ShouldBeNull(); } + + [Fact] + public async Task Should_Get_And_Add_Multiple_Items_Async() + { + var testkey = "testkey"; + var testkey2 = "testkey2"; + + var testkey3 = new[] {testkey, testkey2}; + var personCache = GetRequiredService>(); + + await personCache.SetAsync(testkey, new PersonCacheItem("john")); + + var cacheValue = await personCache.GetManyAsync(testkey3); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.ShouldBeNull(); + + cacheValue = await personCache.GetOrAddManyAsync(testkey3, (missingKeys) => + { + var missingKeyArray = missingKeys.ToArray(); + missingKeyArray.Length.ShouldBe(1); + missingKeyArray[0].ShouldBe(testkey2); + + return Task.FromResult(new List> + { + new(testkey2, new PersonCacheItem("jack")) + }); + }); + + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + cacheValue = await personCache.GetManyAsync(testkey3); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + } + + [Fact] + public async Task Cache_Should_Only_Available_In_Uow_For_GetOrAddManyAsync() + { + var testkey = "testkey"; + var testkey2 = "testkey2"; + + var testkey3 = new[] {testkey, testkey2}; + + using (var uow = GetRequiredService().Begin()) + { + var personCache = GetRequiredService>(); + + var cacheValue = await personCache.GetOrAddManyAsync(testkey3, (missingKeys) => Task.FromResult(new List> + { + new(testkey, new PersonCacheItem("john")), + new(testkey2, new PersonCacheItem("jack")), + }), considerUow: true); + + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: true); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + + uow.OnCompleted(async () => + { + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.ShouldNotBeNull(); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + }); + + await uow.CompleteAsync(); + } + } + + [Fact] + public async Task Cache_Should_Rollback_With_Uow_For_GetOrAddManyAsync() + { + var testkey = "testkey"; + var testkey2 = "testkey2"; + + var testkey3 = new[] {testkey, testkey2}; + + var personCache = GetRequiredService>(); + + var cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + + using (var uow = GetRequiredService().Begin()) + { + cacheValue = await personCache.GetOrAddManyAsync(testkey3, (missingKeys) => Task.FromResult(new List> + { + new(testkey, new PersonCacheItem("john")), + new(testkey2, new PersonCacheItem("jack")), + }), considerUow: true); + + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: true); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + } + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + } + + [Fact] + public async Task Should_Remove_Multiple_Items_Async() + { + var testkey = "testkey"; + var testkey2 = "testkey2"; + var testkey3 = new[] {testkey, testkey2}; + + var personCache = GetRequiredService>(); + + await personCache.SetManyAsync(new List> + { + new(testkey, new PersonCacheItem("john")), + new(testkey2, new PersonCacheItem("jack")) + }); + + await personCache.RemoveManyAsync(testkey3); + + var cacheValue = await personCache.GetManyAsync(testkey3); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + } + + [Fact] + public async Task Cache_Should_Only_Available_In_Uow_For_RemoveManyAsync() + { + var testkey = "testkey"; + var testkey2 = "testkey2"; + var testkey3 = new[] {testkey, testkey2}; + var personCache = GetRequiredService>(); + + var cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + + using (var uow = GetRequiredService().Begin()) + { + await personCache.SetManyAsync(new List> + { + new(testkey, new PersonCacheItem("john")), + new(testkey2, new PersonCacheItem("jack")) + }); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: true); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + await personCache.RemoveManyAsync(testkey3, considerUow: true); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + uow.OnCompleted(async () => + { + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.ShouldNotBeNull(); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + }); + + await uow.CompleteAsync(); + } + + } + + [Fact] + public async Task Cache_Should_Rollback_With_Uow_For_RemoveManyAsync() + { + var testkey = "testkey"; + var testkey2 = "testkey2"; + var testkey3 = new[] {testkey, testkey2}; + var personCache = GetRequiredService>(); + + var cacheValue = await personCache.GetManyAsync(testkey3, considerUow: false); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + + using (var uow = GetRequiredService().Begin()) + { + await personCache.SetManyAsync(new List> + { + new(testkey, new PersonCacheItem("john")), + new(testkey2, new PersonCacheItem("jack")) + }, considerUow: true); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: true); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.Name.ShouldBe("john"); + cacheValue[1].Value.Name.ShouldBe("jack"); + + await personCache.RemoveManyAsync(testkey3, considerUow: true); + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: true); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + } + + cacheValue = await personCache.GetManyAsync(testkey3, considerUow: true); + cacheValue.Length.ShouldBe(2); + cacheValue[0].Value.ShouldBeNull(); + cacheValue[1].Value.ShouldBeNull(); + } } } From adebfb958d8d5ea3b744452b866f09d4ad094974 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 1 Feb 2021 15:15:42 +0800 Subject: [PATCH 253/309] Use eager loading for GetAssemblies of FolderPlugInSource. https://github.com/abpframework/abp/pull/7538 --- .../Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs index b0544d0338..eb54a19900 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.Modularity.PlugIns public Func Filter { get; set; } public FolderPlugInSource( - [NotNull] string folder, + [NotNull] string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly) { Check.NotNull(folder, nameof(folder)); @@ -52,7 +52,7 @@ namespace Volo.Abp.Modularity.PlugIns return modules.ToArray(); } - private IEnumerable GetAssemblies() + private List GetAssemblies() { var assemblyFiles = AssemblyHelper.GetAssemblyFiles(Folder, SearchOption); @@ -61,7 +61,7 @@ namespace Volo.Abp.Modularity.PlugIns assemblyFiles = assemblyFiles.Where(Filter); } - return assemblyFiles.Select(AssemblyLoadContext.Default.LoadFromAssemblyPath); + return assemblyFiles.Select(AssemblyLoadContext.Default.LoadFromAssemblyPath).ToList(); } } -} \ No newline at end of file +} From 5dfe8519d0bfa355d74b02989370e4ad4074bd9a Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 1 Feb 2021 15:37:03 +0800 Subject: [PATCH 254/309] Update cache document --- docs/en/Caching.md | 7 +++++-- docs/zh-Hans/Caching.md | 12 ++++++++++++ docs/zh-Hans/Redis-Cache.md | 1 + .../Volo/Abp/Caching/IDistributedCache.cs | 4 ++-- 4 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 docs/zh-Hans/Redis-Cache.md diff --git a/docs/en/Caching.md b/docs/en/Caching.md index 042f13ffe0..7dbf02d875 100644 --- a/docs/en/Caching.md +++ b/docs/en/Caching.md @@ -242,12 +242,15 @@ In addition, all of the `IDistributedCache` (and `IDistributedCache< ## Batch Operations -ABP's distributed cache interfaces provide methods to perform batch get/set methods those improves the performance when you want to get or set multiple cache items in a single method call. +ABP's distributed cache interfaces provide methods to perform batch methods those improves the performance when you want to batch operation multiple cache items in a single method call. * `SetManyAsync` and `SetMany` methods can be used to set multiple values to the cache. * `GetManyAsync` and `GetMany` methods can be used to retrieve multiple values from the cache. +* `GetOrAddManyAsync` and `GetOrAddMany` methods can be used to retrieve multiple values and set missing values from the cache +* `RefreshManyAsync` and `RefreshMany` methods can be used to resets the sliding expiration timeout of multiple values from the cache +* `RemoveManyAsync` and `RemoveMany` methods can be used to remove multiple values from the cache -> These are not standard methods of the ASP.NET Core caching. So, some providers may not support them. They are supported by the [ABP Redis Cache integration package](Redis-Cache.md). If the provider doesn't support, it fallbacks to `SetAsync` and `GetAsync` methods (called once for each item). +> These are not standard methods of the ASP.NET Core caching. So, some providers may not support them. They are supported by the [ABP Redis Cache integration package](Redis-Cache.md). If the provider doesn't support, it fallbacks to `SetAsync` and `GetAsync` ... methods (called once for each item). ## Advanced Topics diff --git a/docs/zh-Hans/Caching.md b/docs/zh-Hans/Caching.md index 0557ddcb4d..a75199ce47 100644 --- a/docs/zh-Hans/Caching.md +++ b/docs/zh-Hans/Caching.md @@ -192,6 +192,18 @@ public class BookService : ITransientDependency } ```` +## 批量操作 + +ABP的分布式缓存接口定义了以下批量操作方法,当你需要在一个方法中调用多次缓存操作时,这些方法可以提高性能 + +* `SetManyAsync` 和 `SetMany` 方法可以用来设置多个值. +* `GetManyAsync` 和 `GetMany` 方法可以用来从缓存中获取多个值. +* `GetOrAddManyAsync` 和 `GetOrAddMany` 方法可以用来从缓存中获取并添加缺少的值. +* `RefreshManyAsync` 和 `RefreshMany` 方法可以来用重置多个值的滚动过期时间. +* `RemoveManyAsync` 和 `RemoveMany` 方法呆以用来删除多个值. + +> 这些不是标准的ASP.NET Core缓存方法, 所以某些提供程序可能不支持. [ABP Redis集成包](Redis-Cache.md)实现了它们. 如果提供程序不支持,会回退到 `SetAsync` 和 `GetAsync` ... 方法(循环调用). + ### DistributedCacheOptions TODO \ No newline at end of file diff --git a/docs/zh-Hans/Redis-Cache.md b/docs/zh-Hans/Redis-Cache.md new file mode 100644 index 0000000000..cb82a640d5 --- /dev/null +++ b/docs/zh-Hans/Redis-Cache.md @@ -0,0 +1 @@ +TODO... \ No newline at end of file diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs index 3806276969..f8e76fd9dd 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/IDistributedCache.cs @@ -258,7 +258,7 @@ namespace Volo.Abp.Caching ); /// - /// Refreshes multiple cache items. + /// Refreshes the cache value of the given keys, and resets their sliding expiration timeout. /// Based on the implementation, this can be more efficient than setting multiple items individually. /// /// The keys of cached items to be retrieved from the cache. @@ -268,7 +268,7 @@ namespace Volo.Abp.Caching bool? hideErrors = null); /// - /// Refreshes multiple cache items. + /// Refreshes the cache value of the given keys, and resets their sliding expiration timeout. /// Based on the implementation, this can be more efficient than setting multiple items individually. /// /// The keys of cached items to be retrieved from the cache. From 18205a8935e6069c0cd3586846b3472b5f6e1406 Mon Sep 17 00:00:00 2001 From: enisn Date: Mon, 1 Feb 2021 12:29:01 +0300 Subject: [PATCH 255/309] CmsKit - Add missing Http method binding to TagDefinitions --- .../Volo/CmsKit/Admin/Tags/TagAdminController.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs index afc9a83fc8..4655c60bd6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs @@ -62,6 +62,8 @@ namespace Volo.CmsKit.Admin.Tags return TagAdminAppService.UpdateAsync(id, input); } + [HttpGet] + [Route("tag-definitions")] public Task> GetTagDefinitionsAsync() { return TagAdminAppService.GetTagDefinitionsAsync(); From e910950e847591a411f68f54cfc58d4163967d14 Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Mon, 1 Feb 2021 11:59:39 +0100 Subject: [PATCH 256/309] Update Blazorise 0.9.3-preview8 --- .../src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj | 6 +++--- .../MyCompanyName.MyProjectName.Blazor.csproj | 4 ++-- .../MyCompanyName.MyProjectName.Blazor.Host.csproj | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj index 9405337b89..3f41412a9e 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj +++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj @@ -12,9 +12,9 @@ - - - + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index 96a8f791ee..bdb87e04c7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj index 57625cfd81..b166dc8898 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj @@ -8,8 +8,8 @@ - - + + From 16cbf7c188cd22e566c8adf28825a154c7abbb25 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 1 Feb 2021 21:17:55 +0800 Subject: [PATCH 257/309] Update PostgreSQL connecting string. https://github.com/npgsql/npgsql/blob/058b52af600d88cb5dbbee16140812dd3fdd8f85/src/Npgsql/NpgsqlConnectionStringBuilder.cs#L786 https://github.com/npgsql/npgsql/blob/058b52af600d88cb5dbbee16140812dd3fdd8f85/src/Npgsql/NpgsqlConnectionStringBuilder.cs#L764 --- .../Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs index 32e09b3339..b0da7f9db0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.Cli.Commands.Services case DatabaseManagementSystem.MySQL: return "Server=localhost;Port=3306;Database=MyProjectName;Uid=root;Pwd=myPassword;"; case DatabaseManagementSystem.PostgreSQL: - return "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=MyProjectName;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;"; + return "Host=localhost;Port=5432;Database=MyProjectName;User ID=root;Password=myPassword;Pooling=true;MinimumPoolSize=0;MaximumPoolSize=100;Connection Lifetime=0;"; //case DatabaseManagementSystem.Oracle: case DatabaseManagementSystem.OracleDevart: return "Data Source=MyProjectName;Integrated Security=yes;"; From 7e366398d3738f80591467ac4c71bacafd816e01 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Mon, 1 Feb 2021 16:54:11 +0300 Subject: [PATCH 258/309] fix page routing. --- .../src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs | 6 ++---- .../Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index 8cb5644256..7833e6aa3e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -1,5 +1,4 @@ -using System.Linq; -using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AutoMapper; @@ -61,8 +60,7 @@ namespace Volo.CmsKit.Public.Web { if (GlobalFeatureManager.Instance.IsEnabled()) { - // TODO: Work on this route logic. Blocks some routes with this logic. - options.Conventions.AddPageRoute("/CmsKit/Pages/Index", "/{*pageUrl}"); + options.Conventions.AddPageRoute("/CmsKit/Pages/Index", @"/{pageUrl}"); } }); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml index 73c7637b01..c31edaaba8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml @@ -1,4 +1,4 @@ -@page "{*pageUrl}" +@page "{pageUrl}" @using Microsoft.AspNetCore.Mvc.Localization @using Volo.CmsKit.Localization @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages From 792af17439fd231f359d4fc34e161b5c9f3eb7df Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 1 Feb 2021 21:59:34 +0800 Subject: [PATCH 259/309] Insert the modal after the existing one. --- .../bootstrap/modal-manager.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js index a4d32550f8..75d080feda 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js @@ -39,7 +39,7 @@ $.validator.defaults.ignore = ''; //TODO: Would be better if we can apply only f var _$modal = null; var _$form = null; - var _modalId = 'Modal_' + (Math.floor((Math.random() * 1000000))) + new Date().getTime(); + var _modalId = 'Abp_Modal_' + (Math.floor((Math.random() * 1000000))) + new Date().getTime(); var _modalObject = null; var _publicApi = null; @@ -56,7 +56,12 @@ $.validator.defaults.ignore = ''; //TODO: Would be better if we can apply only f function _createContainer() { _removeContainer(); _$modalContainer = $('
    '); - $('body').prepend(_$modalContainer); + var existsModals = $('[id^="Abp_Modal_"]'); + if (existsModals.length) { + existsModals.last().after(_$modalContainer) + } else { + $('body').prepend(_$modalContainer); + } return _$modalContainer; } From d48e65d23ed912c1e554e4fb49ace48e4ac3e87b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 1 Feb 2021 20:46:43 +0300 Subject: [PATCH 260/309] Introduce ITenantDatabaseSchemaMigrator. --- .../NullTenantDatabaseSchemaMigrator.cs | 13 +++++++++++++ .../MultiTenancy/TenantDatabaseSchemaMigrator.cs | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs new file mode 100644 index 0000000000..7d5e76f11b --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs @@ -0,0 +1,13 @@ +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.MultiTenancy +{ + public class NullTenantDatabaseSchemaMigrator : ITenantDatabaseSchemaMigrator, ISingletonDependency + { + public Task MigrateAsync() + { + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs new file mode 100644 index 0000000000..e6fef5c427 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs @@ -0,0 +1,13 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.MultiTenancy +{ + public interface ITenantDatabaseSchemaMigrator + { + /// + /// Set Current Tenant before calling this method. + /// + /// + Task MigrateAsync(); + } +} From 8762284482449c85903c5fd40a10b9b82cb0474e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 1 Feb 2021 20:53:42 +0300 Subject: [PATCH 261/309] Added Volo.Abp.EventBus.Abstractions package. --- framework/Volo.Abp.sln | 7 +++++ .../FodyWeavers.xml | 3 ++ .../FodyWeavers.xsd | 30 +++++++++++++++++++ .../Volo.Abp.EventBus.Abstractions.csproj | 15 ++++++++++ .../AbpEventBusAbstractionsModule.cs | 9 ++++++ .../Volo/Abp/EventBus/EventNameAttribute.cs | 0 .../Abp/EventBus/GenericEventNameAttribute.cs | 0 .../Volo/Abp/EventBus/IEventNameProvider.cs | 0 .../Volo.Abp.EventBus.csproj | 2 +- .../Volo/Abp/EventBus/AbpEventBusModule.cs | 5 +++- nupkg/common.ps1 | 1 + 11 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xml create mode 100644 framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xsd create mode 100644 framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj create mode 100644 framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/Abstractions/AbpEventBusAbstractionsModule.cs rename framework/src/{Volo.Abp.EventBus => Volo.Abp.EventBus.Abstractions}/Volo/Abp/EventBus/EventNameAttribute.cs (100%) rename framework/src/{Volo.Abp.EventBus => Volo.Abp.EventBus.Abstractions}/Volo/Abp/EventBus/GenericEventNameAttribute.cs (100%) rename framework/src/{Volo.Abp.EventBus => Volo.Abp.EventBus.Abstractions}/Volo/Abp/EventBus/IEventNameProvider.cs (100%) diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 963472ada8..8c2670fa27 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -359,6 +359,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Json.Tests", "test EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Http.Tests", "test\Volo.Abp.Http.Tests\Volo.Abp.Http.Tests.csproj", "{A37BFEB5-7C57-4CDC-93B8-B5CE4BB9ACE1}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Abstractions", "src\Volo.Abp.EventBus.Abstractions\Volo.Abp.EventBus.Abstractions.csproj", "{8FDB3BF7-AD89-43F6-8DEB-C3E29B8801FE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1069,6 +1071,10 @@ Global {A37BFEB5-7C57-4CDC-93B8-B5CE4BB9ACE1}.Debug|Any CPU.Build.0 = Debug|Any CPU {A37BFEB5-7C57-4CDC-93B8-B5CE4BB9ACE1}.Release|Any CPU.ActiveCfg = Release|Any CPU {A37BFEB5-7C57-4CDC-93B8-B5CE4BB9ACE1}.Release|Any CPU.Build.0 = Release|Any CPU + {8FDB3BF7-AD89-43F6-8DEB-C3E29B8801FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FDB3BF7-AD89-43F6-8DEB-C3E29B8801FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FDB3BF7-AD89-43F6-8DEB-C3E29B8801FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FDB3BF7-AD89-43F6-8DEB-C3E29B8801FE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1250,6 +1256,7 @@ Global {DD9519E0-5A68-48DC-A051-7BF2AC922F3E} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {00D07595-993C-40FC-BD90-0DD6331414D3} = {447C8A77-E5F0-4538-8687-7383196D04EA} {A37BFEB5-7C57-4CDC-93B8-B5CE4BB9ACE1} = {447C8A77-E5F0-4538-8687-7383196D04EA} + {8FDB3BF7-AD89-43F6-8DEB-C3E29B8801FE} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xml b/framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xml new file mode 100644 index 0000000000..bc5a74a236 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + diff --git a/framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xsd b/framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Abstractions/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj b/framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj new file mode 100644 index 0000000000..ae0cef7f59 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj @@ -0,0 +1,15 @@ + + + + + + + netstandard2.0 + + + + + + + + diff --git a/framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/Abstractions/AbpEventBusAbstractionsModule.cs b/framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/Abstractions/AbpEventBusAbstractionsModule.cs new file mode 100644 index 0000000000..bb9d4585b9 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/Abstractions/AbpEventBusAbstractionsModule.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Modularity; + +namespace Volo.Abp.EventBus.Abstractions +{ + public class AbpEventBusAbstractionsModule : AbpModule + { + + } +} diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventNameAttribute.cs b/framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/EventNameAttribute.cs similarity index 100% rename from framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventNameAttribute.cs rename to framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/EventNameAttribute.cs diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/GenericEventNameAttribute.cs b/framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/GenericEventNameAttribute.cs similarity index 100% rename from framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/GenericEventNameAttribute.cs rename to framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/GenericEventNameAttribute.cs diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IEventNameProvider.cs b/framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/IEventNameProvider.cs similarity index 100% rename from framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IEventNameProvider.cs rename to framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/EventBus/IEventNameProvider.cs diff --git a/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj b/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj index a1799c6673..221454bed3 100644 --- a/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj +++ b/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/AbpEventBusModule.cs b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/AbpEventBusModule.cs index 81c3393a50..eb9c17b129 100644 --- a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/AbpEventBusModule.cs +++ b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/AbpEventBusModule.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; +using Volo.Abp.EventBus.Abstractions; using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Local; using Volo.Abp.Modularity; @@ -9,7 +10,9 @@ using Volo.Abp.Reflection; namespace Volo.Abp.EventBus { - [DependsOn(typeof(AbpMultiTenancyModule))] + [DependsOn( + typeof(AbpEventBusAbstractionsModule), + typeof(AbpMultiTenancyModule))] public class AbpEventBusModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 29249ef3f4..16f13513ee 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -91,6 +91,7 @@ $projects = ( "framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql", "framework/src/Volo.Abp.EntityFrameworkCore.Sqlite", "framework/src/Volo.Abp.EntityFrameworkCore.SqlServer", + "framework/src/Volo.Abp.EventBus.Abstractions", "framework/src/Volo.Abp.EventBus", "framework/src/Volo.Abp.EventBus.RabbitMQ", "framework/src/Volo.Abp.EventBus.Kafka", From 6d50fc998d4ed8238fa5495c6f2299a22a579f81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 1 Feb 2021 20:54:25 +0300 Subject: [PATCH 262/309] Define TenantCreatedEto --- .../Volo.Abp.MultiTenancy.csproj | 1 + .../Volo/Abp/MultiTenancy/AbpMultiTenancyModule.cs | 4 +++- .../Volo/Abp/MultiTenancy/TenantCreatedEto.cs | 13 +++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj b/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj index 951712c7f0..344dbfdec0 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj @@ -16,6 +16,7 @@ + diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AbpMultiTenancyModule.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AbpMultiTenancyModule.cs index 9dc64ef7f8..c51daf99aa 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AbpMultiTenancyModule.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AbpMultiTenancyModule.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Data; +using Volo.Abp.EventBus.Abstractions; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy.ConfigurationStore; using Volo.Abp.Security; @@ -10,7 +11,8 @@ namespace Volo.Abp.MultiTenancy [DependsOn( typeof(AbpDataModule), - typeof(AbpSecurityModule) + typeof(AbpSecurityModule), + typeof(AbpEventBusAbstractionsModule) )] public class AbpMultiTenancyModule : AbpModule { diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs new file mode 100644 index 0000000000..6cd1544d8c --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs @@ -0,0 +1,13 @@ +using System; +using Volo.Abp.EventBus; + +namespace Volo.Abp.MultiTenancy +{ + [EventName("abp.multi_tenancy.tenant.created")] + public class TenantCreatedEto + { + public Guid Id { get; set; } + + public string Name { get; set; } + } +} From f4458ac7d039c531dfe0b5dbdd91ddbd121eded5 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 2 Feb 2021 10:56:04 +0800 Subject: [PATCH 263/309] Remove DeleteManyAsync from IRepository. --- .../Volo/Abp/Domain/Repositories/IRepository.cs | 12 ++---------- .../Volo/Abp/Domain/Repositories/RepositoryBase.cs | 3 --- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs index ec79597396..f1136c4ea2 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs @@ -53,7 +53,7 @@ namespace Volo.Abp.Domain.Repositories /// /// Deletes many entities by the given . /// - /// Please note: This may cause major performance problems if there are too many entities returned for a + /// Please note: This may cause major performance problems if there are too many entities returned for a /// given predicate and the database provider doesn't have a way to efficiently delete many entities. /// /// @@ -68,18 +68,10 @@ namespace Volo.Abp.Domain.Repositories bool autoSave = false, CancellationToken cancellationToken = default ); - - /// - /// This is an alias for - Task DeleteManyAsync( - [NotNull] Expression> predicate, - bool autoSave = false, - CancellationToken cancellationToken = default - ); } public interface IRepository : IRepository, IReadOnlyRepository, IBasicRepository where TEntity : class, IEntity { } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs index 5ba522ef00..0b32d54d45 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryBase.cs @@ -85,9 +85,6 @@ namespace Volo.Abp.Domain.Repositories public abstract Task DeleteAsync(Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default); - public virtual Task DeleteManyAsync(Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default) - => DeleteAsync(predicate, autoSave, cancellationToken); - protected virtual TQueryable ApplyDataFilters(TQueryable query) where TQueryable : IQueryable { From 467ed0627d73750e076c17477105181ac5c0e54e Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 2 Feb 2021 13:44:29 +0800 Subject: [PATCH 264/309] Minor changes --- .../MemoryDb/MemoryDbRepository.cs | 20 ++--- .../Repositories/MongoDB/MongoDbRepository.cs | 77 +++++++++++-------- 2 files changed, 57 insertions(+), 40 deletions(-) diff --git a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs index bb7d64bcc1..fd8c5afd16 100644 --- a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs +++ b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs @@ -184,6 +184,16 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb return (await GetQueryableAsync()).Where(predicate).SingleOrDefault(); } + public override async Task DeleteAsync( + Expression> predicate, + bool autoSave = false, + CancellationToken cancellationToken = default) + { + var entities = (await GetQueryableAsync()).Where(predicate).ToList(); + + await DeleteManyAsync(entities, autoSave, cancellationToken); + } + public override async Task InsertAsync( TEntity entity, bool autoSave = false, @@ -238,16 +248,6 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb } } - public override async Task DeleteAsync( - Expression> predicate, - bool autoSave = false, - CancellationToken cancellationToken = default) - { - var entities = (await GetQueryableAsync()).Where(predicate).ToList(); - - await DeleteManyAsync(entities, autoSave, cancellationToken); - } - public override async Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) { return (await GetQueryableAsync()).ToList(); diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index efdd0a8991..e6030246aa 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -71,16 +71,18 @@ namespace Volo.Abp.Domain.Repositories.MongoDB protected Task GetDbContextAsync(CancellationToken cancellationToken = default) { + cancellationToken = GetCancellationToken(cancellationToken); + // Multi-tenancy unaware entities should always use the host connection string if (!EntityHelper.IsMultiTenant()) { using (CurrentTenant.Change(null)) { - return DbContextProvider.GetDbContextAsync(GetCancellationToken(cancellationToken)); + return DbContextProvider.GetDbContextAsync(cancellationToken); } } - return DbContextProvider.GetDbContextAsync(GetCancellationToken(cancellationToken)); + return DbContextProvider.GetDbContextAsync(cancellationToken); } protected IMongoDbContextProvider DbContextProvider { get; } @@ -107,9 +109,11 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool autoSave = false, CancellationToken cancellationToken = default) { + cancellationToken = GetCancellationToken(cancellationToken); + await ApplyAbpConceptsForAddedEntityAsync(entity); - var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); + var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); if (dbContext.SessionHandle != null) @@ -117,14 +121,14 @@ namespace Volo.Abp.Domain.Repositories.MongoDB await collection.InsertOneAsync( dbContext.SessionHandle, entity, - cancellationToken: GetCancellationToken(cancellationToken) + cancellationToken: cancellationToken ); } else { await collection.InsertOneAsync( entity, - cancellationToken: GetCancellationToken(cancellationToken) + cancellationToken: cancellationToken ); } @@ -133,6 +137,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB public override async Task InsertManyAsync(IEnumerable entities, bool autoSave = false, CancellationToken cancellationToken = default) { + cancellationToken = GetCancellationToken(cancellationToken); + var entityArray = entities.ToArray(); foreach (var entity in entityArray) @@ -140,7 +146,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB await ApplyAbpConceptsForAddedEntityAsync(entity); } - var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); + var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); if (BulkOperationProvider != null) @@ -169,6 +175,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool autoSave = false, CancellationToken cancellationToken = default) { + cancellationToken = GetCancellationToken(cancellationToken); + SetModificationAuditProperties(entity); if (entity is ISoftDelete softDeleteEntity && softDeleteEntity.IsDeleted) @@ -186,7 +194,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB var oldConcurrencyStamp = SetNewConcurrencyStamp(entity); ReplaceOneResult result; - var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); + var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); if (dbContext.SessionHandle != null) @@ -195,7 +203,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB dbContext.SessionHandle, CreateEntityFilter(entity, true, oldConcurrencyStamp), entity, - cancellationToken: GetCancellationToken(cancellationToken) + cancellationToken: cancellationToken ); } else @@ -203,7 +211,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB result = await collection.ReplaceOneAsync( CreateEntityFilter(entity, true, oldConcurrencyStamp), entity, - cancellationToken: GetCancellationToken(cancellationToken) + cancellationToken: cancellationToken ); } @@ -277,7 +285,9 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool autoSave = false, CancellationToken cancellationToken = default) { - var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); + cancellationToken = GetCancellationToken(cancellationToken); + + var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); var oldConcurrencyStamp = SetNewConcurrencyStamp(entity); @@ -295,7 +305,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB dbContext.SessionHandle, CreateEntityFilter(entity, true, oldConcurrencyStamp), entity, - cancellationToken: GetCancellationToken(cancellationToken) + cancellationToken: cancellationToken ); } else @@ -303,7 +313,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB result = await collection.ReplaceOneAsync( CreateEntityFilter(entity, true, oldConcurrencyStamp), entity, - cancellationToken: GetCancellationToken(cancellationToken) + cancellationToken: cancellationToken ); } @@ -323,14 +333,14 @@ namespace Volo.Abp.Domain.Repositories.MongoDB result = await collection.DeleteOneAsync( dbContext.SessionHandle, CreateEntityFilter(entity, true, oldConcurrencyStamp), - cancellationToken: GetCancellationToken(cancellationToken) + cancellationToken: cancellationToken ); } else { result = await collection.DeleteOneAsync( CreateEntityFilter(entity, true, oldConcurrencyStamp), - GetCancellationToken(cancellationToken) + cancellationToken ); } @@ -346,7 +356,9 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool autoSave = false, CancellationToken cancellationToken = default) { - var softDeletedEntities = new List<(TEntity Entity, string ConcurrencyStamp)>(); + cancellationToken = GetCancellationToken(cancellationToken); + + var softDeletedEntities = new Dictionary(); var hardDeletedEntities = new List(); foreach (var entity in entities) @@ -355,7 +367,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB { ((ISoftDelete)entity).IsDeleted = true; - softDeletedEntities.Add((entity, SetNewConcurrencyStamp(entity))); + softDeletedEntities.Add(entity, SetNewConcurrencyStamp(entity)); } else { @@ -365,12 +377,12 @@ namespace Volo.Abp.Domain.Repositories.MongoDB await ApplyAbpConceptsForDeletedEntityAsync(entity); } - var dbContext = await GetDbContextAsync(GetCancellationToken(cancellationToken)); + var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); if (BulkOperationProvider != null) { - await BulkOperationProvider.DeleteManyAsync(this, entities.ToArray(), dbContext.SessionHandle, autoSave, cancellationToken); + await BulkOperationProvider.DeleteManyAsync(this, entities, dbContext.SessionHandle, autoSave, cancellationToken); return; } @@ -378,9 +390,9 @@ namespace Volo.Abp.Domain.Repositories.MongoDB { BulkWriteResult updateResult; - List> replaceRequests = new List>( + var replaceRequests = new List>( softDeletedEntities.Select(entity => new ReplaceOneModel( - CreateEntityFilter(entity.Entity, true, entity.ConcurrencyStamp), entity.Entity)) + CreateEntityFilter(entity.Key, true, entity.Value), entity.Key)) ); if (dbContext.SessionHandle != null) @@ -407,14 +419,14 @@ namespace Volo.Abp.Domain.Repositories.MongoDB { deleteResult = await collection.DeleteManyAsync( dbContext.SessionHandle, - CreateEntitiesFilter(hardDeletedEntities) - ); + CreateEntitiesFilter(hardDeletedEntities), + cancellationToken: cancellationToken); } else { deleteResult = await collection.DeleteManyAsync( - CreateEntitiesFilter(hardDeletedEntities) - ); + CreateEntitiesFilter(hardDeletedEntities), + cancellationToken: cancellationToken); } if (deleteResult.DeletedCount < hardDeletedEntitiesCount) @@ -482,9 +494,11 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool includeDetails = true, CancellationToken cancellationToken = default) { + cancellationToken = GetCancellationToken(cancellationToken); + return await (await GetMongoQueryableAsync(cancellationToken)) .Where(predicate) - .SingleOrDefaultAsync(GetCancellationToken(cancellationToken)); + .SingleOrDefaultAsync(cancellationToken); } [Obsolete("Use GetMongoQueryableAsync method.")] @@ -499,6 +513,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB public async Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default) { + cancellationToken = GetCancellationToken(cancellationToken); + var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); @@ -511,6 +527,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB public async Task> GetAggregateAsync(CancellationToken cancellationToken = default) { + cancellationToken = GetCancellationToken(cancellationToken); + var dbContext = await GetDbContextAsync(cancellationToken); var collection = await GetCollectionAsync(cancellationToken); @@ -693,13 +711,13 @@ namespace Volo.Abp.Domain.Repositories.MongoDB [Obsolete("This method will be removed in future versions.")] public IAsyncCursor ToCursor(CancellationToken cancellationToken = new CancellationToken()) { - return GetMongoQueryable().ToCursor(cancellationToken); + return GetMongoQueryable().ToCursor(GetCancellationToken(cancellationToken)); } [Obsolete("This method will be removed in future versions.")] public Task> ToCursorAsync(CancellationToken cancellationToken = new CancellationToken()) { - return GetMongoQueryable().ToCursorAsync(cancellationToken); + return GetMongoQueryable().ToCursorAsync(GetCancellationToken(cancellationToken)); } } @@ -722,7 +740,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB bool includeDetails = true, CancellationToken cancellationToken = default) { - var entity = await FindAsync(id, includeDetails, cancellationToken); + var entity = await FindAsync(id, includeDetails, GetCancellationToken(cancellationToken)); if (entity == null) { @@ -778,10 +796,9 @@ namespace Volo.Abp.Domain.Repositories.MongoDB return RepositoryFilterer.CreateEntityFilter(entity, withConcurrencyStamp, concurrencyStamp); } - // todo: This method should consider concurrencyStamp protected override FilterDefinition CreateEntitiesFilter(IEnumerable entities, bool withConcurrencyStamp = false) { - return RepositoryFilterer.CreateEntitiesFilter(entities); + return RepositoryFilterer.CreateEntitiesFilter(entities, withConcurrencyStamp); } } } From a8b4e0dfa9bea041f674d2a92aadd3498913cc42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 2 Feb 2021 11:31:21 +0300 Subject: [PATCH 265/309] Seed identity & permission data for a tenant via event handlers. --- .../Entities/Events/Distributed/EtoBase.cs | 0 .../Volo/Abp/MultiTenancy/TenantCreatedEto.cs | 4 +- .../Abp/Identity/AbpIdentityDomainModule.cs | 18 ++++- .../Volo/Abp/Identity/AbpIdentityOptions.cs | 5 ++ .../Volo/Abp/Identity/IdentityDataSeeder.cs | 79 ++++++++++--------- .../Identity/IdentityTenantCreatedHandler.cs | 32 ++++++++ .../Abp/Identity/PasswordOptionsExtensions.cs | 35 ++++++++ .../AbpPermissionManagementDomainModule.cs | 23 +++++- .../PermissionDataSeedContributor.cs | 1 - .../PermissionManagementOptions.cs | 6 +- .../PermissionTenantCreatedHandler.cs | 38 +++++++++ 11 files changed, 197 insertions(+), 44 deletions(-) rename framework/src/{Volo.Abp.Ddd.Domain => Volo.Abp.EventBus.Abstractions}/Volo/Abp/Domain/Entities/Events/Distributed/EtoBase.cs (100%) create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/PasswordOptionsExtensions.cs create mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/Distributed/EtoBase.cs b/framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/Domain/Entities/Events/Distributed/EtoBase.cs similarity index 100% rename from framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/Distributed/EtoBase.cs rename to framework/src/Volo.Abp.EventBus.Abstractions/Volo/Abp/Domain/Entities/Events/Distributed/EtoBase.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs index 6cd1544d8c..317995c971 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantCreatedEto.cs @@ -1,10 +1,12 @@ using System; +using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.EventBus; namespace Volo.Abp.MultiTenancy { + [Serializable] [EventName("abp.multi_tenancy.tenant.created")] - public class TenantCreatedEto + public class TenantCreatedEto : EtoBase { public Guid Id { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index 4269ae2e01..6c2197b38d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -1,10 +1,12 @@ -using Microsoft.AspNetCore.Identity; +using System.Collections.Generic; +using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; using Volo.Abp.AutoMapper; using Volo.Abp.Domain; using Volo.Abp.Domain.Entities.Events.Distributed; +using Volo.Abp.EventBus.Distributed; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; @@ -57,6 +59,20 @@ namespace Volo.Abp.Identity }); context.Services.AddAbpDynamicOptions(); + + Configure(options => + { + var serviceProvider = context.Services.GetServiceProviderOrNull(); + if (serviceProvider != null) + { + var abpIdentityOptions = serviceProvider.GetRequiredService>().Value; + if (!abpIdentityOptions.IsDistributedEventHandlingEnabled) + { + var identityDomainAssembly = typeof(AbpIdentityDomainModule).Assembly; + options.Handlers.RemoveAll(x => x.Assembly == identityDomainAssembly); + } + } + }); } public override void PostConfigureServices(ServiceConfigurationContext context) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs index 6cfaf75c0c..36b7ba587a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs @@ -4,6 +4,11 @@ { public ExternalLoginProviderDictionary ExternalLoginProviders { get; } + /// + /// Default: true. + /// + public bool IsDistributedEventHandlingEnabled { get; } = true; + public AbpIdentityOptions() { ExternalLoginProviders = new ExternalLoginProviderDictionary(); diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs index f6bed1b914..9051dc7d66 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs @@ -49,58 +49,61 @@ namespace Volo.Abp.Identity Check.NotNullOrWhiteSpace(adminEmail, nameof(adminEmail)); Check.NotNullOrWhiteSpace(adminPassword, nameof(adminPassword)); - await IdentityOptions.SetAsync(); - - var result = new IdentityDataSeedResult(); - using (CurrentTenant.Change(tenantId)) { - //"admin" user - const string adminUserName = "admin"; - var adminUser = await UserRepository.FindByNormalizedUserNameAsync( - LookupNormalizer.NormalizeName(adminUserName) - ); + await IdentityOptions.SetAsync(); - if (adminUser != null) + using (IdentityOptions.Value.Password.ClearRequirements()) { - return result; - } + var result = new IdentityDataSeedResult(); + //"admin" user + const string adminUserName = "admin"; + var adminUser = await UserRepository.FindByNormalizedUserNameAsync( + LookupNormalizer.NormalizeName(adminUserName) + ); - adminUser = new IdentityUser( - GuidGenerator.Create(), - adminUserName, - adminEmail, - tenantId - ) - { - Name = adminUserName - }; - - (await UserManager.CreateAsync(adminUser, adminPassword)).CheckErrors(); - result.CreatedAdminUser = true; + if (adminUser != null) + { + return result; + } - //"admin" role - const string adminRoleName = "admin"; - var adminRole = await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName(adminRoleName)); - if (adminRole == null) - { - adminRole = new IdentityRole( + adminUser = new IdentityUser( GuidGenerator.Create(), - adminRoleName, + adminUserName, + adminEmail, tenantId ) { - IsStatic = true, - IsPublic = true + Name = adminUserName }; - (await RoleManager.CreateAsync(adminRole)).CheckErrors(); - result.CreatedAdminRole = true; - } + (await UserManager.CreateAsync(adminUser, adminPassword)).CheckErrors(); + result.CreatedAdminUser = true; + + //"admin" role + const string adminRoleName = "admin"; + var adminRole = + await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName(adminRoleName)); + if (adminRole == null) + { + adminRole = new IdentityRole( + GuidGenerator.Create(), + adminRoleName, + tenantId + ) + { + IsStatic = true, + IsPublic = true + }; - (await UserManager.AddToRoleAsync(adminUser, adminRoleName)).CheckErrors(); + (await RoleManager.CreateAsync(adminRole)).CheckErrors(); + result.CreatedAdminRole = true; + } - return result; + (await UserManager.AddToRoleAsync(adminUser, adminRoleName)).CheckErrors(); + + return result; + } } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs new file mode 100644 index 0000000000..92a0be629c --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs @@ -0,0 +1,32 @@ +using System.Threading.Tasks; +using AutoMapper.Internal; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.MultiTenancy; + +namespace Volo.Abp.Identity +{ + public class IdentityTenantCreatedHandler : IDistributedEventHandler, ITransientDependency + { + public ILogger Logger { get; set; } + + protected IIdentityDataSeeder IdentityDataSeeder { get; } + + public IdentityTenantCreatedHandler(IIdentityDataSeeder identityDataSeeder) + { + IdentityDataSeeder = identityDataSeeder; + Logger = NullLogger.Instance; + } + + public async Task HandleEventAsync(TenantCreatedEto eventData) + { + await IdentityDataSeeder.SeedAsync( + eventData.Properties.GetOrDefault("AdminEmail") as string ?? "admin@abp.io", + eventData.Properties.GetOrDefault("AdminPassword") as string ?? "1q2w3E*", + eventData.Id + ); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/PasswordOptionsExtensions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/PasswordOptionsExtensions.cs new file mode 100644 index 0000000000..793cc6349e --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/PasswordOptionsExtensions.cs @@ -0,0 +1,35 @@ +using System; +using Microsoft.AspNetCore.Identity; + +namespace Volo.Abp.Identity +{ + public static class PasswordOptionsExtensions + { + public static IDisposable ClearRequirements(this PasswordOptions options) + { + var oldRequireDigit = options.RequireDigit; + var oldRequiredLength = options.RequiredLength; + var oldRequireLowercase = options.RequireLowercase; + var oldRequireUppercase = options.RequireUppercase; + var oldRequiredUniqueChars = options.RequiredUniqueChars; + var oldRequireNonAlphanumeric = options.RequireNonAlphanumeric; + + options.RequireDigit = false; + options.RequiredLength = 1; + options.RequireLowercase = false; + options.RequireUppercase = false; + options.RequiredUniqueChars = 1; + options.RequireNonAlphanumeric = false; + + return new DisposeAction(() => + { + options.RequireDigit = oldRequireDigit; + options.RequiredLength = oldRequiredLength; + options.RequireLowercase = oldRequireLowercase; + options.RequireUppercase = oldRequireUppercase; + options.RequiredUniqueChars = oldRequiredUniqueChars; + options.RequireNonAlphanumeric = oldRequireNonAlphanumeric; + }); + } + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs index c199a2130b..5b3eb9f40f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs @@ -1,6 +1,10 @@ -using Volo.Abp.Authorization; +using System.Collections.Generic; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Volo.Abp.Authorization; using Volo.Abp.Caching; using Volo.Abp.Domain; +using Volo.Abp.EventBus.Distributed; using Volo.Abp.Json; using Volo.Abp.Modularity; @@ -13,6 +17,21 @@ namespace Volo.Abp.PermissionManagement [DependsOn(typeof(AbpJsonModule))] public class AbpPermissionManagementDomainModule : AbpModule { - + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + var serviceProvider = context.Services.GetServiceProviderOrNull(); + if (serviceProvider != null) + { + var abpIdentityOptions = serviceProvider.GetRequiredService>().Value; + if (!abpIdentityOptions.IsDistributedEventHandlingEnabled) + { + var identityDomainAssembly = typeof(AbpPermissionManagementDomainModule).Assembly; + options.Handlers.RemoveAll(x => x.Assembly == identityDomainAssembly); + } + } + }); + } } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeedContributor.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeedContributor.cs index ac8274d445..8260df895f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeedContributor.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeedContributor.cs @@ -10,7 +10,6 @@ namespace Volo.Abp.PermissionManagement public class PermissionDataSeedContributor : IDataSeedContributor, ITransientDependency { protected ICurrentTenant CurrentTenant { get; } - protected IPermissionDefinitionManager PermissionDefinitionManager { get; } protected IPermissionDataSeeder PermissionDataSeeder { get; } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs index 674f5daa88..c36cde49ee 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs @@ -5,11 +5,15 @@ namespace Volo.Abp.PermissionManagement { public class PermissionManagementOptions { - //TODO: rename to Providers public ITypeList ManagementProviders { get; } public Dictionary ProviderPolicies { get; } + /// + /// Default: true. + /// + public bool IsDistributedEventHandlingEnabled { get; } = true; + public PermissionManagementOptions() { ManagementProviders = new TypeList(); diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs new file mode 100644 index 0000000000..8962574434 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs @@ -0,0 +1,38 @@ +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.MultiTenancy; + +namespace Volo.Abp.PermissionManagement +{ + public class PermissionTenantCreatedHandler : IDistributedEventHandler, ITransientDependency + { + protected IPermissionDefinitionManager PermissionDefinitionManager { get; } + protected IPermissionDataSeeder PermissionDataSeeder { get; } + + public PermissionTenantCreatedHandler(IPermissionDefinitionManager permissionDefinitionManager, IPermissionDataSeeder permissionDataSeeder) + { + PermissionDefinitionManager = permissionDefinitionManager; + PermissionDataSeeder = permissionDataSeeder; + } + + public async Task HandleEventAsync(TenantCreatedEto eventData) + { + var permissionNames = PermissionDefinitionManager + .GetPermissions() + .Where(p => p.MultiTenancySide.HasFlag(MultiTenancySides.Tenant)) + .Where(p => !p.Providers.Any() || p.Providers.Contains(RolePermissionValueProvider.ProviderName)) + .Select(p => p.Name) + .ToArray(); + + await PermissionDataSeeder.SeedAsync( + RolePermissionValueProvider.ProviderName, + "admin", + permissionNames, + eventData.Id + ); + } + } +} From 5809e343b46572e2ebdcca39d61fb54847777a6c Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Tue, 2 Feb 2021 11:36:07 +0300 Subject: [PATCH 266/309] add catch-all route for pages and do not handle root. --- .../src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs | 5 ++++- .../Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index 7833e6aa3e..953102aa79 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -55,12 +55,15 @@ namespace Volo.CmsKit.Public.Web { options.AddMaps(validate: true); }); + } + public override void PostConfigureServices(ServiceConfigurationContext context) + { Configure(options => { if (GlobalFeatureManager.Instance.IsEnabled()) { - options.Conventions.AddPageRoute("/CmsKit/Pages/Index", @"/{pageUrl}"); + options.Conventions.AddPageRoute("/CmsKit/Pages/Index", @"{*pageUrl:minlength(1)}"); } }); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml index c31edaaba8..73c7637b01 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Pages/Index.cshtml @@ -1,4 +1,4 @@ -@page "{pageUrl}" +@page "{*pageUrl}" @using Microsoft.AspNetCore.Mvc.Localization @using Volo.CmsKit.Localization @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages From 6413691c0e9fda04119c54f6efdf7424f2cd9d74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 2 Feb 2021 15:13:25 +0300 Subject: [PATCH 267/309] Cancel event handlers in identity and permission modules. --- .../NullTenantDatabaseSchemaMigrator.cs | 13 ------- .../TenantDatabaseSchemaMigrator.cs | 13 ------- .../Abp/Identity/AbpIdentityDomainModule.cs | 15 -------- .../Volo/Abp/Identity/AbpIdentityOptions.cs | 5 --- .../Identity/IdentityTenantCreatedHandler.cs | 32 ---------------- .../AbpPermissionManagementDomainModule.cs | 18 +-------- .../PermissionManagementOptions.cs | 5 --- .../PermissionTenantCreatedHandler.cs | 38 ------------------- 8 files changed, 1 insertion(+), 138 deletions(-) delete mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs delete mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs delete mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs delete mode 100644 modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs deleted file mode 100644 index 7d5e76f11b..0000000000 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/NullTenantDatabaseSchemaMigrator.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.MultiTenancy -{ - public class NullTenantDatabaseSchemaMigrator : ITenantDatabaseSchemaMigrator, ISingletonDependency - { - public Task MigrateAsync() - { - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs deleted file mode 100644 index e6fef5c427..0000000000 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantDatabaseSchemaMigrator.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Threading.Tasks; - -namespace Volo.Abp.MultiTenancy -{ - public interface ITenantDatabaseSchemaMigrator - { - /// - /// Set Current Tenant before calling this method. - /// - /// - Task MigrateAsync(); - } -} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index 6c2197b38d..4326d1aeb8 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -6,7 +6,6 @@ using Microsoft.Extensions.Options; using Volo.Abp.AutoMapper; using Volo.Abp.Domain; using Volo.Abp.Domain.Entities.Events.Distributed; -using Volo.Abp.EventBus.Distributed; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; @@ -59,20 +58,6 @@ namespace Volo.Abp.Identity }); context.Services.AddAbpDynamicOptions(); - - Configure(options => - { - var serviceProvider = context.Services.GetServiceProviderOrNull(); - if (serviceProvider != null) - { - var abpIdentityOptions = serviceProvider.GetRequiredService>().Value; - if (!abpIdentityOptions.IsDistributedEventHandlingEnabled) - { - var identityDomainAssembly = typeof(AbpIdentityDomainModule).Assembly; - options.Handlers.RemoveAll(x => x.Assembly == identityDomainAssembly); - } - } - }); } public override void PostConfigureServices(ServiceConfigurationContext context) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs index 36b7ba587a..6cfaf75c0c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityOptions.cs @@ -4,11 +4,6 @@ { public ExternalLoginProviderDictionary ExternalLoginProviders { get; } - /// - /// Default: true. - /// - public bool IsDistributedEventHandlingEnabled { get; } = true; - public AbpIdentityOptions() { ExternalLoginProviders = new ExternalLoginProviderDictionary(); diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs deleted file mode 100644 index 92a0be629c..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityTenantCreatedHandler.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Threading.Tasks; -using AutoMapper.Internal; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; -using Volo.Abp.DependencyInjection; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.MultiTenancy; - -namespace Volo.Abp.Identity -{ - public class IdentityTenantCreatedHandler : IDistributedEventHandler, ITransientDependency - { - public ILogger Logger { get; set; } - - protected IIdentityDataSeeder IdentityDataSeeder { get; } - - public IdentityTenantCreatedHandler(IIdentityDataSeeder identityDataSeeder) - { - IdentityDataSeeder = identityDataSeeder; - Logger = NullLogger.Instance; - } - - public async Task HandleEventAsync(TenantCreatedEto eventData) - { - await IdentityDataSeeder.SeedAsync( - eventData.Properties.GetOrDefault("AdminEmail") as string ?? "admin@abp.io", - eventData.Properties.GetOrDefault("AdminPassword") as string ?? "1q2w3E*", - eventData.Id - ); - } - } -} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs index 5b3eb9f40f..f437802c6b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs @@ -4,7 +4,6 @@ using Microsoft.Extensions.Options; using Volo.Abp.Authorization; using Volo.Abp.Caching; using Volo.Abp.Domain; -using Volo.Abp.EventBus.Distributed; using Volo.Abp.Json; using Volo.Abp.Modularity; @@ -17,21 +16,6 @@ namespace Volo.Abp.PermissionManagement [DependsOn(typeof(AbpJsonModule))] public class AbpPermissionManagementDomainModule : AbpModule { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - var serviceProvider = context.Services.GetServiceProviderOrNull(); - if (serviceProvider != null) - { - var abpIdentityOptions = serviceProvider.GetRequiredService>().Value; - if (!abpIdentityOptions.IsDistributedEventHandlingEnabled) - { - var identityDomainAssembly = typeof(AbpPermissionManagementDomainModule).Assembly; - options.Handlers.RemoveAll(x => x.Assembly == identityDomainAssembly); - } - } - }); - } + } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs index c36cde49ee..2e29ab9c29 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs @@ -9,11 +9,6 @@ namespace Volo.Abp.PermissionManagement public Dictionary ProviderPolicies { get; } - /// - /// Default: true. - /// - public bool IsDistributedEventHandlingEnabled { get; } = true; - public PermissionManagementOptions() { ManagementProviders = new TypeList(); diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs deleted file mode 100644 index 8962574434..0000000000 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionTenantCreatedHandler.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Linq; -using System.Threading.Tasks; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.DependencyInjection; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.MultiTenancy; - -namespace Volo.Abp.PermissionManagement -{ - public class PermissionTenantCreatedHandler : IDistributedEventHandler, ITransientDependency - { - protected IPermissionDefinitionManager PermissionDefinitionManager { get; } - protected IPermissionDataSeeder PermissionDataSeeder { get; } - - public PermissionTenantCreatedHandler(IPermissionDefinitionManager permissionDefinitionManager, IPermissionDataSeeder permissionDataSeeder) - { - PermissionDefinitionManager = permissionDefinitionManager; - PermissionDataSeeder = permissionDataSeeder; - } - - public async Task HandleEventAsync(TenantCreatedEto eventData) - { - var permissionNames = PermissionDefinitionManager - .GetPermissions() - .Where(p => p.MultiTenancySide.HasFlag(MultiTenancySides.Tenant)) - .Where(p => !p.Providers.Any() || p.Providers.Contains(RolePermissionValueProvider.ProviderName)) - .Select(p => p.Name) - .ToArray(); - - await PermissionDataSeeder.SeedAsync( - RolePermissionValueProvider.ProviderName, - "admin", - permissionNames, - eventData.Id - ); - } - } -} From f57c4c8b47f13dc3732c79bf64c81262208ed6ce Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 2 Feb 2021 20:41:14 +0800 Subject: [PATCH 268/309] Add data-datepicker attribute to ignore initialize Datepickers. Resolve #7571 --- .../bootstrap/dom-event-handlers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js index 431d9093f7..a4e7405385 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js @@ -159,7 +159,7 @@ abp.dom.initializers.initializeDatepickers = function ($rootElement) { $rootElement - .findWithSelf('input.datepicker,input[type=date]') + .findWithSelf('input.datepicker,input[type=date][data-datepicker!=false]') .each(function () { var $input = $(this); $input From 1b6b6c6758555b40015f874aaa088b073e830233 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 2 Feb 2021 20:44:54 +0800 Subject: [PATCH 269/309] Rename data-datepicker to abp-data-datepicker. --- .../bootstrap/dom-event-handlers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js index a4e7405385..55c604cf4a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js @@ -159,7 +159,7 @@ abp.dom.initializers.initializeDatepickers = function ($rootElement) { $rootElement - .findWithSelf('input.datepicker,input[type=date][data-datepicker!=false]') + .findWithSelf('input.datepicker,input[type=date][abp-data-datepicker!=false]') .each(function () { var $input = $(this); $input From f5fadcb41057f0486d4712a89d6e4bcb8e528346 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 2 Feb 2021 15:56:02 +0300 Subject: [PATCH 270/309] fix ng-bootstrap modal closing problem --- .../theme-shared/src/lib/components/modal/modal.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts index 0142adeb25..c5829c8e79 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts @@ -154,6 +154,7 @@ export class ModalComponent implements OnDestroy { } ngOnDestroy(): void { + this.toggle(false); this.destroy$.next(); } From 89a3d558a2c06a914ca2655f340c4b0f50b0dd8f Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 2 Feb 2021 15:56:09 +0300 Subject: [PATCH 271/309] update yarn.lock --- npm/ng-packs/yarn.lock | 100 ++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index c87d4f36e2..bae49929de 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@abp/ng.core@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0-rc.2.tgz#d5ae888cd6beba0ab7cc92a9759e8f3b4095f5dc" - integrity sha512-uPsxulybSdGyBpR08d9XR3i/YdG/ILvo1Gzyz2wTOG/gay12hh/p83S50kWeBuPkh8uOiT3ezO9BY/GPVrRI+Q== +"@abp/ng.core@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.2.0.tgz#cd6848291699b9bc60303c58162074d80a0c4428" + integrity sha512-HhTpOeK5RdzlfK5zy5t7v68DDqNqAB75if6E4Lt2CwgY8pQUuY0EIzD0+AXhkC5+bjyULNHV2/HW3q/Fm75TVg== dependencies: - "@abp/utils" "^4.2.0-rc.1" + "@abp/utils" "^4.2.0-rc.2" "@angular/localize" "~10.0.10" "@ngxs/store" "^3.7.0" angular-oauth2-oidc "^10.0.0" @@ -17,35 +17,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0-rc.2.tgz#c0273a07f73d95e7133ec90c1facd5de51121430" - integrity sha512-sGQfh0plQGtm3qCGYs1qmCtWt2EOwVgRyUcNd2ipzorH55S5/dX7or9dYKZofPz7GF55FohbfpxBqnKnBo0WOQ== +"@abp/ng.feature-management@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.2.0.tgz#2c89d64845533c23560325f806289c131457ced9" + integrity sha512-IftgAecb2bygNQhMCvQ6m6BxTq7eAvKE36jBZ1s72S658PtO9xx1LIjCql/QNKyu8YpI88Uc5OXZM8mJOVsYuw== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0" tslib "^2.0.0" -"@abp/ng.identity@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0-rc.2.tgz#fe20f05b60980561218f8357df55c00d85af8eb2" - integrity sha512-zrY5oPhDq8lPcvDvxYM/hS5CtRj71Zlu04Slz4f+ljlStWHBOBZx1VVBl4OQvbDGxDGC04Pf2Sj3PtppEU28gw== +"@abp/ng.identity@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.2.0.tgz#e6e321545a612b37f7f1ff8d0df43086319e77fa" + integrity sha512-yNSxscWa9Po9H+7b7m94oAzMNLe360yJq9s/yw2EhEnkUTJ5bBbbrnSKK35NNRhziYp9V5CwYsW7uhjxQ3NGqQ== dependencies: - "@abp/ng.permission-management" "~4.2.0-rc.2" - "@abp/ng.theme.shared" "~4.2.0-rc.2" + "@abp/ng.permission-management" "~4.2.0" + "@abp/ng.theme.shared" "~4.2.0" tslib "^2.0.0" -"@abp/ng.permission-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0-rc.2.tgz#771285283bf3c82dcdd6a07ef444ada73b918d4a" - integrity sha512-FSMSiXGhalTMZIJzQCS6fYRdFH2eVmk73aPeFn1NnMxNdhzCXfbsHpX/lVes+UMw7CddEEgriv0GQYi8dYMnDw== +"@abp/ng.permission-management@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.2.0.tgz#ad2970796b8b1aecfcd5b0a0136c508a0e18e9d4" + integrity sha512-wG26+7clnqll7d2+Uypd4xleA2DjpSkkctMOGai7EDaHqgVFDjfX3lZHtz/u7Xt9y9wHltGhqONjh/FuRkrgBA== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0" tslib "^2.0.0" -"@abp/ng.schematics@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0-rc.2.tgz#93774148f57964c72498fa060c04eb99f6c3987d" - integrity sha512-Ul/+nPTnGpNhi0NMfeYY9fDnsTVzVxP4iSIdqXevPxugeY6pqCefC84i0XHdkVsxIi1UR7VP84tqE9SCv7KnCw== +"@abp/ng.schematics@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-4.2.0.tgz#db1a8ae787cf028452774a51cb62e784a1670e25" + integrity sha512-44bDoLRqDzcJ/X75KH1O0AoQev7zKh0IkAe4N7KQNgjgRiIuWe3h/SQPfqTSlZNT2ZYo/SZMZyX5Nv8OSKXydg== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -53,37 +53,37 @@ jsonc-parser "^2.3.0" typescript "~3.9.2" -"@abp/ng.setting-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0-rc.2.tgz#a7c5bb30e881f8efe702fcc8f3b95bf442b0289a" - integrity sha512-5sOk19EzFBIIdeTAx6EEmgh2pYOj5oRXq6uuAOmGVzZiX7arFoyqvTR4OAypIBQdMlZ0Iv4EApvJLD6/1IIrqw== +"@abp/ng.setting-management@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-4.2.0.tgz#4a4b685ee74ac5030b7e9e73ee67110219df9065" + integrity sha512-Ldl+I2jWgMuQdMOnnOBIfk0OoTao5QN9zzQwCGMPgu7dOGjD8IT9h9CpkG4ROKw9YAT1R+P8QlQ6502jQWOMYQ== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0" tslib "^2.0.0" -"@abp/ng.tenant-management@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0-rc.2.tgz#dc5c019f16ac679589dbeac85317628ec6682096" - integrity sha512-O2Lb0Fe+L11yC69DAcgX4hY6KwI9ojaDnPTFxGtvvTjaUVKnxxchQrJwP0ITsudZe5cWKbF7cME3b3uH4jorBA== +"@abp/ng.tenant-management@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-4.2.0.tgz#e42aa4b81036c653abcc0144b74c287587a4ec9f" + integrity sha512-EWfwKAH4wjA37xigikXzI+jTNGopV3WEP/ezQj1KO7pbW1peiTXwIPHN7GDc8MJ6f2olZki7kXypzmgJn9A6KQ== dependencies: - "@abp/ng.feature-management" "~4.2.0-rc.2" - "@abp/ng.theme.shared" "~4.2.0-rc.2" + "@abp/ng.feature-management" "~4.2.0" + "@abp/ng.theme.shared" "~4.2.0" tslib "^2.0.0" -"@abp/ng.theme.basic@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0-rc.2.tgz#83c6ae4d0d95fc0271386a02c2f22531325c3b26" - integrity sha512-VGEDWIIRnmHPrhcjIhhBcqILI8NUsuVIX7K5XfJUuf3WmEzH9Ru9Yyi81AYZNuBNXNAjyjRH/nIxwljnHxO8bA== +"@abp/ng.theme.basic@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-4.2.0.tgz#bc239a9c014cca926c80196eb751a40ceeb7446c" + integrity sha512-xTy/AjuPujVNVb/cUenwRiKAS/BoYRR2Hh+AMksfgndIPMUEXYtJ8eSG+XOAtu0+QE/QI5RYk7FzcbfxDBeuvQ== dependencies: - "@abp/ng.theme.shared" "~4.2.0-rc.2" + "@abp/ng.theme.shared" "~4.2.0" tslib "^2.0.0" -"@abp/ng.theme.shared@~4.2.0-rc.2": - version "4.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0-rc.2.tgz#935ca3aa32d8ced85d277139ce790f3cc3faa184" - integrity sha512-UjYPd6KL3bO9PN9XEmBlKQSc0C3EJsLHhifoV+rgtqAHvortOygSHHknOthRA4PN+cg2/PiuWA5gpvMHP1K7Ow== +"@abp/ng.theme.shared@~4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.2.0.tgz#4b7925c61224d4d1b182c50e11ef915b50b78dda" + integrity sha512-LfatA+lk/Wn6MOAZlHlJIiTH5uxqRWBl4QyWXhFrXhYYpJG4je06Y9KA3h+BP4dIQIe06gwAVYpE7D/ur3CbEQ== dependencies: - "@abp/ng.core" "~4.2.0-rc.2" + "@abp/ng.core" "~4.2.0" "@fortawesome/fontawesome-free" "^5.14.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.13" @@ -92,10 +92,10 @@ chart.js "^2.9.3" tslib "^2.0.0" -"@abp/utils@^4.2.0-rc.1": - version "4.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0-rc.1.tgz#397615ec208150f46ae626b67ea71053750f612f" - integrity sha512-MkXq5pKf/ZzJJT9oHYgBlUOL5wTx03qdxJeD82nxwJx6w5JFdshBWKj5iJixE1aM5HnzwSGn7bxFqe5QOKST+Q== +"@abp/utils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.2.0.tgz#073330e3e3f6ee61892f50260e48dbe1b05df35e" + integrity sha512-75qR3SdiAa75wqleAx9sUMXLj4m9duuBo5+2sVv7Y29GcEyKUPvm8B1s6tksvSGA0e3vnFTHeVEc10eD1xKHSQ== dependencies: just-compare "^1.3.0" From cea97c23191abd4e40a3ed526b6fe073e1850ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 2 Feb 2021 16:00:04 +0300 Subject: [PATCH 272/309] Create TenantConnectionStringUpdatedEto.cs --- .../TenantConnectionStringUpdatedEto.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConnectionStringUpdatedEto.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConnectionStringUpdatedEto.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConnectionStringUpdatedEto.cs new file mode 100644 index 0000000000..022343821b --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConnectionStringUpdatedEto.cs @@ -0,0 +1,21 @@ +using System; +using Volo.Abp.Domain.Entities.Events.Distributed; +using Volo.Abp.EventBus; + +namespace Volo.Abp.MultiTenancy +{ + [Serializable] + [EventName("abp.multi_tenancy.tenant.connection_string.updated")] + public class TenantConnectionStringUpdatedEto : EtoBase + { + public Guid Id { get; set; } + + public string Name { get; set; } + + public string ConnectionStringName { get; set; } + + public string OldValue { get; set; } + + public string NewValue { get; set; } + } +} From 183b4a7058dfb70f7e48007707e6ef68dde27d09 Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Tue, 2 Feb 2021 17:40:01 +0300 Subject: [PATCH 273/309] Permission service should filter granted policies from list of policy resolve #7572 --- .../core/src/lib/services/permission.service.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/npm/ng-packs/packages/core/src/lib/services/permission.service.ts b/npm/ng-packs/packages/core/src/lib/services/permission.service.ts index c549c5a7a8..af6a8e3d46 100644 --- a/npm/ng-packs/packages/core/src/lib/services/permission.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/permission.service.ts @@ -19,6 +19,17 @@ export class PermissionService { return this.isPolicyGranted(key, policies); } + filterGrantedPolicies(policyKeys: Array) { + const policies = this.getSnapshot(); + return policyKeys.filter(key => this.isPolicyGranted(key, policies)); + } + + filterGrantedPolicies$(policyKeys: Array) { + return this.getStream().pipe( + map(policies => policyKeys.filter(key => this.isPolicyGranted(key, policies))), + ); + } + protected isPolicyGranted(key: string, grantedPolicies: Record) { if (!key) return true; From 143a9788c737fd2c0c82481dde535ad01640625f Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Tue, 2 Feb 2021 18:55:35 +0300 Subject: [PATCH 274/309] filter fn modified to filter given items by policy --- .../packages/core/src/lib/models/common.ts | 4 ++++ .../core/src/lib/services/permission.service.ts | 15 +++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index d4d44faae0..db03b1cea7 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -12,6 +12,10 @@ export namespace ABP { sendNullsAsQueryParam?: boolean; } + export interface HasPolicy { + requiredPolicy?: string; + } + export interface Test extends Partial { baseHref?: string; listQueryDebounceTime?: number; diff --git a/npm/ng-packs/packages/core/src/lib/services/permission.service.ts b/npm/ng-packs/packages/core/src/lib/services/permission.service.ts index af6a8e3d46..b47c29ed61 100644 --- a/npm/ng-packs/packages/core/src/lib/services/permission.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/permission.service.ts @@ -3,6 +3,7 @@ import { map } from 'rxjs/operators'; import snq from 'snq'; import { ApplicationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models'; import { ConfigStateService } from './config-state.service'; +import { ABP } from '../models'; @Injectable({ providedIn: 'root' }) export class PermissionService { @@ -19,14 +20,20 @@ export class PermissionService { return this.isPolicyGranted(key, policies); } - filterGrantedPolicies(policyKeys: Array) { + filterItemsByPolicy(items: Array) { const policies = this.getSnapshot(); - return policyKeys.filter(key => this.isPolicyGranted(key, policies)); + return items.filter( + item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies), + ); } - filterGrantedPolicies$(policyKeys: Array) { + filterItemsByPolicy$(items: Array) { return this.getStream().pipe( - map(policies => policyKeys.filter(key => this.isPolicyGranted(key, policies))), + map(policies => + items.filter( + item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies), + ), + ), ); } From 8c70f3593033c85592a7ec33d73c0babf4eabeed Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Tue, 2 Feb 2021 19:02:58 +0300 Subject: [PATCH 275/309] import changed --- .../packages/core/src/lib/services/permission.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/permission.service.ts b/npm/ng-packs/packages/core/src/lib/services/permission.service.ts index b47c29ed61..eb6b3fc75e 100644 --- a/npm/ng-packs/packages/core/src/lib/services/permission.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/permission.service.ts @@ -3,7 +3,7 @@ import { map } from 'rxjs/operators'; import snq from 'snq'; import { ApplicationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models'; import { ConfigStateService } from './config-state.service'; -import { ABP } from '../models'; +import { ABP } from '../models/common'; @Injectable({ providedIn: 'root' }) export class PermissionService { From 9f1009b7cdaffb75d14c8aa2e09205eeb9992212 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Wed, 3 Feb 2021 12:01:31 +0300 Subject: [PATCH 276/309] explain how Angular module template works --- docs/en/Startup-Templates/Module.md | 104 +++++++++++++++++- .../images/angular-module-dev-app-project.png | Bin 0 -> 55096 bytes .../angular-module-folder-structure.png | Bin 0 -> 110046 bytes 3 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 docs/en/images/angular-module-dev-app-project.png create mode 100644 docs/en/images/angular-module-folder-structure.png diff --git a/docs/en/Startup-Templates/Module.md b/docs/en/Startup-Templates/Module.md index 2dc0896c65..84b7525944 100644 --- a/docs/en/Startup-Templates/Module.md +++ b/docs/en/Startup-Templates/Module.md @@ -1,4 +1,4 @@ -# MVC Module Startup Template +# Module Startup Template This template can be used to create a **reusable [application module](../Modules/Index.md)** based on the [module development best practices & conventions](../Best-Practices/Index.md). It is also suitable for creating **microservices** (with or without UI). @@ -20,6 +20,20 @@ abp new Acme.IssueManagement -t module - `Acme.IssueManagement` is the solution name, like *YourCompany.YourProduct*. You can use single level, two-levels or three-levels naming. +### Specify the UI Framework + +This template provides multiple UI frameworks: + +* `mvc`: ASP.NET Core MVC UI with Razor Pages (default) +* `blazor`: Blazor UI +* `angular`: Angular UI + +Use `-u` or `--ui` option to specify the UI framework: + +````bash +abp new Acme.IssueManagement -t module -u angular +```` + ### Without User Interface The template comes with an MVC UI by default. You can use `--no-ui` option to not include the UI layer. @@ -160,3 +174,91 @@ You should run the application with the given order: - First, run the `.IdentityServer` since other applications depends on it. - Then run the `.HttpApi.Host` since it is used by the `.Web.Host` application. - Finally, you can run the `.Web.Host` project and login to the application using `admin` as the username and `1q2w3E*` as the password. + +## UI + +### Angular UI + +If you choose `Angular` as the UI framework (using the `-u angular` option), the solution will have a folder called `angular` in it. This is where the client-side code is located. When you open that folder in an IDE, the folder structure will look like below: + +![Folder structure of ABP Angular module project](../images/angular-module-folder-structure.png) + +* _angular/projects/issue-management_ folder contains the Angular module project. +* _angular/projects/dev-app_ folder contains a development application that runs your module. + +The server-side is similar to the solution described above. `*.HttpApi.Host` project serves the API and the `Angular` demo application consumes it. You will not need to run the `.Web.Host` project though. + +#### How to Run the Angular Development App + +For module development, you will need the `dev-app` project up and running. So, here is how we can start the development server. + +First, we need to install dependencies: + +1. Open your terminal at the root folder, i.e. `angular`. +2. Run `yarn` or `npm install`. + +The dependencies will be installed and some of them are ABP modules published as NPM packages. To see all ABP packages, you can run the following command in the `angular` folder: + +```bash +yarn list --pattern abp +``` + +> There is no equivalent of this command in npm. + +The module you will develop depends on two of these ABP packages: _@abp/ng.core_ and _@abp/ng.theme.shared_. Rest of the ABP modules are included in _package.json_ because of the `dev-app` project. + +Once all dependencies are installed, follow the steps below to serve your development app: + +1. Make sure `.IdentityServer` and `*.HttpApi.Host` projects are up and running. +2. Open your terminal at the root folder, i.e. `angular`. +3. Run `yarn start` or `npm start`. + +![ABP Angular module dev-app project](../images/angular-module-dev-app-project.png) + +The issue management page is empty in the beginning. You may change the content in `IssueManagementComponent` at the _angular/projects/issue-management/src/lib/issue-management.component.ts_ path and observe that the view changes accordingly. + +Now, let's have a closer look at some key elements of your project. + +#### Main Module + +`IssueManagementModule` at the _angular/projects/issue-management/src/lib/issue-management.module.ts_ path is the main module of your module project. There are a few things worth mentioning in it: + +- Essential ABP modules, i.e. `CoreModule` and `ThemeSharedModule`, are imported. +- `IssueManagementRoutingModule` is imported. +- `IssueManagementComponent` is declared. +- It is prepared for configurability. The `forLazy` static method enables [a configuration to be passed to the module when it is loaded by the router](https://volosoft.com/blog/how-to-configure-angular-modules-loaded-by-the-router). + + +#### Main Routing Module + +`IssueManagementRoutingModule` at the _angular/projects/issue-management/src/lib/issue-management-routing.module.ts_ path is the main routing module of your module project. It currently does two things: + +- Loads `DynamicLayoutComponent` at base path it is given. +- Loads `IssueManagementComponent` as child to the layout, again at the given base path. + +You can rearrange this module to load more than one component at different routes, but you need to update the route provider at _angular/projects/issue-management/config/src/providers/route.provider.ts_ to match the new routing structure with the routes in the menu. Please check [Modifying the Menu](../UI/Angular/Modifying-the-Menu.md) to see how route providers work. + +#### Config Module + +There is a config module at the _angular/projects/issue-management/config/src/issue-management-config.module.ts_ path. The static `forRoot` method of this module is supposed to be called at the route level. So, you may assume the following will take place: + +```js +@NgModule({ + imports: [ + /* other imports */ + + IssueManagementConfigModule.forRoot(), + ], + + /* rest of the module meta data */ +}) +export class AppModule {} +``` + +You can use this static method to configure an application that uses your module project. An example of such configuration is already implemented and the `ISSUE_MANAGEMENT_ROUTE_PROVIDERS` token is provided here. The method can take options which enables further configuration possibilities. + +The difference between the `forRoot` method of the config module and the `forLazy` method of the main module is that, for smallest bundle size, the former should only be used when you have to configure an app before your module is even loaded. + +#### Testing Angular UI + +Please see the [testing document](../UI/Angular/Testing.md). diff --git a/docs/en/images/angular-module-dev-app-project.png b/docs/en/images/angular-module-dev-app-project.png new file mode 100644 index 0000000000000000000000000000000000000000..08e0e9fd6c73b018c44bf524f4f47f28297c44bb GIT binary patch literal 55096 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 Q69D|EJk?YvdW;D8A2&}E2LJ#7 literal 0 HcmV?d00001 From 9217fcf1cafb3e342b509ec69acc28db2c3253bd Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Wed, 3 Feb 2021 15:59:15 +0000 Subject: [PATCH 277/309] Improve DataTable.Net AJAX Adapter (abp.libs.datatables.createAjax) function --- docs/en/UI/AspNetCore/Data-Tables.md | 10 +++++++++- .../datatables/datatables-extensions.js | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/en/UI/AspNetCore/Data-Tables.md b/docs/en/UI/AspNetCore/Data-Tables.md index b97d49d562..3dea38d179 100644 --- a/docs/en/UI/AspNetCore/Data-Tables.md +++ b/docs/en/UI/AspNetCore/Data-Tables.md @@ -110,7 +110,7 @@ The `createAjax` also supports you to customize request parameters and handle th **Example:** ````csharp -var inputAction = function () { +var inputAction = function (requestData, dataTableSettings) { return { id: $('#Id').val(), name: $('#Name').val(), @@ -131,6 +131,14 @@ var responseCallback = function(result) { ajax: abp.libs.datatables.createAjax(acme.bookStore.books.book.getList, inputAction, responseCallback) ```` +If you don't need access or modify the `requestData` or the `dataTableSettings`, you can specify a **simple object** as the second parameter. + +**Note:** This option should not be used if you need to customise any of the following options: `maxResultCount`, `skipCount`, `sorting`, `filter` - these options will be overwritten by the `createAjax` function so you should specify an `inputAction` **function** instead. + +````javascript +ajax: abp.libs.datatables.createAjax(acme.bookStore.books.book.getList, { id: $('#Id').val(), name: $('#Name').val() }) +```` + ### Row Actions `rowAction` is an option defined by the ABP Framework to the column definitions to show a drop down button to take actions for a row in the table. diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index 1808f267eb..9895097d99 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -334,7 +334,10 @@ }; } return function (requestData, callback, settings) { - var input = inputAction ? inputAction(requestData, settings) : {}; + var input = typeof inputAction === 'function' + ? inputAction(requestData, settings) + : typeof inputAction === 'object' + ? inputAction : {}; //Paging if (settings.oInit.paging) { From 45f778cb94e8405772d865983c386b4b727974e5 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 4 Feb 2021 11:31:08 +0800 Subject: [PATCH 278/309] Allow custom services construction --- .../Abp/AutoMapper/AbpAutoMapperModule.cs | 6 +- ...oMapper_CustomServiceConstruction_Tests.cs | 74 +++++++++++++++++++ .../AutoMapper_Dependency_Injection_Tests.cs | 23 +++++- 3 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs index 25707e3899..cb576ba1de 100644 --- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs +++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs @@ -25,7 +25,7 @@ namespace Volo.Abp.AutoMapper { context.Services.AddAutoMapperObjectMapper(); - context.Services.AddSingleton(provider => CreateMappings(provider)); + context.Services.AddSingleton(CreateMappings); context.Services.AddSingleton(provider => provider.GetRequiredService()); } @@ -43,6 +43,8 @@ namespace Volo.Abp.AutoMapper } } + options.Configurators.Insert(0, ctx => ctx.MapperConfiguration.ConstructServicesUsing(serviceProvider.GetService)); + void ValidateAll(IConfigurationProvider config) { foreach (var profileType in options.ValidatingProfiles) @@ -60,7 +62,7 @@ namespace Volo.Abp.AutoMapper return new MapperAccessor { - Mapper = new Mapper(mapperConfiguration, serviceProvider.GetService) + Mapper = new Mapper(mapperConfiguration) }; } } diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs new file mode 100644 index 0000000000..ab2f2309d5 --- /dev/null +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs @@ -0,0 +1,74 @@ +using System; +using AutoMapper; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.AutoMapper.SampleClasses; +using Volo.Abp.Modularity; +using Volo.Abp.Testing; +using Xunit; +using IObjectMapper = Volo.Abp.ObjectMapping.IObjectMapper; + +namespace Volo.Abp.AutoMapper +{ + public class AutoMapper_CustomServiceConstruction_Tests : AbpIntegratedTest + { + private readonly IObjectMapper _objectMapper; + + public AutoMapper_CustomServiceConstruction_Tests() + { + _objectMapper = ServiceProvider.GetRequiredService(); + } + + [Fact] + public void Should_Custom_Service_Construction() + { + var myEntity = new MyEntity + { + Number = 2 + }; + _objectMapper.Map(myEntity).Number.ShouldBe(1); + } + + [DependsOn(typeof(AbpAutoMapperModule))] + public class TestModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.AddMaps(); + options.Configurators.Add(configurationContext => + { + configurationContext.MapperConfiguration.ConstructServicesUsing(type => + type.Name.Contains(nameof(CustomMappingAction)) + ? new CustomMappingAction(1) + : Activator.CreateInstance(type)); + }); + }); + } + } + + public class MapperActionProfile : Profile + { + public MapperActionProfile() + { + CreateMap().AfterMap(); + } + } + + public class CustomMappingAction : IMappingAction + { + private readonly int _number; + + public CustomMappingAction(int number) + { + _number = number; + } + + public void Process(MyEntity source, MyEntityDto destination, ResolutionContext context) + { + destination.Number = _number; + } + } + } +} diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_Dependency_Injection_Tests.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_Dependency_Injection_Tests.cs index 56c5e6f061..7edf32eb23 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_Dependency_Injection_Tests.cs +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_Dependency_Injection_Tests.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.AutoMapper [Fact] public void Should_Registered_AutoMapper_Service() { - GetService().ShouldNotBeNull(); + GetService().ShouldNotBeNull(); } [Fact] @@ -47,15 +47,30 @@ namespace Volo.Abp.AutoMapper { public MapperActionProfile() { - CreateMap().AfterMap(); + CreateMap().AfterMap(); } } - public class CustomMappingActionService : IMappingAction + public class CustomMappingAction : IMappingAction { + private readonly CustomMappingActionService _customMappingActionService; + + public CustomMappingAction(CustomMappingActionService customMappingActionService) + { + _customMappingActionService = customMappingActionService; + } + public void Process(SourceModel source, DestModel destination, ResolutionContext context) { - destination.Name = nameof(CustomMappingActionService); + destination.Name = _customMappingActionService.GetName(); + } + } + + public class CustomMappingActionService : ITransientDependency + { + public string GetName() + { + return nameof(CustomMappingActionService); } } } From 13c5e0eea395ae9b500205670ab979f9cf339651 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 4 Feb 2021 13:00:55 +0800 Subject: [PATCH 279/309] Update unit tests --- ...oMapper_CustomServiceConstruction_Tests.cs | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs index ab2f2309d5..c1995970b5 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_CustomServiceConstruction_Tests.cs @@ -2,7 +2,6 @@ using AutoMapper; using Microsoft.Extensions.DependencyInjection; using Shouldly; -using Volo.Abp.AutoMapper.SampleClasses; using Volo.Abp.Modularity; using Volo.Abp.Testing; using Xunit; @@ -22,11 +21,11 @@ namespace Volo.Abp.AutoMapper [Fact] public void Should_Custom_Service_Construction() { - var myEntity = new MyEntity + var source = new SourceModel { - Number = 2 + Name = nameof(SourceModel) }; - _objectMapper.Map(myEntity).Number.ShouldBe(1); + _objectMapper.Map(source).Name.ShouldBe(nameof(CustomMappingAction)); } [DependsOn(typeof(AbpAutoMapperModule))] @@ -41,33 +40,43 @@ namespace Volo.Abp.AutoMapper { configurationContext.MapperConfiguration.ConstructServicesUsing(type => type.Name.Contains(nameof(CustomMappingAction)) - ? new CustomMappingAction(1) + ? new CustomMappingAction(nameof(CustomMappingAction)) : Activator.CreateInstance(type)); }); }); } } + public class SourceModel + { + public string Name { get; set; } + } + + public class DestModel + { + public string Name { get; set; } + } + public class MapperActionProfile : Profile { public MapperActionProfile() { - CreateMap().AfterMap(); + CreateMap().AfterMap(); } } - public class CustomMappingAction : IMappingAction + public class CustomMappingAction : IMappingAction { - private readonly int _number; + private readonly string _name; - public CustomMappingAction(int number) + public CustomMappingAction(string name) { - _number = number; + _name = name; } - public void Process(MyEntity source, MyEntityDto destination, ResolutionContext context) + public void Process(SourceModel source, DestModel destination, ResolutionContext context) { - destination.Number = _number; + destination.Name = _name; } } } From d367ea057f44ca19a8f8f85e8b1104b0a8594e13 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 4 Feb 2021 10:59:11 +0300 Subject: [PATCH 280/309] Cli source-code download remote error log --- .../Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs index 0462920fbb..4d4a8726a8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs @@ -199,11 +199,12 @@ namespace Volo.Abp.Cli.ProjectBuilding { var url = $"{CliUrls.WwwAbpIo}api/download/{input.Type}/"; + HttpResponseMessage responseMessage = null; + try { using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) { - HttpResponseMessage responseMessage; if (input.TemplateSource.IsNullOrWhiteSpace()) { @@ -225,7 +226,8 @@ namespace Volo.Abp.Cli.ProjectBuilding } catch (Exception ex) { - Console.WriteLine("Error occured while downloading source-code from {0} : {1}", url, ex.Message); + Console.WriteLine("Error occured while downloading source-code from {0} : {1}{2}{3}", + url, responseMessage?.ToString(), Environment.NewLine, ex.Message); throw; } } From b9aaffd7db08a95614e25aa80a997f5629a5fac7 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 4 Feb 2021 14:50:53 +0300 Subject: [PATCH 281/309] Cli solution rename: handle company name kebab-case resolves https://github.com/abpframework/abp/issues/7586 --- .../Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs index 611d4d5266..ce2c8c3b2a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs @@ -55,11 +55,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { RenameHelper.RenameAll(_entries, _companyNamePlaceHolder, _companyName); RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToCamelCase(), _companyName.ToCamelCase()); + RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToKebabCase(), _companyName.ToKebabCase()); } else { RenameHelper.RenameAll(_entries, _companyNamePlaceHolder + "." + _projectNamePlaceHolder, _projectNamePlaceHolder); RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToCamelCase() + "." + _projectNamePlaceHolder.ToCamelCase(), _projectNamePlaceHolder.ToCamelCase()); + RenameHelper.RenameAll(_entries, _companyNamePlaceHolder.ToKebabCase() + "/" + _projectNamePlaceHolder.ToKebabCase(), _projectNamePlaceHolder.ToKebabCase()); } } From 12d602dffe7fcd3203ea37b678a58a05b72e1794 Mon Sep 17 00:00:00 2001 From: cuibty Date: Fri, 5 Feb 2021 14:30:40 +0800 Subject: [PATCH 282/309] Update Domain-Driven-Design-Implementation-Guide.md --- docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md b/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md index db434ab365..e59f96ce56 100644 --- a/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md +++ b/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md @@ -1315,7 +1315,7 @@ namespace IssueTracking.Users #### 输出DTO最佳实践 -* 保持**数量较少**的输出DTO,尽可能**重用输入DTO**(例外:不要将输入DTO作为输出DTO). +* 保持**数量较少**的输出DTO,尽可能**重用输出DTO**(例外:不要将输入DTO作为输出DTO). * 输出DTO可以包含比用例需要的属性**更多**的属性. * 针对 **Create** 和 **Update** 方法,返回实体的DTO. @@ -1976,4 +1976,4 @@ public class IssueAppService * "*Domain Driven Design*" by Eric Evans * "*Implementing Domain Driven Design*" by Vaughn Vernon -* "*Clean Architecture*" by Robert C. Martin \ No newline at end of file +* "*Clean Architecture*" by Robert C. Martin From 3dbdecfa5f48ccd4880468b65dd3a762da968cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 5 Feb 2021 15:17:56 +0300 Subject: [PATCH 283/309] Resolved #7611: Distributed event bus should send NACK to RabbitMQ server on event handling failures. --- .../Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs index b94663d886..0c180a4ac7 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs +++ b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs @@ -191,6 +191,7 @@ namespace Volo.Abp.RabbitMQ } catch (Exception ex) { + Channel.BasicNack(basicDeliverEventArgs.DeliveryTag, multiple: false, requeue: true); Logger.LogException(ex); await ExceptionNotifier.NotifyAsync(ex); } From 43491dd2138c8d7f05a9e91994efd70ff8bed78e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 5 Feb 2021 17:54:35 +0300 Subject: [PATCH 284/309] Resolved #7613: Should use the tenant's default connection string if available when requested a specific connection but not defined for the tenant. --- .../MultiTenantConnectionStringResolver.cs | 191 +++++++++++------- 1 file changed, 116 insertions(+), 75 deletions(-) diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs index 0d82419013..959c910901 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs @@ -26,105 +26,146 @@ namespace Volo.Abp.MultiTenancy public override async Task ResolveAsync(string connectionStringName = null) { - //No current tenant, fallback to default logic if (_currentTenant.Id == null) { + //No current tenant, fallback to default logic return await base.ResolveAsync(connectionStringName); } - using (var serviceScope = _serviceProvider.CreateScope()) + var tenant = await FindTenantConfigurationAsync(_currentTenant.Id.Value); + + if (tenant == null || tenant.ConnectionStrings.IsNullOrEmpty()) { - var tenantStore = serviceScope - .ServiceProvider - .GetRequiredService(); + //Tenant has not defined any connection string, fallback to default logic + return await base.ResolveAsync(connectionStringName); + } + + var tenantDefaultConnectionString = tenant.ConnectionStrings.Default; + + //Requesting default connection string... + if (connectionStringName == null || + connectionStringName == ConnectionStrings.DefaultConnectionStringName) + { + //Return tenant's default or global default + return !tenantDefaultConnectionString.IsNullOrWhiteSpace() + ? tenantDefaultConnectionString + : Options.ConnectionStrings.Default; + } + + //Requesting specific connection string... + var connString = tenant.ConnectionStrings.GetOrDefault(connectionStringName); + if (!connString.IsNullOrWhiteSpace()) + { + //Found for the tenant + return connString; + } - var tenant = await tenantStore.FindAsync(_currentTenant.Id.Value); - - if (tenant?.ConnectionStrings == null) - { - return await base.ResolveAsync(connectionStringName); - } - - //Requesting default connection string - if (connectionStringName == null) - { - return tenant.ConnectionStrings.Default ?? - Options.ConnectionStrings.Default; - } - - //Requesting specific connection string - var connString = tenant.ConnectionStrings.GetOrDefault(connectionStringName); - if (connString != null) - { - return connString; - } - - /* Requested a specific connection string, but it's not specified for the tenant. - * - If it's specified in options, use it. - * - If not, use tenant's default conn string. - */ - - var connStringInOptions = Options.ConnectionStrings.GetOrDefault(connectionStringName); - if (connStringInOptions != null) - { - return connStringInOptions; - } - - return tenant.ConnectionStrings.Default ?? - Options.ConnectionStrings.Default; + //Fallback to tenant's default connection string if available + if (!tenantDefaultConnectionString.IsNullOrWhiteSpace()) + { + return tenantDefaultConnectionString; + } + + //Try to find the specific connection string for given name + var connStringInOptions = Options.ConnectionStrings.GetOrDefault(connectionStringName); + if (!connStringInOptions.IsNullOrWhiteSpace()) + { + return connStringInOptions; + } + + //Fallback to the global default connection string + var defaultConnectionString = Options.ConnectionStrings.Default; + if (!defaultConnectionString.IsNullOrWhiteSpace()) + { + return defaultConnectionString; } + + throw new AbpException("No connection string defined!"); } [Obsolete("Use ResolveAsync method.")] public override string Resolve(string connectionStringName = null) { - //No current tenant, fallback to default logic if (_currentTenant.Id == null) { + //No current tenant, fallback to default logic return base.Resolve(connectionStringName); } + var tenant = FindTenantConfiguration(_currentTenant.Id.Value); + + if (tenant == null || tenant.ConnectionStrings.IsNullOrEmpty()) + { + //Tenant has not defined any connection string, fallback to default logic + return base.Resolve(connectionStringName); + } + + var tenantDefaultConnectionString = tenant.ConnectionStrings.Default; + + //Requesting default connection string... + if (connectionStringName == null || + connectionStringName == ConnectionStrings.DefaultConnectionStringName) + { + //Return tenant's default or global default + return !tenantDefaultConnectionString.IsNullOrWhiteSpace() + ? tenantDefaultConnectionString + : Options.ConnectionStrings.Default; + } + + //Requesting specific connection string... + var connString = tenant.ConnectionStrings.GetOrDefault(connectionStringName); + if (!connString.IsNullOrWhiteSpace()) + { + //Found for the tenant + return connString; + } + + //Fallback to tenant's default connection string if available + if (!tenantDefaultConnectionString.IsNullOrWhiteSpace()) + { + return tenantDefaultConnectionString; + } + + //Try to find the specific connection string for given name + var connStringInOptions = Options.ConnectionStrings.GetOrDefault(connectionStringName); + if (!connStringInOptions.IsNullOrWhiteSpace()) + { + return connStringInOptions; + } + + //Fallback to the global default connection string + var defaultConnectionString = Options.ConnectionStrings.Default; + if (!defaultConnectionString.IsNullOrWhiteSpace()) + { + return defaultConnectionString; + } + + throw new AbpException("No connection string defined!"); + } + + protected virtual async Task FindTenantConfigurationAsync(Guid tenantId) + { + using (var serviceScope = _serviceProvider.CreateScope()) + { + var tenantStore = serviceScope + .ServiceProvider + .GetRequiredService(); + + return await tenantStore.FindAsync(tenantId); + } + } + + [Obsolete("Use FindTenantConfigurationAsync method.")] + protected virtual TenantConfiguration FindTenantConfiguration(Guid tenantId) + { using (var serviceScope = _serviceProvider.CreateScope()) { var tenantStore = serviceScope .ServiceProvider .GetRequiredService(); - var tenant = tenantStore.Find(_currentTenant.Id.Value); - - if (tenant?.ConnectionStrings == null) - { - return base.Resolve(connectionStringName); - } - - //Requesting default connection string - if (connectionStringName == null) - { - return tenant.ConnectionStrings.Default ?? - Options.ConnectionStrings.Default; - } - - //Requesting specific connection string - var connString = tenant.ConnectionStrings.GetOrDefault(connectionStringName); - if (connString != null) - { - return connString; - } - - /* Requested a specific connection string, but it's not specified for the tenant. - * - If it's specified in options, use it. - * - If not, use tenant's default conn string. - */ - - var connStringInOptions = Options.ConnectionStrings.GetOrDefault(connectionStringName); - if (connStringInOptions != null) - { - return connStringInOptions; - } - - return tenant.ConnectionStrings.Default ?? - Options.ConnectionStrings.Default; + return tenantStore.Find(tenantId); } } } -} +} \ No newline at end of file From 341183b2dd7e6cbee7400149058e991371043cdf Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Fri, 5 Feb 2021 18:05:08 +0300 Subject: [PATCH 285/309] Update ModuleInfo.cs --- .../Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs index 260fbb745f..1d8da0e3b1 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ModuleInfo.cs @@ -23,5 +23,7 @@ public bool MvcUi { get; set; } public bool BlazorUi { get; set; } + + public bool IsFreeToActiveLicenseOwners { get; set; } } } From 25ae8b12d8ad40baae3a579f419cfc1e7f77e547 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Fri, 5 Feb 2021 20:31:50 +0300 Subject: [PATCH 286/309] Make CliHttpClient singleton #7618 --- .../Volo/Abp/Cli/Commands/LoginCommand.cs | 25 +++++----- .../Volo/Abp/Cli/Http/CliHttpClient.cs | 8 +-- .../Volo/Abp/Cli/Http/CliHttpClientFactory.cs | 47 ++++++++++++++++++ .../Abp/Cli/Licensing/AbpIoApiKeyService.cs | 24 ++++----- .../Volo/Abp/Cli/NuGet/NuGetService.cs | 29 +++++------ .../Analyticses/CliAnalyticsCollect.cs | 40 ++++++++------- .../Cli/ProjectBuilding/ModuleInfoProvider.cs | 25 +++++----- .../ProjectBuilding/TemplateInfoProvider.cs | 24 ++++----- .../ProjectNugetPackageAdder.cs | 21 ++++---- .../SolutionModuleAdder.cs | 49 ++++++++++--------- 10 files changed, 179 insertions(+), 113 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs index 12810aebb9..f03c101c88 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs @@ -22,13 +22,17 @@ namespace Volo.Abp.Cli.Commands public ICancellationTokenProvider CancellationTokenProvider { get; } public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } + private readonly CliHttpClientFactory _cliHttpClientFactory; + public LoginCommand(AuthService authService, ICancellationTokenProvider cancellationTokenProvider, - IRemoteServiceExceptionHandler remoteServiceExceptionHandler) + IRemoteServiceExceptionHandler remoteServiceExceptionHandler, + CliHttpClientFactory cliHttpClientFactory) { AuthService = authService; CancellationTokenProvider = cancellationTokenProvider; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; + _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -79,20 +83,19 @@ namespace Volo.Abp.Cli.Commands { var url = $"{CliUrls.WwwAbpIo}api/license/check-multiple-organizations?username={username}"; - using (var client = new CliHttpClient()) + var client = _cliHttpClientFactory.CreateClient(); + + using (var response = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, Logger)) { - using (var response = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, Logger)) + if (!response.IsSuccessStatusCode) { - if (!response.IsSuccessStatusCode) - { - throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); - } + throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); + } - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); - var responseContent = await response.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(responseContent); - } + var responseContent = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseContent); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs index d853067abf..1122648ff2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs @@ -22,7 +22,7 @@ namespace Volo.Abp.Cli.Http { Timeout = timeout ?? DefaultTimeout; - AddAuthentication(this); + AddAuthentication(); } public CliHttpClient(bool setBearerToken) : base(new CliHttpClientHandler()) @@ -31,11 +31,11 @@ namespace Volo.Abp.Cli.Http if (setBearerToken) { - AddAuthentication(this); + AddAuthentication(); } } - private static void AddAuthentication(HttpClient client) + public void AddAuthentication() { if (!AuthService.IsLoggedIn()) { @@ -45,7 +45,7 @@ namespace Volo.Abp.Cli.Http var accessToken = File.ReadAllText(CliPaths.AccessToken, Encoding.UTF8); if (!accessToken.IsNullOrEmpty()) { - client.SetBearerToken(accessToken); + this.SetBearerToken(accessToken); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs new file mode 100644 index 0000000000..3748e8e64a --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs @@ -0,0 +1,47 @@ +using System; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.Http +{ + public class CliHttpClientFactory : ISingletonDependency, IDisposable + { + private static CliHttpClient _authenticatedHttpClient; + private static CliHttpClient _unauthenticatedHttpClient; + + public CliHttpClient CreateClient(bool needsAuthentication = true) + { + if (needsAuthentication) + { + return CreateAuthenticatedHttpClient(); + } + + return CreateUnAuthenticatedHttpClient(); + } + + private static CliHttpClient CreateAuthenticatedHttpClient() + { + if (_authenticatedHttpClient == null) + { + _authenticatedHttpClient = new CliHttpClient(setBearerToken: true); + } + + return _authenticatedHttpClient; + } + + private static CliHttpClient CreateUnAuthenticatedHttpClient() + { + if (_unauthenticatedHttpClient == null) + { + _unauthenticatedHttpClient = new CliHttpClient(setBearerToken: false); + } + + return _unauthenticatedHttpClient; + } + + public void Dispose() + { + _authenticatedHttpClient?.Dispose(); + _unauthenticatedHttpClient?.Dispose(); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs index 2aeb8ed90a..5ff4d39d4f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs @@ -25,16 +25,19 @@ namespace Volo.Abp.Cli.Licensing private readonly ILogger _logger; private DeveloperApiKeyResult _apiKeyResult = null; + private readonly CliHttpClientFactory _cliHttpClientFactory; public AbpIoApiKeyService( IJsonSerializer jsonSerializer, ICancellationTokenProvider cancellationTokenProvider, IRemoteServiceExceptionHandler remoteServiceExceptionHandler, - ILogger logger) + ILogger logger, + CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; _logger = logger; + _cliHttpClientFactory = cliHttpClientFactory; CancellationTokenProvider = cancellationTokenProvider; } @@ -56,22 +59,21 @@ namespace Volo.Abp.Cli.Licensing } var url = $"{CliUrls.WwwAbpIo}api/license/api-key"; + var client = _cliHttpClientFactory.CreateClient(); - using (var client = new CliHttpClient()) + using (var response = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, _logger)) { - using (var response = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, _logger)) + if (!response.IsSuccessStatusCode) { - if (!response.IsSuccessStatusCode) - { - throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); - } + throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); + } - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); - var responseContent = await response.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(responseContent); - } + var responseContent = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseContent); } + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs index 057ffcc02d..7907baaa2d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs @@ -23,6 +23,7 @@ namespace Volo.Abp.Cli.NuGet protected ICancellationTokenProvider CancellationTokenProvider { get; } protected IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } private readonly IApiKeyService _apiKeyService; + private readonly CliHttpClientFactory _cliHttpClientFactory; private List _proPackageList; private DeveloperApiKeyResult _apiKeyResult; @@ -30,12 +31,14 @@ namespace Volo.Abp.Cli.NuGet IJsonSerializer jsonSerializer, IRemoteServiceExceptionHandler remoteServiceExceptionHandler, ICancellationTokenProvider cancellationTokenProvider, - IApiKeyService apiKeyService) + IApiKeyService apiKeyService, + CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; CancellationTokenProvider = cancellationTokenProvider; _apiKeyService = apiKeyService; + _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -93,18 +96,17 @@ namespace Volo.Abp.Cli.NuGet url = $"https://api.nuget.org/v3-flatcontainer/{packageId.ToLowerInvariant()}/index.json"; } - using (var client = new CliHttpClient(setBearerToken: false)) + var client = _cliHttpClientFactory.CreateClient(needsAuthentication: false); + + using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( + url, + cancellationToken: CancellationTokenProvider.Token, + logger: Logger + )) { - using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( - url, - cancellationToken: CancellationTokenProvider.Token, - logger: Logger - )) - { - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); - var responseContent = await responseMessage.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(responseContent).Versions; - } + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); + var responseContent = await responseMessage.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseContent).Versions; } } @@ -120,9 +122,8 @@ namespace Volo.Abp.Cli.NuGet private async Task> GetProPackageListAsync() { - using var client = new CliHttpClient(); - var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/proPackageNames"; + var client = _cliHttpClientFactory.CreateClient(needsAuthentication: true); using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( url: url, diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Analyticses/CliAnalyticsCollect.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Analyticses/CliAnalyticsCollect.cs index 621631af2a..e97d7443d4 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Analyticses/CliAnalyticsCollect.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Analyticses/CliAnalyticsCollect.cs @@ -18,15 +18,18 @@ namespace Volo.Abp.Cli.ProjectBuilding.Analyticses private readonly IJsonSerializer _jsonSerializer; private readonly ILogger _logger; private readonly IRemoteServiceExceptionHandler _remoteServiceExceptionHandler; + private readonly CliHttpClientFactory _cliHttpClientFactory; public CliAnalyticsCollect( ICancellationTokenProvider cancellationTokenProvider, IJsonSerializer jsonSerializer, - IRemoteServiceExceptionHandler remoteServiceExceptionHandler) + IRemoteServiceExceptionHandler remoteServiceExceptionHandler, + CliHttpClientFactory cliHttpClientFactory) { _cancellationTokenProvider = cancellationTokenProvider; _jsonSerializer = jsonSerializer; _remoteServiceExceptionHandler = remoteServiceExceptionHandler; + _cliHttpClientFactory = cliHttpClientFactory; _logger = NullLogger.Instance; } @@ -34,32 +37,31 @@ namespace Volo.Abp.Cli.ProjectBuilding.Analyticses { var postData = _jsonSerializer.Serialize(input); var url = $"{CliUrls.WwwAbpIo}api/clianalytics/collect"; - + try { - using (var client = new CliHttpClient()) - { - var responseMessage = await client.PostAsync( - url, - new StringContent(postData, Encoding.UTF8, MimeTypes.Application.Json), - _cancellationTokenProvider.Token - ); + var client = _cliHttpClientFactory.CreateClient(); - if (!responseMessage.IsSuccessStatusCode) - { - var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; - var remoteServiceErrorMessage = await _remoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage); + var responseMessage = await client.PostAsync( + url, + new StringContent(postData, Encoding.UTF8, MimeTypes.Application.Json), + _cancellationTokenProvider.Token + ); - if (remoteServiceErrorMessage != null) - { - exceptionMessage += remoteServiceErrorMessage; - } + if (!responseMessage.IsSuccessStatusCode) + { + var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; + var remoteServiceErrorMessage = await _remoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage); - _logger.LogInformation(exceptionMessage); + if (remoteServiceErrorMessage != null) + { + exceptionMessage += remoteServiceErrorMessage; } + + _logger.LogInformation(exceptionMessage); } } - catch (Exception ex) + catch (Exception) { // ignored } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleInfoProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleInfoProvider.cs index 81bc704151..92bbe728c0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleInfoProvider.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ModuleInfoProvider.cs @@ -16,14 +16,18 @@ namespace Volo.Abp.Cli.ProjectBuilding public ICancellationTokenProvider CancellationTokenProvider { get; } public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } + private readonly CliHttpClientFactory _cliHttpClientFactory; + public ModuleInfoProvider( IJsonSerializer jsonSerializer, ICancellationTokenProvider cancellationTokenProvider, - IRemoteServiceExceptionHandler remoteServiceExceptionHandler) + IRemoteServiceExceptionHandler remoteServiceExceptionHandler, + CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; CancellationTokenProvider = cancellationTokenProvider; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; + _cliHttpClientFactory = cliHttpClientFactory; } public async Task GetAsync(string name) @@ -47,17 +51,16 @@ namespace Volo.Abp.Cli.ProjectBuilding private async Task> GetModuleListInternalAsync() { - using (var client = new CliHttpClient()) + var client = _cliHttpClientFactory.CreateClient(); + + using (var responseMessage = await client.GetAsync( + $"{CliUrls.WwwAbpIo}api/download/modules/", + CancellationTokenProvider.Token + )) { - using (var responseMessage = await client.GetAsync( - $"{CliUrls.WwwAbpIo}api/download/modules/", - CancellationTokenProvider.Token - )) - { - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); - var result = await responseMessage.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize>(result); - } + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); + var result = await responseMessage.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(result); } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs index b9308dd707..1a4bf3c05a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs @@ -24,13 +24,17 @@ namespace Volo.Abp.Cli.ProjectBuilding public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } public AuthService AuthService { get; } + private readonly CliHttpClientFactory _cliHttpClientFactory; + public TemplateInfoProvider(ICancellationTokenProvider cancellationTokenProvider, IRemoteServiceExceptionHandler remoteServiceExceptionHandler, - AuthService authService) + AuthService authService, + CliHttpClientFactory cliHttpClientFactory) { CancellationTokenProvider = cancellationTokenProvider; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; AuthService = authService; + _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -76,21 +80,19 @@ namespace Volo.Abp.Cli.ProjectBuilding try { var url = $"{CliUrls.WwwAbpIo}api/license/check-user"; + var client = _cliHttpClientFactory.CreateClient(); - using (var client = new CliHttpClient()) + using (var response = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, Logger)) { - using (var response = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, Logger)) + if (!response.IsSuccessStatusCode) { - if (!response.IsSuccessStatusCode) - { - throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); - } + throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); + } - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); - var responseContent = await response.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(responseContent); - } + var responseContent = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseContent); } } catch (Exception) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index ee736f3aa0..5e039f7f3f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -21,13 +21,15 @@ namespace Volo.Abp.Cli.ProjectModification public class ProjectNugetPackageAdder : ITransientDependency { public ILogger Logger { get; set; } + public BundleCommand BundleCommand { get; } protected IJsonSerializer JsonSerializer { get; } protected ProjectNpmPackageAdder NpmPackageAdder { get; } protected DerivedClassFinder ModuleClassFinder { get; } protected ModuleClassDependcyAdder ModuleClassDependcyAdder { get; } protected IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } - public BundleCommand BundleCommand { get; } + + private readonly CliHttpClientFactory _cliHttpClientFactory; public ProjectNugetPackageAdder( IJsonSerializer jsonSerializer, @@ -35,7 +37,8 @@ namespace Volo.Abp.Cli.ProjectModification DerivedClassFinder moduleClassFinder, ModuleClassDependcyAdder moduleClassDependcyAdder, IRemoteServiceExceptionHandler remoteServiceExceptionHandler, - BundleCommand bundleCommand) + BundleCommand bundleCommand, + CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; NpmPackageAdder = npmPackageAdder; @@ -43,6 +46,7 @@ namespace Volo.Abp.Cli.ProjectModification ModuleClassDependcyAdder = moduleClassDependcyAdder; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; BundleCommand = bundleCommand; + _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -121,7 +125,7 @@ namespace Volo.Abp.Cli.ProjectModification private Task AddToCsprojManuallyAsync(string projectFile, NugetPackageInfo package, string version = null) { var projectFileContent = File.ReadAllText(projectFile); - var doc = new XmlDocument() {PreserveWhitespace = true}; + var doc = new XmlDocument() { PreserveWhitespace = true }; doc.Load(StreamHelper.GenerateStreamFromString(projectFileContent)); var itemGroupNodes = doc.SelectNodes("/Project/ItemGroup"); @@ -162,7 +166,7 @@ namespace Volo.Abp.Cli.ProjectModification private string GetAbpVersionOrNull(string projectFileContent) { - var doc = new XmlDocument() {PreserveWhitespace = true}; + var doc = new XmlDocument() { PreserveWhitespace = true }; doc.Load(StreamHelper.GenerateStreamFromString(projectFileContent)); @@ -173,12 +177,11 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual async Task FindNugetPackageInfoAsync(string packageName) { - using (var client = new CliHttpClient()) - { - var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/byName/?name=" + packageName; - - var response = await client.GetAsync(url); + var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/byName/?name=" + packageName; + var client = _cliHttpClientFactory.CreateClient(); + using (var response = await client.GetAsync(url)) + { if (!response.IsSuccessStatusCode) { if (response.StatusCode == HttpStatusCode.NotFound) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index 90f4ff5d8f..683e279a78 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -7,7 +7,6 @@ using System.Linq; using System.Net; using System.Threading.Tasks; using Volo.Abp.Cli.Args; -using Volo.Abp.Cli.Bundling; using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Http; @@ -22,6 +21,12 @@ namespace Volo.Abp.Cli.ProjectModification public class SolutionModuleAdder : ITransientDependency { public ILogger Logger { get; set; } + public SourceCodeDownloadService SourceCodeDownloadService { get; } + public SolutionFileModifier SolutionFileModifier { get; } + public NugetPackageToLocalReferenceConverter NugetPackageToLocalReferenceConverter { get; } + public AngularModuleSourceCodeAdder AngularModuleSourceCodeAdder { get; } + public NewCommand NewCommand { get; } + public BundleCommand BundleCommand { get; } protected IJsonSerializer JsonSerializer { get; } protected ProjectNugetPackageAdder ProjectNugetPackageAdder { get; } @@ -31,12 +36,9 @@ namespace Volo.Abp.Cli.ProjectModification protected ProjectNpmPackageAdder ProjectNpmPackageAdder { get; } protected NpmGlobalPackagesChecker NpmGlobalPackagesChecker { get; } protected IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } - public SourceCodeDownloadService SourceCodeDownloadService { get; } - public SolutionFileModifier SolutionFileModifier { get; } - public NugetPackageToLocalReferenceConverter NugetPackageToLocalReferenceConverter { get; } - public AngularModuleSourceCodeAdder AngularModuleSourceCodeAdder { get; } - public NewCommand NewCommand { get; } - public BundleCommand BundleCommand { get; } + + private readonly CliHttpClientFactory _cliHttpClientFactory; + public SolutionModuleAdder( IJsonSerializer jsonSerializer, @@ -52,7 +54,8 @@ namespace Volo.Abp.Cli.ProjectModification NugetPackageToLocalReferenceConverter nugetPackageToLocalReferenceConverter, AngularModuleSourceCodeAdder angularModuleSourceCodeAdder, NewCommand newCommand, - BundleCommand bundleCommand) + BundleCommand bundleCommand, + CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; ProjectNugetPackageAdder = projectNugetPackageAdder; @@ -68,6 +71,7 @@ namespace Volo.Abp.Cli.ProjectModification AngularModuleSourceCodeAdder = angularModuleSourceCodeAdder; NewCommand = newCommand; BundleCommand = bundleCommand; + _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -131,7 +135,7 @@ namespace Volo.Abp.Cli.ProjectModification { var blazorProject = projectFiles.FirstOrDefault(f => f.EndsWith(".Blazor.csproj")); - if (blazorProject == null || !module.NugetPackages.Any(np=> np.Target == NuGetPackageTarget.Blazor)) + if (blazorProject == null || !module.NugetPackages.Any(np => np.Target == NuGetPackageTarget.Blazor)) { return; } @@ -211,7 +215,7 @@ namespace Volo.Abp.Cli.ProjectModification return; } - var projectFolderPath = Directory.GetDirectories(srcPath).FirstOrDefault(d=> d.EndsWith(postFix)); + var projectFolderPath = Directory.GetDirectories(srcPath).FirstOrDefault(d => d.EndsWith(postFix)); if (projectFolderPath == null) { @@ -235,7 +239,7 @@ namespace Volo.Abp.Cli.ProjectModification return; } - var projectFolderPath = Directory.GetDirectories(testPath).FirstOrDefault(d=> d.EndsWith("Domain.Tests")); + var projectFolderPath = Directory.GetDirectories(testPath).FirstOrDefault(d => d.EndsWith("Domain.Tests")); if (projectFolderPath == null) { @@ -250,10 +254,10 @@ namespace Volo.Abp.Cli.ProjectModification return; } - File.WriteAllText(csprojFile, File.ReadAllText(csprojFile).Replace("EntityFrameworkCore","MongoDB")); + File.WriteAllText(csprojFile, File.ReadAllText(csprojFile).Replace("EntityFrameworkCore", "MongoDB")); File.WriteAllText(moduleFile, File.ReadAllText(moduleFile) - .Replace(".EntityFrameworkCore;",".MongoDB;") - .Replace("EntityFrameworkCoreTestModule","MongoDbTestModule")); + .Replace(".EntityFrameworkCore;", ".MongoDB;") + .Replace("EntityFrameworkCoreTestModule", "MongoDbTestModule")); } private async Task AddAngularPackages(string solutionFilePath, ModuleWithMastersInfo module) @@ -355,9 +359,9 @@ namespace Volo.Abp.Cli.ProjectModification ); } - await DeleteRedundantHostProjects(targetModuleFolder,"app"); - await DeleteRedundantHostProjects(targetModuleFolder,"demo"); - await DeleteRedundantHostProjects(targetModuleFolder,"host"); + await DeleteRedundantHostProjects(targetModuleFolder, "app"); + await DeleteRedundantHostProjects(targetModuleFolder, "demo"); + await DeleteRedundantHostProjects(targetModuleFolder, "host"); if (module.MasterModuleInfos == null) { @@ -519,12 +523,11 @@ namespace Volo.Abp.Cli.ProjectModification return await GetEmptyModuleProjectInfoAsync(moduleName, newProTemplate); } - using (var client = new CliHttpClient()) - { - var url = $"{CliUrls.WwwAbpIo}api/app/module/byNameWithDetails/?name=" + moduleName; - - var response = await client.GetAsync(url); + var url = $"{CliUrls.WwwAbpIo}api/app/module/byNameWithDetails/?name=" + moduleName; + var client = _cliHttpClientFactory.CreateClient(); + using (var response = await client.GetAsync(url)) + { if (!response.IsSuccessStatusCode) { if (response.StatusCode == HttpStatusCode.NotFound) @@ -625,7 +628,7 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual async Task IsProjectTiered(string[] projectFiles) { return projectFiles.Select(ProjectFileNameHelper.GetAssemblyNameFromProjectPath) - .Any(p =>p.EndsWith(".HttpApi.Host")) + .Any(p => p.EndsWith(".HttpApi.Host")) && projectFiles.Select(ProjectFileNameHelper.GetAssemblyNameFromProjectPath) .Any(p => p.EndsWith(".IdentityServer")); } From fa477b9e47856b36fb4571f483544c42e6d3919d Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Fri, 5 Feb 2021 21:29:21 +0300 Subject: [PATCH 287/309] implement timeout for singleton HttpClient #7618 --- .../Volo/Abp/Cli/Http/CliHttpClient.cs | 8 +- .../Volo/Abp/Cli/Http/CliHttpClientFactory.cs | 51 +++++++-- .../ProjectBuilding/AbpIoSourceCodeStore.cs | 101 ++++++++---------- .../MyGetPackageListFinder.cs | 28 +++-- .../ProjectModification/NpmPackagesUpdater.cs | 23 ++-- 5 files changed, 125 insertions(+), 86 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs index 1122648ff2..5aaf2ae2d3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs @@ -67,7 +67,12 @@ namespace Volo.Abp.Cli.Http }; } - cancellationToken ??= CancellationToken.None; + if (cancellationToken == null) + { + var cancellationTokenSource = new CancellationTokenSource(); + cancellationTokenSource.CancelAfter(DefaultTimeout); + cancellationToken = cancellationTokenSource.Token; + } return await HttpPolicyExtensions .HandleTransientHttpError() @@ -95,5 +100,6 @@ namespace Volo.Abp.Cli.Http .ExecuteAsync(async () => await this.GetAsync(url, cancellationToken.Value)); } + } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs index 3748e8e64a..b509a1614d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs @@ -1,5 +1,7 @@ using System; +using System.Threading; using Volo.Abp.DependencyInjection; +using Volo.Abp.Threading; namespace Volo.Abp.Cli.Http { @@ -7,32 +9,67 @@ namespace Volo.Abp.Cli.Http { private static CliHttpClient _authenticatedHttpClient; private static CliHttpClient _unauthenticatedHttpClient; + private readonly ICancellationTokenProvider _cancellationTokenProvider; - public CliHttpClient CreateClient(bool needsAuthentication = true) + public CliHttpClientFactory(ICancellationTokenProvider cancellationTokenProvider) + { + _cancellationTokenProvider = cancellationTokenProvider; + } + + public CliHttpClient CreateClient(bool needsAuthentication = true, TimeSpan? timeout = null) { if (needsAuthentication) { - return CreateAuthenticatedHttpClient(); + return CreateAuthenticatedHttpClient(timeout); } - return CreateUnAuthenticatedHttpClient(); + return CreateUnAuthenticatedHttpClient(timeout); + } + + public CancellationToken GetCancellationToken(TimeSpan? timeout = null) + { + if (timeout == null) + { + if (_cancellationTokenProvider == null) + { + var cancellationTokenSource = new CancellationTokenSource(); + cancellationTokenSource.CancelAfter(CliHttpClient.DefaultTimeout); + return cancellationTokenSource.Token; + } + else + { + return _cancellationTokenProvider.Token; + } + } + else + { + var cancellationTokenSource = new CancellationTokenSource(); + cancellationTokenSource.CancelAfter(Convert.ToInt32(timeout.Value.TotalMilliseconds)); + return cancellationTokenSource.Token; + } } - private static CliHttpClient CreateAuthenticatedHttpClient() + private static CliHttpClient CreateAuthenticatedHttpClient(TimeSpan? timeout = null) { if (_authenticatedHttpClient == null) { - _authenticatedHttpClient = new CliHttpClient(setBearerToken: true); + _authenticatedHttpClient = new CliHttpClient(setBearerToken: true) + { + Timeout = System.Threading.Timeout.InfiniteTimeSpan + }; } return _authenticatedHttpClient; } - private static CliHttpClient CreateUnAuthenticatedHttpClient() + private static CliHttpClient CreateUnAuthenticatedHttpClient(TimeSpan? timeout = null) { if (_unauthenticatedHttpClient == null) { - _unauthenticatedHttpClient = new CliHttpClient(setBearerToken: false); + _unauthenticatedHttpClient = new CliHttpClient(setBearerToken: false) + { + Timeout = System.Threading.Timeout.InfiniteTimeSpan + }; } return _unauthenticatedHttpClient; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs index 4d4a8726a8..bebe44542d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs @@ -9,6 +9,7 @@ using System.Net.Http; using System.Reflection; using System.Text; using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Cli.Http; using Volo.Abp.Cli.ProjectBuilding.Templates.App; @@ -28,22 +29,23 @@ namespace Volo.Abp.Cli.ProjectBuilding public ILogger Logger { get; set; } protected AbpCliOptions Options { get; } - protected IJsonSerializer JsonSerializer { get; } - protected IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } - protected ICancellationTokenProvider CancellationTokenProvider { get; } + private readonly CliHttpClientFactory _cliHttpClientFactory; + public AbpIoSourceCodeStore( IOptions options, IJsonSerializer jsonSerializer, IRemoteServiceExceptionHandler remoteServiceExceptionHandler, - ICancellationTokenProvider cancellationTokenProvider) + ICancellationTokenProvider cancellationTokenProvider, + CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; CancellationTokenProvider = cancellationTokenProvider; + _cliHttpClientFactory = cliHttpClientFactory; Options = options.Value; Logger = NullLogger.Instance; @@ -134,24 +136,17 @@ namespace Volo.Abp.Cli.ProjectBuilding try { - using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) + var client = _cliHttpClientFactory.CreateClient(); + var stringContent = new StringContent( + JsonSerializer.Serialize(new GetLatestSourceCodeVersionDto { Name = name, IncludePreReleases = includePreReleases }), + Encoding.UTF8, + MimeTypes.Application.Json + ); + + using (var response = await client.PostAsync(url, stringContent, _cliHttpClientFactory.GetCancellationToken(TimeSpan.FromMinutes(10)))) { - var response = await client.PostAsync( - url, - new StringContent( - JsonSerializer.Serialize( - new GetLatestSourceCodeVersionDto { Name = name, IncludePreReleases = includePreReleases } - ), - Encoding.UTF8, - MimeTypes.Application.Json - ), - CancellationTokenProvider.Token - ); - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); - var result = await response.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(result).Version; } } @@ -164,32 +159,25 @@ namespace Volo.Abp.Cli.ProjectBuilding private async Task GetTemplateNugetVersionAsync(string name, string type, string version) { - var url = $"{CliUrls.WwwAbpIo}api/download/{type}/get-nuget-version/"; - try { - using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) - { - var response = await client.PostAsync( - url, - new StringContent( - JsonSerializer.Serialize( - new GetTemplateNugetVersionDto { Name = name, Version = version} - ), - Encoding.UTF8, - MimeTypes.Application.Json - ), - CancellationTokenProvider.Token - ); + var url = $"{CliUrls.WwwAbpIo}api/download/{type}/get-nuget-version/"; + var client = _cliHttpClientFactory.CreateClient(); - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); + var stringContent = new StringContent( + JsonSerializer.Serialize(new GetTemplateNugetVersionDto { Name = name, Version = version }), + Encoding.UTF8, + MimeTypes.Application.Json + ); + using (var response = await client.PostAsync(url, stringContent, _cliHttpClientFactory.GetCancellationToken(TimeSpan.FromMinutes(10)))) + { + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); var result = await response.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(result).Version; } } - catch (Exception ex) + catch (Exception) { return null; } @@ -203,36 +191,35 @@ namespace Volo.Abp.Cli.ProjectBuilding try { - using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) - { + var client = _cliHttpClientFactory.CreateClient(); - if (input.TemplateSource.IsNullOrWhiteSpace()) - { - responseMessage = await client.PostAsync( - url, - new StringContent(JsonSerializer.Serialize(input), Encoding.UTF8, MimeTypes.Application.Json), - CancellationTokenProvider.Token - ); - } - else - { - responseMessage = await client.GetAsync(input.TemplateSource, CancellationTokenProvider.Token); - } + if (input.TemplateSource.IsNullOrWhiteSpace()) + { + responseMessage = await client.PostAsync( + url, + new StringContent(JsonSerializer.Serialize(input), Encoding.UTF8, MimeTypes.Application.Json), + _cliHttpClientFactory.GetCancellationToken(TimeSpan.FromMinutes(10)) + ); + } + else + { + responseMessage = await client.GetAsync(input.TemplateSource, _cliHttpClientFactory.GetCancellationToken()); + } - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); + var resultAsBytes = await responseMessage.Content.ReadAsByteArrayAsync(); + responseMessage.Dispose(); - return await responseMessage.Content.ReadAsByteArrayAsync(); - } + return resultAsBytes; } catch (Exception ex) { - Console.WriteLine("Error occured while downloading source-code from {0} : {1}{2}{3}", - url, responseMessage?.ToString(), Environment.NewLine, ex.Message); + Console.WriteLine("Error occured while downloading source-code from {0} : {1}{2}{3}", url, responseMessage?.ToString(), Environment.NewLine, ex.Message); throw; } } - private bool IsNetworkSource(string source) + private static bool IsNetworkSource(string source) { return source.ToLower().StartsWith("http"); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/MyGetPackageListFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/MyGetPackageListFinder.cs index 75e9156ce0..5434ede83f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/MyGetPackageListFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/MyGetPackageListFinder.cs @@ -6,17 +6,23 @@ using Microsoft.Extensions.Logging.Abstractions; using Newtonsoft.Json; using Volo.Abp.Cli.Http; using Volo.Abp.DependencyInjection; +using Volo.Abp.Threading; namespace Volo.Abp.Cli.ProjectModification { public class MyGetPackageListFinder : ISingletonDependency { - private MyGetApiResponse _response; - public ILogger Logger { get; set; } - public MyGetPackageListFinder() + private MyGetApiResponse _response; + private readonly CliHttpClientFactory _cliHttpClientFactory; + protected ICancellationTokenProvider CancellationTokenProvider { get; } + + public MyGetPackageListFinder(CliHttpClientFactory cliHttpClientFactory, + ICancellationTokenProvider cancellationTokenProvider) { + _cliHttpClientFactory = cliHttpClientFactory; + CancellationTokenProvider = cancellationTokenProvider; Logger = NullLogger.Instance; } @@ -29,18 +35,20 @@ namespace Volo.Abp.Cli.ProjectModification try { - using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) + var client = _cliHttpClientFactory.CreateClient(); + + using (var responseMessage = await client.GetAsync( + $"{CliUrls.WwwAbpIo}api/myget/packages/", + _cliHttpClientFactory.GetCancellationToken(TimeSpan.FromMinutes(10)))) { - var responseMessage = await client.GetAsync( - $"{CliUrls.WwwAbpIo}api/myget/packages/" + _response = JsonConvert.DeserializeObject( + Encoding.Default.GetString(await responseMessage.Content.ReadAsByteArrayAsync()) ); - - _response = JsonConvert.DeserializeObject(Encoding.Default.GetString(await responseMessage.Content.ReadAsByteArrayAsync())); } } - catch (Exception) + catch (Exception ex) { - Logger.LogError("Unable to get latest preview version."); + Logger.LogError("Unable to get latest preview version. Error: " + ex.Message); throw; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index 8fc800c146..bf23bc3786 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -27,15 +27,18 @@ namespace Volo.Abp.Cli.ProjectModification private readonly PackageJsonFileFinder _packageJsonFileFinder; private readonly NpmGlobalPackagesChecker _npmGlobalPackagesChecker; private readonly Dictionary _fileVersionStorage = new Dictionary(); + private readonly CliHttpClientFactory _cliHttpClientFactory; public NpmPackagesUpdater( PackageJsonFileFinder packageJsonFileFinder, NpmGlobalPackagesChecker npmGlobalPackagesChecker, - ICancellationTokenProvider cancellationTokenProvider) + ICancellationTokenProvider cancellationTokenProvider, + CliHttpClientFactory cliHttpClientFactory) { _packageJsonFileFinder = packageJsonFileFinder; _npmGlobalPackagesChecker = npmGlobalPackagesChecker; CancellationTokenProvider = cancellationTokenProvider; + _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -151,16 +154,14 @@ namespace Volo.Abp.Cli.ProjectModification { try { - using (var client = new CliHttpClient(TimeSpan.FromMinutes(1))) + var client = _cliHttpClientFactory.CreateClient(); + using (var response = await client.GetHttpResponseMessageWithRetryAsync( + url: $"{CliUrls.WwwAbpIo}api/myget/apikey/", + cancellationToken: CancellationTokenProvider.Token, + logger: Logger + )) { - using (var response = await client.GetHttpResponseMessageWithRetryAsync( - url: $"{CliUrls.WwwAbpIo}api/myget/apikey/", - cancellationToken: CancellationTokenProvider.Token, - logger: Logger - )) - { - return Encoding.Default.GetString(await response.Content.ReadAsByteArrayAsync()); - } + return Encoding.Default.GetString(await response.Content.ReadAsByteArrayAsync()); } } catch (Exception) @@ -356,7 +357,7 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual string ExtractVersions(string output) { var arrayStart = output.IndexOf('['); - return output.Substring(arrayStart, output.IndexOf(']') - arrayStart + 1); + return output.Substring(arrayStart, output.IndexOf(']') - arrayStart + 1); } protected virtual bool SpecifiedVersionExists(string version, JProperty package) From 90decc7606924cc7b0c110eb73efc99991b28846 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Fri, 5 Feb 2021 21:34:35 +0300 Subject: [PATCH 288/309] add cancellation token --- .../Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index 5e039f7f3f..6ebcad2c08 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -180,7 +180,7 @@ namespace Volo.Abp.Cli.ProjectModification var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/byName/?name=" + packageName; var client = _cliHttpClientFactory.CreateClient(); - using (var response = await client.GetAsync(url)) + using (var response = await client.GetAsync(url, _cliHttpClientFactory.GetCancellationToken())) { if (!response.IsSuccessStatusCode) { From f69f8c9fd661e13fbfd131b67e5557e8b75ac76e Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Fri, 5 Feb 2021 21:35:33 +0300 Subject: [PATCH 289/309] remove unncessary async usage #7618 --- .../ProjectModification/SolutionModuleAdder.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index 683e279a78..c84713ffcb 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -36,7 +36,7 @@ namespace Volo.Abp.Cli.ProjectModification protected ProjectNpmPackageAdder ProjectNpmPackageAdder { get; } protected NpmGlobalPackagesChecker NpmGlobalPackagesChecker { get; } protected IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } - + private readonly CliHttpClientFactory _cliHttpClientFactory; @@ -54,7 +54,7 @@ namespace Volo.Abp.Cli.ProjectModification NugetPackageToLocalReferenceConverter nugetPackageToLocalReferenceConverter, AngularModuleSourceCodeAdder angularModuleSourceCodeAdder, NewCommand newCommand, - BundleCommand bundleCommand, + BundleCommand bundleCommand, CliHttpClientFactory cliHttpClientFactory) { JsonSerializer = jsonSerializer; @@ -175,7 +175,7 @@ namespace Volo.Abp.Cli.ProjectModification { await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.EntityFrameworkCore, isProjectTiered); await RemoveProjectByPostFix(module, moduleSolutionFile, "test", ".EntityFrameworkCore.Tests"); - await ChangeDomainTestReferenceToMongoDB(module, moduleSolutionFile); + ChangeDomainTestReferenceToMongoDB(module, moduleSolutionFile); } } @@ -230,7 +230,7 @@ namespace Volo.Abp.Cli.ProjectModification } } - private async Task ChangeDomainTestReferenceToMongoDB(ModuleWithMastersInfo module, string moduleSolutionFile) + private void ChangeDomainTestReferenceToMongoDB(ModuleWithMastersInfo module, string moduleSolutionFile) { var testPath = Path.Combine(Path.GetDirectoryName(moduleSolutionFile), "test"); @@ -505,7 +505,7 @@ namespace Volo.Abp.Cli.ProjectModification } } - protected virtual async Task RunMigrator(string[] projectFiles) + protected virtual void RunMigrator(string[] projectFiles) { var dbMigratorProject = projectFiles.FirstOrDefault(p => p.EndsWith(".DbMigrator.csproj")); @@ -520,13 +520,13 @@ namespace Volo.Abp.Cli.ProjectModification { if (newTemplate || newProTemplate) { - return await GetEmptyModuleProjectInfoAsync(moduleName, newProTemplate); + return GetEmptyModuleProjectInfo(moduleName, newProTemplate); } var url = $"{CliUrls.WwwAbpIo}api/app/module/byNameWithDetails/?name=" + moduleName; var client = _cliHttpClientFactory.CreateClient(); - using (var response = await client.GetAsync(url)) + using (var response = await client.GetAsync(url, _cliHttpClientFactory.GetCancellationToken())) { if (!response.IsSuccessStatusCode) { @@ -543,7 +543,7 @@ namespace Volo.Abp.Cli.ProjectModification } } - private async Task GetEmptyModuleProjectInfoAsync(string moduleName, + private ModuleWithMastersInfo GetEmptyModuleProjectInfo(string moduleName, bool newProTemplate = false) { var module = new ModuleWithMastersInfo From 005bf4b10a7f2747cf34d5d2971425485e4cbe54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 5 Feb 2021 21:42:10 +0300 Subject: [PATCH 290/309] Define and handle AbpDbConnectionOptions.Databases option. --- .../Volo/Abp/Data/AbpDataModule.cs | 9 +++ .../Volo/Abp/Data/AbpDatabaseInfo.cs | 28 +++++++++ .../Abp/Data/AbpDatabaseInfoDictionary.cs | 58 +++++++++++++++++++ .../Volo/Abp/Data/AbpDbConnectionOptions.cs | 44 +++++++++++++- .../Data/DefaultConnectionStringResolver.cs | 25 ++++---- .../MultiTenantConnectionStringResolver.cs | 30 +++++----- 6 files changed, 165 insertions(+), 29 deletions(-) create mode 100644 framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfo.cs create mode 100644 framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfoDictionary.cs diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataModule.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataModule.cs index 8c9643012e..bc3bc8e5dd 100644 --- a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataModule.cs +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataModule.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.Uow; @@ -27,6 +28,14 @@ namespace Volo.Abp.Data context.Services.AddSingleton(typeof(IDataFilter<>), typeof(DataFilter<>)); } + public override void PostConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Databases.RefreshIndexes(); + }); + } + private static void AutoAddDataSeedContributors(IServiceCollection services) { var contributors = new List(); diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfo.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfo.cs new file mode 100644 index 0000000000..4f719a862a --- /dev/null +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfo.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Data +{ + public class AbpDatabaseInfo + { + public string DatabaseName { get; set; } + + /// + /// List of connection names mapped to this database. + /// + public HashSet MappedConnections { get; } + + /// + /// Is this database used by tenants. Set this to true if this database + /// can't owned by tenants. + /// + /// Default: true. + /// + public bool IsUsedByTenants { get; set; } = true; + + internal AbpDatabaseInfo(string databaseName) + { + DatabaseName = databaseName; + MappedConnections = new HashSet(); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfoDictionary.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfoDictionary.cs new file mode 100644 index 0000000000..93098d303d --- /dev/null +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDatabaseInfoDictionary.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using JetBrains.Annotations; + +namespace Volo.Abp.Data +{ + public class AbpDatabaseInfoDictionary : Dictionary + { + private Dictionary ConnectionIndex { get; set; } + + public AbpDatabaseInfoDictionary() + { + ConnectionIndex = new Dictionary(); + } + + [CanBeNull] + public AbpDatabaseInfo GetMappedDatabaseOrNull(string connectionStringName) + { + return ConnectionIndex.GetOrDefault(connectionStringName); + } + + public AbpDatabaseInfoDictionary Configure(string databaseName, Action configureAction) + { + var databaseInfo = this.GetOrAdd( + databaseName, + () => new AbpDatabaseInfo(databaseName) + ); + + configureAction(databaseInfo); + + return this; + } + + /// + /// This method should be called if this dictionary changes. + /// It refreshes indexes for quick access to the connection informations. + /// + public void RefreshIndexes() + { + ConnectionIndex = new Dictionary(); + + foreach (var databaseInfo in Values) + { + foreach (var mappedConnection in databaseInfo.MappedConnections) + { + if (ConnectionIndex.ContainsKey(mappedConnection)) + { + throw new AbpException( + $"A connection name can not map to multiple databases: {mappedConnection}." + ); + } + + ConnectionIndex[mappedConnection] = databaseInfo; + } + } + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDbConnectionOptions.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDbConnectionOptions.cs index 863bffb743..9f6ad78a69 100644 --- a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDbConnectionOptions.cs +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDbConnectionOptions.cs @@ -1,12 +1,54 @@ -namespace Volo.Abp.Data +using System; +using System.Collections.Generic; + +namespace Volo.Abp.Data { public class AbpDbConnectionOptions { public ConnectionStrings ConnectionStrings { get; set; } + + public AbpDatabaseInfoDictionary Databases { get; set; } public AbpDbConnectionOptions() { ConnectionStrings = new ConnectionStrings(); + Databases = new AbpDatabaseInfoDictionary(); + } + + public string GetConnectionStringOrNull( + string connectionStringName, + bool fallbackToDatabaseMappings = true, + bool fallbackToDefault = true) + { + var connectionString = ConnectionStrings.GetOrDefault(connectionStringName); + if (!connectionString.IsNullOrEmpty()) + { + return connectionString; + } + + if (fallbackToDatabaseMappings) + { + var database = Databases.GetMappedDatabaseOrNull(connectionStringName); + if (database != null) + { + connectionString = ConnectionStrings.GetOrDefault(database.DatabaseName); + if (!connectionString.IsNullOrEmpty()) + { + return connectionString; + } + } + } + + if (fallbackToDefault) + { + connectionString = ConnectionStrings.Default; + if (!connectionString.IsNullOrWhiteSpace()) + { + return connectionString; + } + } + + return null; } } } diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/DefaultConnectionStringResolver.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/DefaultConnectionStringResolver.cs index 4d5ce2fb27..f907cb0cb6 100644 --- a/framework/src/Volo.Abp.Data/Volo/Abp/Data/DefaultConnectionStringResolver.cs +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/DefaultConnectionStringResolver.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; @@ -10,7 +9,8 @@ namespace Volo.Abp.Data { protected AbpDbConnectionOptions Options { get; } - public DefaultConnectionStringResolver(IOptionsSnapshot options) + public DefaultConnectionStringResolver( + IOptionsSnapshot options) { Options = options.Value; } @@ -28,18 +28,19 @@ namespace Volo.Abp.Data private string ResolveInternal(string connectionStringName) { - //Get module specific value if provided - if (!connectionStringName.IsNullOrEmpty()) + if (connectionStringName == null) { - var moduleConnString = Options.ConnectionStrings.GetOrDefault(connectionStringName); - if (!moduleConnString.IsNullOrEmpty()) - { - return moduleConnString; - } + return Options.ConnectionStrings.Default; + } + + var connectionString = Options.GetConnectionStringOrNull(connectionStringName); + + if (!connectionString.IsNullOrEmpty()) + { + return connectionString; } - //Get default value - return Options.ConnectionStrings.Default; + return null; } } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs index 959c910901..41ba7873ac 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs @@ -41,7 +41,7 @@ namespace Volo.Abp.MultiTenancy } var tenantDefaultConnectionString = tenant.ConnectionStrings.Default; - + //Requesting default connection string... if (connectionStringName == null || connectionStringName == ConnectionStrings.DefaultConnectionStringName) @@ -59,6 +59,18 @@ namespace Volo.Abp.MultiTenancy //Found for the tenant return connString; } + + //Fallback to the mapped database for the specific connection string + var database = Options.Databases.GetMappedDatabaseOrNull(connectionStringName); + if (database != null) + { + connString = tenant.ConnectionStrings.GetOrDefault(database.DatabaseName); + if (!connString.IsNullOrWhiteSpace()) + { + //Found for the tenant + return connString; + } + } //Fallback to tenant's default connection string if available if (!tenantDefaultConnectionString.IsNullOrWhiteSpace()) @@ -66,21 +78,7 @@ namespace Volo.Abp.MultiTenancy return tenantDefaultConnectionString; } - //Try to find the specific connection string for given name - var connStringInOptions = Options.ConnectionStrings.GetOrDefault(connectionStringName); - if (!connStringInOptions.IsNullOrWhiteSpace()) - { - return connStringInOptions; - } - - //Fallback to the global default connection string - var defaultConnectionString = Options.ConnectionStrings.Default; - if (!defaultConnectionString.IsNullOrWhiteSpace()) - { - return defaultConnectionString; - } - - throw new AbpException("No connection string defined!"); + return await base.ResolveAsync(connectionStringName); } [Obsolete("Use ResolveAsync method.")] From 9ed34c26a51e093da88676cba6aea6ce85b9922a Mon Sep 17 00:00:00 2001 From: okyrylchuk Date: Sat, 6 Feb 2021 17:24:12 +0100 Subject: [PATCH 291/309] fix code sample in Environment doc page --- docs/en/UI/Angular/Environment.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index 8c6fb28ce7..9802eb6264 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -138,10 +138,10 @@ You can use the `getEnvironment` or `getEnvironment$` method of `EnvironmentServ ```js // this.environment is instance of EnvironmentService -const environment = this.environment.getAll(); +const environment = this.environment.getEnvironment(); // or -this.environment.getAll$().subscribe(environment => { +this.environment.getEnvironment$().subscribe(environment => { // use environment here }) ``` @@ -166,7 +166,7 @@ This method returns the `url` of a specific API based on the key given as its on #### How to Set the Environment -`EnvironmentService` has a method named `setState` which allow you to set the state value. +`EnvironmentService` has a method named `setState` which allows you to set the state value. ```js // this.environment is instance of EnvironmentService From 4ccf7165801d12de237a0e8ae5b1d2fc644ccd3f Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 7 Feb 2021 13:21:08 +0800 Subject: [PATCH 292/309] Use ms IHttpClientFactory to create http client. --- .../Volo/Abp/Cli/AbpCliCoreModule.cs | 5 ++ .../Volo/Abp/Cli/CliConsts.cs | 2 + ...tpClient.cs => CliHttpClientExtensions.cs} | 35 +++--------- .../Volo/Abp/Cli/Http/CliHttpClientFactory.cs | 56 +++++-------------- 4 files changed, 29 insertions(+), 69 deletions(-) rename framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/{CliHttpClient.cs => CliHttpClientExtensions.cs} (74%) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs index 9208357d4a..6b23857233 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs @@ -1,5 +1,7 @@ using System.Text; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Cli.Commands; +using Volo.Abp.Cli.Http; using Volo.Abp.Domain; using Volo.Abp.IdentityModel; using Volo.Abp.Json; @@ -18,6 +20,9 @@ namespace Volo.Abp.Cli { public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.AddHttpClient(CliConsts.HttpClientName) + .ConfigurePrimaryHttpMessageHandler(() => new CliHttpClientHandler()); + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Configure(options => diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs index b062388c7a..37dbbba318 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs @@ -7,5 +7,7 @@ public const string BranchPrefix = "branch@"; public const string DocsLink = "https://docs.abp.io"; + + public const string HttpClientName = "AbpHttpClient"; } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientExtensions.cs similarity index 74% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientExtensions.cs index 5aaf2ae2d3..9976542f05 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientExtensions.cs @@ -13,29 +13,9 @@ using Microsoft.Extensions.Logging; namespace Volo.Abp.Cli.Http { - public class CliHttpClient : HttpClient + public static class CliHttpClientExtensions { - public static TimeSpan DefaultTimeout { get; set; } = TimeSpan.FromMinutes(1); - - public CliHttpClient(TimeSpan? timeout = null) - : base(new CliHttpClientHandler()) - { - Timeout = timeout ?? DefaultTimeout; - - AddAuthentication(); - } - - public CliHttpClient(bool setBearerToken) : base(new CliHttpClientHandler()) - { - Timeout = DefaultTimeout; - - if (setBearerToken) - { - AddAuthentication(); - } - } - - public void AddAuthentication() + public static void AddAbpAuthenticationToken(this HttpClient httpClient) { if (!AuthService.IsLoggedIn()) { @@ -45,12 +25,13 @@ namespace Volo.Abp.Cli.Http var accessToken = File.ReadAllText(CliPaths.AccessToken, Encoding.UTF8); if (!accessToken.IsNullOrEmpty()) { - this.SetBearerToken(accessToken); + httpClient.SetBearerToken(accessToken); } } - public async Task GetHttpResponseMessageWithRetryAsync + public static async Task GetHttpResponseMessageWithRetryAsync ( + this HttpClient httpClient, string url, CancellationToken? cancellationToken = null, ILogger logger = null, @@ -70,7 +51,7 @@ namespace Volo.Abp.Cli.Http if (cancellationToken == null) { var cancellationTokenSource = new CancellationTokenSource(); - cancellationTokenSource.CancelAfter(DefaultTimeout); + cancellationTokenSource.CancelAfter(httpClient.Timeout); cancellationToken = cancellationTokenSource.Token; } @@ -97,9 +78,7 @@ namespace Volo.Abp.Cli.Http $"Waiting {timeSpan.TotalSeconds} secs for the next try..."); } }) - .ExecuteAsync(async () => await this.GetAsync(url, cancellationToken.Value)); + .ExecuteAsync(async () => await httpClient.GetAsync(url, cancellationToken.Value)); } - - } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs index b509a1614d..a5608a1f88 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClientFactory.cs @@ -1,29 +1,35 @@ using System; +using System.Net.Http; using System.Threading; using Volo.Abp.DependencyInjection; using Volo.Abp.Threading; namespace Volo.Abp.Cli.Http { - public class CliHttpClientFactory : ISingletonDependency, IDisposable + public class CliHttpClientFactory : ISingletonDependency { - private static CliHttpClient _authenticatedHttpClient; - private static CliHttpClient _unauthenticatedHttpClient; + public static readonly TimeSpan DefaultTimeout = TimeSpan.FromMinutes(1); + + private readonly IHttpClientFactory _clientFactory; private readonly ICancellationTokenProvider _cancellationTokenProvider; - public CliHttpClientFactory(ICancellationTokenProvider cancellationTokenProvider) + public CliHttpClientFactory(IHttpClientFactory clientFactory, ICancellationTokenProvider cancellationTokenProvider) { + _clientFactory = clientFactory; _cancellationTokenProvider = cancellationTokenProvider; } - public CliHttpClient CreateClient(bool needsAuthentication = true, TimeSpan? timeout = null) + public HttpClient CreateClient(bool needsAuthentication = true, TimeSpan? timeout = null) { + var httpClient = _clientFactory.CreateClient(CliConsts.HttpClientName); + httpClient.Timeout = timeout ?? DefaultTimeout; + if (needsAuthentication) { - return CreateAuthenticatedHttpClient(timeout); + httpClient.AddAbpAuthenticationToken(); } - return CreateUnAuthenticatedHttpClient(timeout); + return httpClient; } public CancellationToken GetCancellationToken(TimeSpan? timeout = null) @@ -33,7 +39,7 @@ namespace Volo.Abp.Cli.Http if (_cancellationTokenProvider == null) { var cancellationTokenSource = new CancellationTokenSource(); - cancellationTokenSource.CancelAfter(CliHttpClient.DefaultTimeout); + cancellationTokenSource.CancelAfter(DefaultTimeout); return cancellationTokenSource.Token; } else @@ -48,37 +54,5 @@ namespace Volo.Abp.Cli.Http return cancellationTokenSource.Token; } } - - private static CliHttpClient CreateAuthenticatedHttpClient(TimeSpan? timeout = null) - { - if (_authenticatedHttpClient == null) - { - _authenticatedHttpClient = new CliHttpClient(setBearerToken: true) - { - Timeout = System.Threading.Timeout.InfiniteTimeSpan - }; - } - - return _authenticatedHttpClient; - } - - private static CliHttpClient CreateUnAuthenticatedHttpClient(TimeSpan? timeout = null) - { - if (_unauthenticatedHttpClient == null) - { - _unauthenticatedHttpClient = new CliHttpClient(setBearerToken: false) - { - Timeout = System.Threading.Timeout.InfiniteTimeSpan - }; - } - - return _unauthenticatedHttpClient; - } - - public void Dispose() - { - _authenticatedHttpClient?.Dispose(); - _unauthenticatedHttpClient?.Dispose(); - } } -} \ No newline at end of file +} From 002b539c45ea37ce77cb5a22e21b0d6b952ba34f Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Sun, 7 Feb 2021 22:32:11 +0800 Subject: [PATCH 293/309] Add re-queue feature to kafka --- .../Volo/Abp/Kafka/AbpKafkaOptions.cs | 4 ++- .../Volo/Abp/Kafka/KafkaMessageConsumer.cs | 26 ++++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs index 1769d8a076..26d15ce818 100644 --- a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs @@ -9,11 +9,13 @@ namespace Volo.Abp.Kafka public KafkaConnections Connections { get; } public Action ConfigureProducer { get; set; } - + public Action ConfigureConsumer { get; set; } public Action ConfigureTopic { get; set; } + public bool ReQueue { get; set; } = true; + public AbpKafkaOptions() { Connections = new KafkaConnections(); diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs index 8ae81a2a26..a1c3fefd74 100644 --- a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Concurrent; -using System.Linq; using System.Threading.Tasks; using Confluent.Kafka; using Confluent.Kafka.Admin; @@ -20,6 +19,8 @@ namespace Volo.Abp.Kafka protected IConsumerPool ConsumerPool { get; } + protected IProducerPool ProducerPool { get; } + protected IExceptionNotifier ExceptionNotifier { get; } protected AbpKafkaOptions Options { get; } @@ -37,10 +38,12 @@ namespace Volo.Abp.Kafka public KafkaMessageConsumer( IConsumerPool consumerPool, IExceptionNotifier exceptionNotifier, - IOptions options) + IOptions options, + IProducerPool producerPool) { ConsumerPool = consumerPool; ExceptionNotifier = exceptionNotifier; + ProducerPool = producerPool; Options = options.Value; Logger = NullLogger.Instance; @@ -132,14 +135,29 @@ namespace Volo.Abp.Kafka { await callback(consumeResult.Message); } - - Consumer.Commit(consumeResult); } catch (Exception ex) { + await RequeueAsync(consumeResult); + Logger.LogException(ex); await ExceptionNotifier.NotifyAsync(ex); } + finally + { + Consumer.Commit(consumeResult); + } + } + + protected virtual async Task RequeueAsync(ConsumeResult consumeResult) + { + if (!Options.ReQueue) + { + return; + } + + var producer = ProducerPool.Get(ConnectionName); + await producer.ProduceAsync(consumeResult.Topic, consumeResult.Message); } public virtual void Dispose() From 3ab79685b4ed2ecd329d05515799f1cc7451d05c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 7 Feb 2021 18:00:11 +0300 Subject: [PATCH 294/309] Ignore errors on RabbitMQ Nack message. --- .../Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs index 0c180a4ac7..f757efab64 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs +++ b/framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs @@ -191,7 +191,16 @@ namespace Volo.Abp.RabbitMQ } catch (Exception ex) { - Channel.BasicNack(basicDeliverEventArgs.DeliveryTag, multiple: false, requeue: true); + try + { + Channel.BasicNack( + basicDeliverEventArgs.DeliveryTag, + multiple: false, + requeue: true + ); + } + catch { } + Logger.LogException(ex); await ExceptionNotifier.NotifyAsync(ex); } From e4c193513fd1378bb07499753d4f9e9d3b28bc30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 7 Feb 2021 18:58:52 +0300 Subject: [PATCH 295/309] Update jmeter tests. --- test/AbpPerfTest/_jmeter/SimpleTestPlan.jmx | 6 +++--- test/AbpPerfTest/_jmeter/SimpleTestPlanWithoutAbp.jmx | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/test/AbpPerfTest/_jmeter/SimpleTestPlan.jmx b/test/AbpPerfTest/_jmeter/SimpleTestPlan.jmx index 0c08c60f20..5c1c5dbced 100644 --- a/test/AbpPerfTest/_jmeter/SimpleTestPlan.jmx +++ b/test/AbpPerfTest/_jmeter/SimpleTestPlan.jmx @@ -1,5 +1,5 @@ - + @@ -16,10 +16,10 @@ continue false - 20 + 40 2000 - 10 + 20 false diff --git a/test/AbpPerfTest/_jmeter/SimpleTestPlanWithoutAbp.jmx b/test/AbpPerfTest/_jmeter/SimpleTestPlanWithoutAbp.jmx index c7d6b3292c..5ceb318e6b 100644 --- a/test/AbpPerfTest/_jmeter/SimpleTestPlanWithoutAbp.jmx +++ b/test/AbpPerfTest/_jmeter/SimpleTestPlanWithoutAbp.jmx @@ -1,5 +1,5 @@ - + @@ -16,10 +16,10 @@ continue false - 20 + 40 - 500 - 10 + 2000 + 20 false From 11f84dfd135ea31417bc2e86ca4474ef5a8340d4 Mon Sep 17 00:00:00 2001 From: cx Date: Mon, 8 Feb 2021 08:52:21 +0800 Subject: [PATCH 296/309] add zh-Hans doc PlugIn-Modules.md --- docs/zh-Hans/PlugIn-Modules.md | 233 +++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 docs/zh-Hans/PlugIn-Modules.md diff --git a/docs/zh-Hans/PlugIn-Modules.md b/docs/zh-Hans/PlugIn-Modules.md new file mode 100644 index 0000000000..3380e7372d --- /dev/null +++ b/docs/zh-Hans/PlugIn-Modules.md @@ -0,0 +1,233 @@ +# 模块化插件 + +可以将[模块](Module-Development-Basics.md)加载为插件。这意味着您可能不需要在解决方案中引用模块的程序集,就可以像其他模块一样在启动应用时加载该模块。 + +## 基本用法 + +`IServiceCollection.AddApplication()` 扩展方法可以获取配置插件源的选项。 + +**例如: 从文件夹加载插件** + +````csharp +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity.PlugIns; + +namespace MyPlugInDemo.Web +{ + public class Startup + { + public void ConfigureServices(IServiceCollection services) + { + services.AddApplication(options => + { + options.PlugInSources.AddFolder(@"D:\Temp\MyPlugIns"); + }); + } + + public void Configure(IApplicationBuilder app) + { + app.InitializeApplication(); + } + } +} +```` + +* 这是典型的ASP.NET Core应用程序的`Startup`类. +* `PlugInSources.AddFolder`从指定的目录中加载程序集(通常为dll)。 + +就这样。ABP将在这个目录中发现这些模块,像其他普通模版一样配置和初始化他们。 + +### 插件源 + +`options.PlugInSources`类实际上是`IPlugInSource`接口的一系列实现并且 `AddFolder`方法仅仅是以下表达式的便捷方法: + +````csharp +options.PlugInSources.Add(new FolderPlugInSource(@"D:\Temp\MyPlugIns")); +```` + +> `AddFolder()`方法仅在给定目录下查找程序集文件,而不在子目录中查找。您可以传递一个`SearchOption.AllDirectories`参数作为第二个参数,来递归地查找它的子目录。 + +这里有两个内置插件源的示例: + +* `PlugInSources.AddFiles()`方法获取程序集(通常是dll)文件列表。这是使用`FilePlugInSource`类的快捷方式。 +* `PlugInSources.AddTypes()`方法获取模块类类型的列表。如果实用化此方法,则需要自己加载模块的程序集,但是在需要时它提供了灵活性。这是使用`TypePlugInSource`类的快捷方式。 + +如果需要,您可以创建自己的`IPlugInSource`的接口实现,并像其他方法一样添加到`options.PlugInSources`中。 + +## 例如:创建一个简单的插件 + +在一个解决方案中创建一个简单的**类库项目** + +![简单插件库](images/simple-plugin-library.png) + +您可以在模块中添加需要使用的ABP框架包。至少,您应该为这个项目添加包`Volo.Abp.Core`: + +```` +Install-Package Volo.Abp.Core +```` + +每个[模块](Module-Development-Basics.md)必须声明为一个继承自`AbpModule`的类。这里是一个简单的模块类,用于解析一个服务并在应用启动时对其初始化: + +````csharp +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; +using Volo.Abp.Modularity; + +namespace MyPlugIn +{ + public class MyPlungInModule : AbpModule + { + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var myService = context.ServiceProvider + .GetRequiredService(); + + myService.Initialize(); + } + } +} +```` + +`MyService`可以是注册在[依赖注入](Dependency-Injection.md)系统中的任意类,如下所示: + +````csharp +using Microsoft.Extensions.Logging; +using Volo.Abp.DependencyInjection; + +namespace MyPlugIn +{ + public class MyService : ITransientDependency + { + private readonly ILogger _logger; + + public MyService(ILogger logger) + { + _logger = logger; + } + + public void Initialize() + { + _logger.LogInformation("MyService has been initialized"); + } + } +} +```` + +编译这个项目,打开build目录,找到`MyPlugIn.dll`: + +![简单dll插件](images/simple-plug-in-dll-file.png) + +将`MyPlugIn.dll`复制到到插件目录中(此实例为`D:\Temp\MyPlugIns`). + +如果您已经按照上述方式配置了主应用程序(参见“基础用法”部分),那么在应用程序启动时,您可以看到“MyService has been initialized(MyService已经初始化)的日志。 + +## 例如:创建一个Razor Pages插件 + +创建内部带视图的插件需要更多的注意。 + +> 这个示例假设您已经使用应用程序启动模板和MVC / Razor Pages UI[创建了一个新的Web应用程序](https://abp.io/get-started)。 + +在解决方案中创建一个新的**类库**项目: + +![简单razor插件](images/simple-razor-plugin.png) + +编辑这个`.csproj`文件内容: + +````xml + + + + net5.0 + Library + true + + + + + + + +```` + +* 将`Sdk`修改为`Microsoft.NET.Sdk.Web`。 +* 添加了`OutputType`和`IsPackable`属性. +* 添加了`Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared`NuGet包. + +> 不需要[Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) 包。您可以引用更基础的程序包,例如[Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc/). 但是,如果需要构建一个UI视图/组件,建议参考[Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)程序包,因为它是最高级的程序包,不依赖于特定[theme](UI/AspNetCore/Theming.md)。如果依赖特定主题没有问题,则可以直接引用该主题的程序包,以便能够使用插件中特定于主题的功能。 + +接下来在插件中创建模块类: + +````csharp +using System.IO; +using System.Reflection; +using Microsoft.AspNetCore.Mvc.ApplicationParts; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.Modularity; + +namespace MyMvcUIPlugIn +{ + [DependsOn(typeof(AbpAspNetCoreMvcUiThemeSharedModule))] + public class MyMvcUIPlugInModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(mvcBuilder => + { + // 添加插件程序集 + mvcBuilder.PartManager.ApplicationParts.Add(new AssemblyPart(typeof(MyMvcUIPlugInModule).Assembly)); + + // 添加视图程序集 + var viewDllPath = Path.Combine(Path.GetDirectoryName(typeof(MyMvcUIPlugInModule).Assembly.Location), "MyMvcUIPlugIn.Views.dll"); + var viewAssembly = new CompiledRazorAssemblyPart(Assembly.LoadFrom(viewDllPath)); + mvcBuilder.PartManager.ApplicationParts.Add(viewAssembly); + }); + } + } +} +```` + +* 由于我们添加了相关的NuGet包,因此取决于`AbpAspNetCoreMvcUiThemeSharedModule`。 +* 添加插件程序集到ASP.NET Core MVC的`PartManager`中。这是ASP.NET Core所必需的。否则,您插件中的控制器将无法正常工作。 +* 添加插件的视图程序集到ASP.NET Core MVC的`PartManager`中。这是ASP.NET Core所必需的。否则,您在插件中的视图将不起作用。 + +现在,您可以在`Pages`目录下添加一个razor页面,例如`MyPlugInPage.cshtml`: + +````html +@page +@model MyMvcUIPlugIn.Pages.MyPlugInPage +

    Welcome to my plug-in page

    +

    This page is located inside a plug-in module! :)

    +```` + +现在,您可以构建插件项目。它将产生以下输出: + +![simple-razor-plug-in-dll-file](images/simple-razor-plug-in-dll-file.png) + +将`MyMvcUIPlugIn.dll`和`MyMvcUIPlugIn.Views.dll`复制到到插件目录下(此示例中为`D:\Temp\MyPlugIns`). + +如果您已经按照上述方式配置了主应用程序(参见“基础用法”部分),那么在应用程序启动的时候,您应该能够访问`/MyPlugInPage`URL: + +![simple-plugin-output](images/simple-plugin-output.png) + +## 讨论 + +在现实世界中,您的插件可能具有一些外部依赖性。另外,您的应用程序可能被设计为支持插件。所有这些都是您自己的系统要求。ABP做的仅仅是在应用程序启动时加载模块。您在这些模块中执行什么操作由您决定。 + +但是,我们可以为一些常见情况提供一些建议。 + +### 库依赖 + +对于包/dll依赖,您可以将相关的dll复制到插件目录下。ABP会自动将所有程序集加载到该目录下,并且您的插件将按预期工作。 + +> 请🌘见[Microsoft文档](https://docs.microsoft.com/en-us/dotnet/core/tutorials/creating-app-with-plugin-support#plugin-with-library-dependencies)。 + +### 数据库模式 + +如果您的模块使用关系型数据库和[Entity Framework Core](Entity-Framework-Core.md), 那么它需要在数据表中提供其表。有多种不同的方法可确保在应用程序使用插件时创建表。一些例子; + +1. 插件可以检查数据库表是否存在,并在应用程序启动时创建表,或者如果插件已更新且需要进行某些架构更改时,则会迁移它们。您可以使用EF Core的迁移API来做到这一点。 +2. 您可以改进`DbMigrator`应用程序,用于查找插件的迁移并执行它们。 + +可能还有其他解决方案。例如,如果您的数据库管理员不允许您在应用程序代码中更改数据库模式,则可能需要手动将SQL文件发送给数据库管理员,以将其应用于数据库。 \ No newline at end of file From 9f49b111cc4e56f38785b75d983046516af38304 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 8 Feb 2021 09:45:42 +0800 Subject: [PATCH 297/309] Update KafkaMessageConsumer --- .../src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs index 2ff70dd8d5..3b8f022012 100644 --- a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Concurrent; +using System.Linq; using System.Threading.Tasks; using Confluent.Kafka; using Confluent.Kafka.Admin; From 857781c0946dcef6088c2e7e1162a801c8cf4052 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 8 Feb 2021 09:53:35 +0800 Subject: [PATCH 298/309] Update PlugIn-Modules.md --- docs/zh-Hans/PlugIn-Modules.md | 62 +++++++++++++++++----------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/zh-Hans/PlugIn-Modules.md b/docs/zh-Hans/PlugIn-Modules.md index 3380e7372d..10f156b659 100644 --- a/docs/zh-Hans/PlugIn-Modules.md +++ b/docs/zh-Hans/PlugIn-Modules.md @@ -1,10 +1,10 @@ # 模块化插件 -可以将[模块](Module-Development-Basics.md)加载为插件。这意味着您可能不需要在解决方案中引用模块的程序集,就可以像其他模块一样在启动应用时加载该模块。 +可以将[模块](Module-Development-Basics.md)加载为插件.这意味着你可能不需要在解决方案中引用模块的程序集,就可以像其它模块一样在启动应用时加载该模块. ## 基本用法 -`IServiceCollection.AddApplication()` 扩展方法可以获取配置插件源的选项。 +`IServiceCollection.AddApplication()` 扩展方法可以获取配置插件源的选项. **例如: 从文件夹加载插件** @@ -34,9 +34,9 @@ namespace MyPlugInDemo.Web ```` * 这是典型的ASP.NET Core应用程序的`Startup`类. -* `PlugInSources.AddFolder`从指定的目录中加载程序集(通常为dll)。 +* `PlugInSources.AddFolder`从指定的目录中加载程序集(通常为dll). -就这样。ABP将在这个目录中发现这些模块,像其他普通模版一样配置和初始化他们。 +就这样.ABP将在这个目录中发现这些模块,像其它常规一样配置和初始化它们. ### 插件源 @@ -46,14 +46,14 @@ namespace MyPlugInDemo.Web options.PlugInSources.Add(new FolderPlugInSource(@"D:\Temp\MyPlugIns")); ```` -> `AddFolder()`方法仅在给定目录下查找程序集文件,而不在子目录中查找。您可以传递一个`SearchOption.AllDirectories`参数作为第二个参数,来递归地查找它的子目录。 +> `AddFolder()`方法仅在给定目录下查找程序集文件,而不在子目录中查找.你可以传递一个`SearchOption.AllDirectories`参数作为第二个参数,来递归地查找它的子目录. 这里有两个内置插件源的示例: -* `PlugInSources.AddFiles()`方法获取程序集(通常是dll)文件列表。这是使用`FilePlugInSource`类的快捷方式。 -* `PlugInSources.AddTypes()`方法获取模块类类型的列表。如果实用化此方法,则需要自己加载模块的程序集,但是在需要时它提供了灵活性。这是使用`TypePlugInSource`类的快捷方式。 +* `PlugInSources.AddFiles()`方法获取程序集(通常是dll)文件列表.这是使用`FilePlugInSource`类的快捷方式. +* `PlugInSources.AddTypes()`方法获取模块类类型的列表.如果实用化此方法,则需要自己加载模块的程序集,但是在需要时它提供了灵活性.这是使用`TypePlugInSource`类的快捷方式. -如果需要,您可以创建自己的`IPlugInSource`的接口实现,并像其他方法一样添加到`options.PlugInSources`中。 +如果需要,你可以创建自己的`IPlugInSource`的接口实现,并像其它方法一样添加到`options.PlugInSources`中. ## 例如:创建一个简单的插件 @@ -61,13 +61,13 @@ options.PlugInSources.Add(new FolderPlugInSource(@"D:\Temp\MyPlugIns")); ![简单插件库](images/simple-plugin-library.png) -您可以在模块中添加需要使用的ABP框架包。至少,您应该为这个项目添加包`Volo.Abp.Core`: +你可以在模块中添加需要使用的ABP框架包.至少,你应该为这个项目添加包`Volo.Abp.Core`: ```` Install-Package Volo.Abp.Core ```` -每个[模块](Module-Development-Basics.md)必须声明为一个继承自`AbpModule`的类。这里是一个简单的模块类,用于解析一个服务并在应用启动时对其初始化: +每个[模块](Module-Development-Basics.md)必须声明为一个继承自`AbpModule`的类.这里是一个简单的模块类,用于解析一个服务并在应用启动时对其初始化: ````csharp using Microsoft.Extensions.DependencyInjection; @@ -89,7 +89,7 @@ namespace MyPlugIn } ```` -`MyService`可以是注册在[依赖注入](Dependency-Injection.md)系统中的任意类,如下所示: +`MyService`可以是注册在[依赖注入](Dependency-Injection.md)系统中的任意类,如下所示: ````csharp using Microsoft.Extensions.Logging; @@ -114,19 +114,19 @@ namespace MyPlugIn } ```` -编译这个项目,打开build目录,找到`MyPlugIn.dll`: +编译这个项目,打开build目录,找到`MyPlugIn.dll`: ![简单dll插件](images/simple-plug-in-dll-file.png) 将`MyPlugIn.dll`复制到到插件目录中(此实例为`D:\Temp\MyPlugIns`). -如果您已经按照上述方式配置了主应用程序(参见“基础用法”部分),那么在应用程序启动时,您可以看到“MyService has been initialized(MyService已经初始化)的日志。 +如果你已经按照上述方式配置了主应用程序(参见“基础用法”部分),那么在应用程序启动时,你可以看到“MyService has been initialized(MyService已经初始化)的日志. ## 例如:创建一个Razor Pages插件 -创建内部带视图的插件需要更多的注意。 +创建内部带视图的插件需要更多的注意. -> 这个示例假设您已经使用应用程序启动模板和MVC / Razor Pages UI[创建了一个新的Web应用程序](https://abp.io/get-started)。 +> 这个示例假设你已经使用应用程序启动模板和MVC / Razor Pages UI[创建了一个新的Web应用程序](https://abp.io/get-started). 在解决方案中创建一个新的**类库**项目: @@ -150,11 +150,11 @@ namespace MyPlugIn ```` -* 将`Sdk`修改为`Microsoft.NET.Sdk.Web`。 +* 将`Sdk`修改为`Microsoft.NET.Sdk.Web`. * 添加了`OutputType`和`IsPackable`属性. * 添加了`Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared`NuGet包. -> 不需要[Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) 包。您可以引用更基础的程序包,例如[Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc/). 但是,如果需要构建一个UI视图/组件,建议参考[Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)程序包,因为它是最高级的程序包,不依赖于特定[theme](UI/AspNetCore/Theming.md)。如果依赖特定主题没有问题,则可以直接引用该主题的程序包,以便能够使用插件中特定于主题的功能。 +> 不需要[Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) 包.你可以引用更基础的程序包,例如[Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc/). 但是,如果需要构建一个UI视图/组件,建议参考[Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)程序包,因为它是最高级的程序包,不依赖于特定[theme](UI/AspNetCore/Theming.md).如果依赖特定主题没有问题,则可以直接引用该主题的程序包,以便能够使用插件中特定于主题的功能. 接下来在插件中创建模块类: @@ -188,11 +188,11 @@ namespace MyMvcUIPlugIn } ```` -* 由于我们添加了相关的NuGet包,因此取决于`AbpAspNetCoreMvcUiThemeSharedModule`。 -* 添加插件程序集到ASP.NET Core MVC的`PartManager`中。这是ASP.NET Core所必需的。否则,您插件中的控制器将无法正常工作。 -* 添加插件的视图程序集到ASP.NET Core MVC的`PartManager`中。这是ASP.NET Core所必需的。否则,您在插件中的视图将不起作用。 +* 由于我们添加了相关的NuGet包,因此取决于`AbpAspNetCoreMvcUiThemeSharedModule`. +* 添加插件程序集到ASP.NET Core MVC的`PartManager`中.这是ASP.NET Core所必需的.否则,你插件中的控制器将无法正常工作. +* 添加插件的视图程序集到ASP.NET Core MVC的`PartManager`中.这是ASP.NET Core所必需的.否则,你在插件中的视图将不起作用. -现在,您可以在`Pages`目录下添加一个razor页面,例如`MyPlugInPage.cshtml`: +现在,你可以在`Pages`目录下添加一个razor页面,例如`MyPlugInPage.cshtml`: ````html @page @@ -201,33 +201,33 @@ namespace MyMvcUIPlugIn

    This page is located inside a plug-in module! :)

    ```` -现在,您可以构建插件项目。它将产生以下输出: +现在,你可以构建插件项目.它将产生以下输出: ![simple-razor-plug-in-dll-file](images/simple-razor-plug-in-dll-file.png) 将`MyMvcUIPlugIn.dll`和`MyMvcUIPlugIn.Views.dll`复制到到插件目录下(此示例中为`D:\Temp\MyPlugIns`). -如果您已经按照上述方式配置了主应用程序(参见“基础用法”部分),那么在应用程序启动的时候,您应该能够访问`/MyPlugInPage`URL: +如果你已经按照上述方式配置了主应用程序(参见“基础用法”部分),那么在应用程序启动的时候,你应该能够访问`/MyPlugInPage`URL: ![simple-plugin-output](images/simple-plugin-output.png) ## 讨论 -在现实世界中,您的插件可能具有一些外部依赖性。另外,您的应用程序可能被设计为支持插件。所有这些都是您自己的系统要求。ABP做的仅仅是在应用程序启动时加载模块。您在这些模块中执行什么操作由您决定。 +在现实世界中,你的插件可能具有一些外部依赖性.另外,你的应用程序可能被设计为支持插件.所有这些都是你自己的系统要求.ABP做的仅仅是在应用程序启动时加载模块.你在这些模块中执行什么操作由你决定. -但是,我们可以为一些常见情况提供一些建议。 +但是,我们可以为一些常见情况提供一些建议. ### 库依赖 -对于包/dll依赖,您可以将相关的dll复制到插件目录下。ABP会自动将所有程序集加载到该目录下,并且您的插件将按预期工作。 +对于包/dll依赖,你可以将相关的dll复制到插件目录下.ABP会自动将所有程序集加载到该目录下,并且你的插件将按预期工作. -> 请🌘见[Microsoft文档](https://docs.microsoft.com/en-us/dotnet/core/tutorials/creating-app-with-plugin-support#plugin-with-library-dependencies)。 +> 请参见[Microsoft文档](https://docs.microsoft.com/zh-cn/dotnet/core/tutorials/creating-app-with-plugin-support#plugin-with-library-dependencies). ### 数据库模式 -如果您的模块使用关系型数据库和[Entity Framework Core](Entity-Framework-Core.md), 那么它需要在数据表中提供其表。有多种不同的方法可确保在应用程序使用插件时创建表。一些例子; +如果你的模块使用关系型数据库和[Entity Framework Core](Entity-Framework-Core.md), 那么它需要在数据库中提供表.有多种不同的方法可确保在应用程序使用插件时创建表.一些例子; -1. 插件可以检查数据库表是否存在,并在应用程序启动时创建表,或者如果插件已更新且需要进行某些架构更改时,则会迁移它们。您可以使用EF Core的迁移API来做到这一点。 -2. 您可以改进`DbMigrator`应用程序,用于查找插件的迁移并执行它们。 +1. 插件可以检查数据库表是否存在,并在应用程序启动时创建表,或者如果插件已更新且需要进行某些架构更改时,则会迁移它们.你可以使用EF Core的迁移API来做到这一点. +2. 你可以改进`DbMigrator`应用程序,用于查找插件的迁移并执行它们. -可能还有其他解决方案。例如,如果您的数据库管理员不允许您在应用程序代码中更改数据库模式,则可能需要手动将SQL文件发送给数据库管理员,以将其应用于数据库。 \ No newline at end of file +可能还有其它解决方案.例如,如果你的数据库管理员不允许你在应用程序代码中更改数据库模式,则可能需要手动将SQL文件发送给数据库管理员,以将其应用于数据库. From 223e9eddf2054c1472d734f8f7642c1da315673f Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 8 Feb 2021 09:54:55 +0800 Subject: [PATCH 299/309] Update docs-nav.json --- docs/zh-Hans/docs-nav.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index 5d231099c9..4f47dd2760 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -313,7 +313,8 @@ "path": "Module-Development-Basics.md" }, { - "text": "模块插件" + "text": "模块插件", + "path": "PlugIn-Modules.md" }, { "text": "自定义应用模块", From 697f3e1eb6a3a1a4829fa24c0e2f2bf7077982b0 Mon Sep 17 00:00:00 2001 From: chxmind Date: Mon, 8 Feb 2021 13:29:33 +0800 Subject: [PATCH 300/309] add zh-Hans doc pictures for PlugIn-Modules.md --- docs/zh-Hans/images/simple-plug-in-dll-file.png | Bin 0 -> 35011 bytes docs/zh-Hans/images/simple-plugin-library.png | Bin 0 -> 17231 bytes docs/zh-Hans/images/simple-plugin-output.png | Bin 0 -> 39597 bytes .../images/simple-razor-plug-in-dll-file.png | Bin 0 -> 52768 bytes docs/zh-Hans/images/simple-razor-plugin.png | Bin 0 -> 25725 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/zh-Hans/images/simple-plug-in-dll-file.png create mode 100644 docs/zh-Hans/images/simple-plugin-library.png create mode 100644 docs/zh-Hans/images/simple-plugin-output.png create mode 100644 docs/zh-Hans/images/simple-razor-plug-in-dll-file.png create mode 100644 docs/zh-Hans/images/simple-razor-plugin.png diff --git a/docs/zh-Hans/images/simple-plug-in-dll-file.png b/docs/zh-Hans/images/simple-plug-in-dll-file.png new file mode 100644 index 0000000000000000000000000000000000000000..3155708d68e59ecfc8d2c954f9cb2c5360182766 GIT binary patch literal 35011 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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/simple-plugin-library.png b/docs/zh-Hans/images/simple-plugin-library.png new file mode 100644 index 0000000000000000000000000000000000000000..9fefd57dda8c1cbfa2b597ef441e6ab966623a5a GIT binary patch literal 17231 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

    wlL(BEY(XaGsJ{4cZ?-2dPR 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 q>M@NXCk|ttVwo315l_y(N9RgyyQ{~`1b Date: Mon, 8 Feb 2021 13:33:09 +0800 Subject: [PATCH 301/309] Update PlugIn-Modules.md --- docs/zh-Hans/PlugIn-Modules.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/zh-Hans/PlugIn-Modules.md b/docs/zh-Hans/PlugIn-Modules.md index 10f156b659..48a507ac7d 100644 --- a/docs/zh-Hans/PlugIn-Modules.md +++ b/docs/zh-Hans/PlugIn-Modules.md @@ -6,7 +6,7 @@ `IServiceCollection.AddApplication()` 扩展方法可以获取配置插件源的选项. -**例如: 从文件夹加载插件** +**示例: 从文件夹加载插件** ````csharp using Microsoft.AspNetCore.Builder; @@ -55,7 +55,7 @@ options.PlugInSources.Add(new FolderPlugInSource(@"D:\Temp\MyPlugIns")); 如果需要,你可以创建自己的`IPlugInSource`的接口实现,并像其它方法一样添加到`options.PlugInSources`中. -## 例如:创建一个简单的插件 +## 示例:创建一个简单的插件 在一个解决方案中创建一个简单的**类库项目** @@ -122,7 +122,7 @@ namespace MyPlugIn 如果你已经按照上述方式配置了主应用程序(参见“基础用法”部分),那么在应用程序启动时,你可以看到“MyService has been initialized(MyService已经初始化)的日志. -## 例如:创建一个Razor Pages插件 +## 示例:创建一个Razor Pages插件 创建内部带视图的插件需要更多的注意. From 605761de02599e49d60d375ab9fbac24ec69759d Mon Sep 17 00:00:00 2001 From: Rwing Date: Mon, 8 Feb 2021 15:51:06 +0800 Subject: [PATCH 302/309] docs: update the missing parts of the chinese doc --- docs/zh-Hans/Best-Practices/Application-Services.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/zh-Hans/Best-Practices/Application-Services.md b/docs/zh-Hans/Best-Practices/Application-Services.md index 82a5dc8aba..c99d67d518 100644 --- a/docs/zh-Hans/Best-Practices/Application-Services.md +++ b/docs/zh-Hans/Best-Practices/Application-Services.md @@ -199,7 +199,7 @@ Task VoteAsync(Guid id, VoteType type); #### 查询数据 -* **不推荐** 在应用程序服务方法中使用linq/sql查询来自数据库的数据. 让仓储负责从数据源执行linq/sql查询. +* **不推荐** 在应用服务方法中使用linq/sql查询来自数据库的数据. 让仓储负责从数据源执行linq/sql查询. #### 额外的属性 @@ -210,11 +210,16 @@ Task VoteAsync(Guid id, VoteType type); * **推荐** 总是从数据库中获取所有的相关实体以对他们执行操作. * **推荐** 更新实体后调用存储的Update/UpdateAsync方法.因为并非所有数据库API都支持更改跟踪和自动更新. +#### 处理文件 + +* **不推荐** 在应用服务中使用任何web组件, 例如`IFormFile`和`Stream`. 如果你想接收一个文件, 可以使用`byte[]`. +* **推荐** 使用`Controller`来处理文件上传, 然后将文件的`byte[]`传递给应用服务的方法。 + #### 使用其他应用服务 -* **不推荐** 使用相同 **模块/应用程序** 的其他应用服务. 相反; +* **不推荐** 在同一个模块/应用中使用其他应用服务. 相反; * 使用领域层执行所需的任务. - * 提取新类并在应用程序服务之间共享, 在必要时代码重用. 但要小心不要结合两个用例. 它们在开始时可能看起来相似, 但可能会随时间演变为不同的方向. 请谨慎使用代码共享. + * 提取新类并在应用服务之间共享, 在必要时代码重用. 但要小心不要结合两个用例. 它们在开始时可能看起来相似, 但可能会随时间演变为不同的方向. 请谨慎使用代码共享. * **可以** 在以下情况下使用其他应用服务; * 它们是另一个模块/微服务的一部分. - * 当前模块仅引用已使用模块的application contracts. \ No newline at end of file + * 当前模块仅引用已使用模块的application contracts. From 9be8eb2ea5827d70c1b437589f5996819b3262ce Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 8 Feb 2021 11:32:24 +0300 Subject: [PATCH 303/309] create NuGetPackageTarget.IdentityServer --- .../Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs | 3 ++- .../Volo/Abp/Cli/ProjectModification/ProjectFinder.cs | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs index 10274f3528..68b6e4fb44 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs @@ -13,6 +13,7 @@ EntityFrameworkCore = 8, MongoDB = 9, SignalR = 10, - Blazor = 11 + Blazor = 11, + IdentityServer = 12 } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs index 0c02f8cb87..0ac4bb2a51 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs @@ -22,6 +22,8 @@ namespace Volo.Abp.Cli.ProjectModification { case NuGetPackageTarget.Web: return FindProjectEndsWith(projectFiles, assemblyNames, ".Web"); + case NuGetPackageTarget.IdentityServer: + return FindProjectEndsWith(projectFiles, assemblyNames, ".IdentityServer"); case NuGetPackageTarget.EntityFrameworkCore: return FindProjectEndsWith(projectFiles, assemblyNames, ".EntityFrameworkCore"); case NuGetPackageTarget.MongoDB: From 4288efc450168a6a64ebd832a360f6a4032177be Mon Sep 17 00:00:00 2001 From: okyrylchuk Date: Sat, 6 Feb 2021 17:24:12 +0100 Subject: [PATCH 304/309] fix code sample in Environment doc page --- docs/en/UI/Angular/Environment.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index 8c6fb28ce7..9802eb6264 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -138,10 +138,10 @@ You can use the `getEnvironment` or `getEnvironment$` method of `EnvironmentServ ```js // this.environment is instance of EnvironmentService -const environment = this.environment.getAll(); +const environment = this.environment.getEnvironment(); // or -this.environment.getAll$().subscribe(environment => { +this.environment.getEnvironment$().subscribe(environment => { // use environment here }) ``` @@ -166,7 +166,7 @@ This method returns the `url` of a specific API based on the key given as its on #### How to Set the Environment -`EnvironmentService` has a method named `setState` which allow you to set the state value. +`EnvironmentService` has a method named `setState` which allows you to set the state value. ```js // this.environment is instance of EnvironmentService From 962fe18f6b10edd4b24de78774218d7d9f910a4f Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Mon, 8 Feb 2021 15:13:14 +0300 Subject: [PATCH 305/309] remove home page redirection from logout method --- .../src/lib/components/nav-items/current-user.component.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.ts b/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.ts index fc4b50ec31..895c66ef85 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.ts +++ b/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.ts @@ -70,9 +70,7 @@ export class CurrentUserComponent { this.authService.initLogin(); } - logout() { - this.authService.logout().subscribe(() => { - this.router.navigate(['/'], { state: { redirectUrl: this.router.url } }); - }); + logout() { + this.authService.logout().subscribe(); } } From fe02e72e5990a59bf57c399e0fb358dcbc2efa8d Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 8 Feb 2021 16:13:51 +0300 Subject: [PATCH 306/309] added Eto Extra property test --- .../LocalDistributedEventBus_Test.cs | 18 ++++++++++++++++++ ...pleDistributedSingleInstanceEventHandler.cs | 10 +++++++++- .../Volo/Abp/EventBus/MySimpleEto.cs | 8 ++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/MySimpleEto.cs diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/LocalDistributedEventBus_Test.cs b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/LocalDistributedEventBus_Test.cs index d3371f383a..7022f41b21 100644 --- a/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/LocalDistributedEventBus_Test.cs +++ b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/LocalDistributedEventBus_Test.cs @@ -44,5 +44,23 @@ namespace Volo.Abp.EventBus.Distributed Assert.Equal(tenantId, MySimpleDistributedSingleInstanceEventHandler.TenantId); } + + [Fact] + public async Task Should_Get_TenantId_From_EventEto_Extra_Property() + { + var tenantId = Guid.NewGuid(); + + DistributedEventBus.Subscribe(GetRequiredService()); + + await DistributedEventBus.PublishAsync(new MySimpleEto + { + Properties = + { + {"TenantId", tenantId} + } + }); + + Assert.Equal(tenantId, MySimpleDistributedSingleInstanceEventHandler.TenantId); + } } } diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/MySimpleDistributedSingleInstanceEventHandler.cs b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/MySimpleDistributedSingleInstanceEventHandler.cs index 53fe8e347b..9141a28024 100644 --- a/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/MySimpleDistributedSingleInstanceEventHandler.cs +++ b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Distributed/MySimpleDistributedSingleInstanceEventHandler.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities.Events.Distributed; @@ -6,7 +7,7 @@ using Volo.Abp.MultiTenancy; namespace Volo.Abp.EventBus.Distributed { - public class MySimpleDistributedSingleInstanceEventHandler : IDistributedEventHandler, IDistributedEventHandler>, ITransientDependency + public class MySimpleDistributedSingleInstanceEventHandler : IDistributedEventHandler, IDistributedEventHandler>, IDistributedEventHandler, ITransientDependency { private readonly ICurrentTenant _currentTenant; @@ -28,5 +29,12 @@ namespace Volo.Abp.EventBus.Distributed TenantId = _currentTenant.Id; return Task.CompletedTask; } + + public Task HandleEventAsync(MySimpleEto eventData) + { + var tenantIdString = eventData.Properties.GetOrDefault("TenantId").ToString(); + TenantId = tenantIdString != null ? new Guid(tenantIdString) : _currentTenant.Id; + return Task.CompletedTask; + } } } diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/MySimpleEto.cs b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/MySimpleEto.cs new file mode 100644 index 0000000000..55d176c392 --- /dev/null +++ b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/MySimpleEto.cs @@ -0,0 +1,8 @@ +using Volo.Abp.Domain.Entities.Events.Distributed; + +namespace Volo.Abp.EventBus +{ + public class MySimpleEto : EtoBase + { + } +} \ No newline at end of file From 546c24da4817c086375a14efe07b6bbac27d5fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 8 Feb 2021 18:31:59 +0300 Subject: [PATCH 307/309] Remove unused method: ShouldRegisterDefaultRepositoryFor --- .../AbpCommonDbContextRegistrationOptions.cs | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs index c7f7230710..dbd46811f2 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs @@ -117,25 +117,5 @@ namespace Volo.Abp.DependencyInjection CustomRepositories[entityType] = repositoryType; } - - public bool ShouldRegisterDefaultRepositoryFor(Type entityType) - { - if (!RegisterDefaultRepositories) - { - return false; - } - - if (CustomRepositories.ContainsKey(entityType)) - { - return false; - } - - if (!IncludeAllEntitiesForDefaultRepositories && !typeof(IAggregateRoot).IsAssignableFrom(entityType)) - { - return false; - } - - return true; - } } } \ No newline at end of file From 9ecf099ef48ae467273ae22e01fa684fa003ed0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 9 Feb 2021 11:17:32 +0300 Subject: [PATCH 308/309] Add migration startup project note to the tutorial. --- docs/en/Tutorials/Part-1.md | 2 ++ docs/en/Tutorials/Part-7.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/en/Tutorials/Part-1.md b/docs/en/Tutorials/Part-1.md index 3348679420..4667b8e539 100644 --- a/docs/en/Tutorials/Part-1.md +++ b/docs/en/Tutorials/Part-1.md @@ -189,6 +189,8 @@ Add-Migration "Created_Book_Entity" ![bookstore-pmc-add-book-migration](./images/bookstore-pmc-add-book-migration-v2.png) +> If you get an error like "*Your startup project ... doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work*", right click to the `Acme.BookStore.EntityFrameworkCore.DbMigrations` project and **Set as the Startup Project** and try again. + This will create a new migration class inside the `Migrations` folder of the `Acme.BookStore.EntityFrameworkCore.DbMigrations` project. Before updating the database, read the section below to learn how to seed some initial data to the database. diff --git a/docs/en/Tutorials/Part-7.md b/docs/en/Tutorials/Part-7.md index ec3ad9a8e0..e14237fd59 100644 --- a/docs/en/Tutorials/Part-7.md +++ b/docs/en/Tutorials/Part-7.md @@ -70,7 +70,7 @@ This is just like done for the `Book` entity before, so no need to explain again ## Create a new Database Migration -Open the **Package Manager Console** on Visual Studio and ensure that the **Default project** is `Acme.BookStore.EntityFrameworkCore.DbMigrations` in the Package Manager Console, as shown on the picture below. Also, set the `Acme.BookStore.Web` (or `Acme.BookStore.HttpApi.Host`, depending on your solution) as the **startup project** (right click it on the solution explorer and click to "Set as Startup Project"). +Open the **Package Manager Console** on Visual Studio and ensure that the **Default project** is `Acme.BookStore.EntityFrameworkCore.DbMigrations` in the Package Manager Console, as shown on the picture below. Also, set this project as the **startup project** (right click it on the solution explorer and click to "Set as Startup Project"). Run the following command to create a new database migration: From 6078eb083a8d9b40fba58d06d5f80f5dfdac4070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 9 Feb 2021 11:35:34 +0300 Subject: [PATCH 309/309] Update Data-Tables.md --- docs/en/UI/AspNetCore/Data-Tables.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/en/UI/AspNetCore/Data-Tables.md b/docs/en/UI/AspNetCore/Data-Tables.md index 3dea38d179..d5181b2da9 100644 --- a/docs/en/UI/AspNetCore/Data-Tables.md +++ b/docs/en/UI/AspNetCore/Data-Tables.md @@ -131,12 +131,13 @@ var responseCallback = function(result) { ajax: abp.libs.datatables.createAjax(acme.bookStore.books.book.getList, inputAction, responseCallback) ```` -If you don't need access or modify the `requestData` or the `dataTableSettings`, you can specify a **simple object** as the second parameter. +If you don't need access or modify the `requestData` or the `dataTableSettings`, you can specify a simple object as the second parameter. -**Note:** This option should not be used if you need to customise any of the following options: `maxResultCount`, `skipCount`, `sorting`, `filter` - these options will be overwritten by the `createAjax` function so you should specify an `inputAction` **function** instead. - -````javascript -ajax: abp.libs.datatables.createAjax(acme.bookStore.books.book.getList, { id: $('#Id').val(), name: $('#Name').val() }) +````js +ajax: abp.libs.datatables.createAjax( + acme.bookStore.books.book.getList, + { id: $('#Id').val(), name: $('#Name').val() } +) ```` ### Row Actions

    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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/simple-plugin-output.png b/docs/zh-Hans/images/simple-plugin-output.png new file mode 100644 index 0000000000000000000000000000000000000000..71f6a78c0ea8661a590a4ae37c1c0423eb4f3832 GIT binary patch literal 39597 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 *mZx;M5=kDQtkoFTcl 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 jKZZ(#nrlKgHahlE_2*yW6YAks#e8`k}8rL7K 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 literal 0 HcmV?d00001 diff --git a/docs/zh-Hans/images/simple-razor-plugin.png b/docs/zh-Hans/images/simple-razor-plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..92e0e00d2962f7336b23e7f0c53bb732bd091633 GIT binary patch literal 25725 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